openss7 ss7 stack installation and reference manual · 2008. 10. 31. · vi openss7 ss7 stack...

154
OpenSS7 SS7 Stack Installation and Reference Manual Version 0.9a Edition 8 Updated 2008-10-31 Package strss7-0.9a.8 Brian Bidulock <[email protected]> for The OpenSS7 Project <http://www.openss7.org/>

Upload: others

Post on 28-Feb-2021

13 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: OpenSS7 SS7 Stack Installation and Reference Manual · 2008. 10. 31. · vi OpenSS7 SS7 Stack 6.8.1.5 Release Targets:::::86 6.8.1.6 Logging Targets::::: 87 6.8.1.7 Problem Report

OpenSS7 SS7 Stack

Installation and Reference ManualVersion 09a Edition 8

Updated 2008-10-31Package strss7-09a8

Brian Bidulock ltbidulockopenss7orggt for

The OpenSS7 Project lthttpwwwopenss7orggt

Copyright ccopy 2001-2008 OpenSS7 Corporation lthttpwwwopenss7comgtCopyright ccopy 1997-2000 Brian F G Bidulock ltbidulockopenss7orggtAll Rights Reserved

Published by OpenSS7 Corporation1469 Jefferys CrescentEdmonton Alberta T6L 6T1Canada

This is texinfo edition 8 of the OpenSS7 SS7 Stack manual and is consistent with strss709a This manual was developed under the OpenSS7 Project and was funded in part byOpenSS7 CorporationPermission is granted to make and distribute verbatim copies of this manual provided thecopyright notice and this permission notice are preserved on all copiesPermission is granted to copy and distribute modified versions of this manual under the con-ditions for verbatim copying provided that the entire resulting derived work is distributedunder the terms of a permission notice identical to this onePermission is granted to copy and distribute translations of this manual into another lan-guage under the same conditions as for modified versions

i

Short Contents

Preface 1

Quick Start Guide 9

1 Introduction 15

2 Objective 17

3 Reference 19

4 Conformance 31

5 Releases 33

6 Installation 47

7 Troubleshooting 93

Licenses 103

Indices 137

iii

Table of Contents

Preface 1Notice 1Abstract 1

Objective 1Intent 1Audience 1

Revisions 2Version Control 2ISO 9000 Compliance 4

Disclaimer 4US Government Restricted Rights 4

Acknowledgements 4Sponsors 4Contributors 5

Authors 5Maintainer 5Web Resources 6

Quick Start Guide 9OpenSS7 SS7 Stack 9

Release 9Prerequisites 10Installation 11Brief Installation Instructions 12Detailed Installation Instructions 13

1 Introduction 1511 Overview 1512 Organization of this Manual 1513 Conventions and Definitions 16

2 Objective 17

3 Reference 1931 Applications 1932 SS7 Protocol Stack 20

321 Signalling Data Link (SDL) 21322 Signalling Data Terminal (SDT) 22323 Signalling Link (SL) 23324 Message Transfer Part (MTP) 24325 Signalling Connection Control Part (SCCP) 25326 Transaction Capabilities Application Part (TCAP) 26

iv OpenSS7 SS7 Stack

327 Base Station System Application Part (BSSAP) 2733 Device Drivers 28

331 Digium Drivers 29332 SeaLevel ACB56 Drivers 30

4 Conformance 31

5 Releases 3351 Prerequisites 3352 Compatibility 34

521 GNULinux Distributions 34522 Kernel 36523 Architectures 36524 Linux STREAMS 37525 Linux Fast-STREAMS 37

53 Release Notes 37Major changes for release strss7-09a8 37Major changes for release strss7-09a7 38Major changes for release strss7-09a6 39Major changes for release strss7-09a5 40Major changes for release strss7-09a-4 41Major changes for release strss7-09a-3 41Major changes for release strss7-09a-2 41Initial release strss7-09a-1 42

54 Maturity 42541 Pre-Alpha Releases 42542 Alpha Releases 42543 Beta Releases 42544 Gamma Releases 42545 Production Releases 43546 Unstable Releases 43

55 Bugs 43551 Defect Notices 43552 Known Defects 44553 Defect History 44

56 Schedule 4557 History 46

v

6 Installation 4761 Repositories 47

611 Repositories for YUM 47612 Repositories for APT 48

62 Downloading 49621 Downloading with YUM 49622 Downloading with APT 51623 Downloading the Binary RPM 51624 Downloading the Debian DEB 54625 Downloading the Source RPM 57626 Downloading the Debian DSC 57627 Downloading the Tar Ball 58628 Downloading from CVS 59

63 Configuration 61631 Configuring the Binary RPM 62632 Configuring the Debian DEB 63633 Configuring the Source RPM 63634 Configuring the Debian DSC 67635 Configuring the Tar Ball 67

6351 Configure Options 676352 Environment Variables 746353 Build 77

64 Building 77641 Building from the Source RPM 77642 Building from the Debian DSC 78643 Building from the Tar Ball 78

6431 Native Build 796432 Cross-Build 79

65 Installing 79651 Installing the Binary RPM 79652 Installing the Debian DEB 80653 Installing the Tar Ball 80

66 Removing 80661 Removing the Binary RPM 80662 Removing the Debian DEB 80663 Removing the Source RPM 81664 Removing the Debian DSC 81665 Removing the Tar Ball 81

67 Loading 81671 Normal Module Loading 81

6711 Linux Fast-STREAMS Module Loading 826712 Linux STREAMS Module Loading 82

68 Maintenance 82681 Makefile Targets 83

6811 User Targets 836812 Maintainer Targets 856813 Clean Targets 856814 Manual Page Targets 86

vi OpenSS7 SS7 Stack

6815 Release Targets 866816 Logging Targets 876817 Problem Report Targets 896818 Release Archive Targets 896819 RPM Build Targets 9068110 Debian Build Targets 9168111 Documentation Targets 92

7 Troubleshooting 9371 Test Suites 93

711 Pre-installation Checks 937111 Pre-Installation System Checks 937112 Pre-Installation Maintenance Checks 947113 Specific Pre-Installation Checks 94

712 Post-installation Checks 967121 Running Test Suites 97

72 Problem Reports 97721 Problem Report Guidelines 98722 Generating Problem Reports 98723 Automatic Problem Reports 99724 Stand Alone Problem Reports 100

73 Known Problems 101

Licenses 103GNU Affero General Public License 104

Preamble 104How to Apply These Terms to Your New Programs 114

GNU General Public License 115Preamble 115How to Apply These Terms to Your New Programs 126

GNU Lesser General Public License 127Terms and Conditions 127

GNU Free Documentation License 130Preamble 130Terms and Conditions for Copying Distribution and Modification

130How to use this License for your documents 136

Indices 137Index of Concepts 137Index of Data Types 139Index of Functions and Macros 140Index of Variables and Constants 141Index of Files and Programs 142Index of Configuration Options 143Index of Makefile Targets 144Index of Authors 145Index of Manual Pages Referenced 146

Preface 1

Preface

Notice

This package is released and distributed under the AGPL (see [GNU Affero General PublicLicense] page 104) Please note however that there are different licensing terms for themanual pages and some of the documentation (derived from OpenGroup1 publications andother sources) Consult the permission notices contained in the documentation for moreinformationThis manual is released under the FDL (see [GNU Free Documentation License] page 130)with no sections invariant

Abstract

This manual provides a Installation and Reference Manual for OpenSS7 SS7 Stack

Objective

The objective of this manual is to provide a guide for the STREAMS programmer whendeveloping STREAMS modules drivers and application programs for OpenSS7 SS7 StackThis guide provides information to developers on the use of the STREAMS mechanism atuser and kernel levelsSTREAMS was incorporated in UNIX System V Release 3 to augment the character in-putoutput (IO) mechanism and to support development of communication servicesSTREAMS provides developers with integral functions a set of utility routines and facilitiesthat expedite software design and implementation

Intent

The intent of this manual is to act as an introductory guide to the STREAMS programmerIt is intended to be read alone and is not intended to replace or supplement the OpenSS7 SS7Stack manual pages For a reference for writing code the manual pages (see STREAMS(9))provide a better reference to the programmer Although this describes the features of theOpenSS7 SS7 Stack package OpenSS7 Corporation is under no obligation to provide anysoftware system or feature listed herein

Audience

This manual is intended for a highly technical audience The reader should already befamiliar with Linux kernel programming the Linux file system character devices driverinput and output interrupts software interrupt handling scheduling process contextsmultiprocessor locks etcThe guide is intended for network and systems programmers who use the STREAMSmechanism at user and kernel levels for Linux and UNIX system communication servicesReaders of the guide are expected to possess prior knowledge of the Linux and UNIX systemprogramming networking and data communication

1 Formerly XOpen and UNIX International

2 OpenSS7 SS7 Stack

Revisions

Take care that you are working with a current version of this manual you will not benotified of updates To ensure that you are working with a current version contact theAuthor or check The OpenSS7 Project website for a current versionA current version of this manual is normally distributed with the OpenSS7 SS7 Stackpackage strss7-09a82

Version Controlstrss7texiv

Revision 09227 2008-09-20 110426 brian

- added package patchlevel

Revision 09226 2008-08-03 060328 brian

- protected agains texinfo commands in log entries

Revision 09225 20080727 084858 brian

- no invariant sections more libtool ignores

Revision 09224 2008-04-29 071035 brian

- updating headers for release

Revision 09223 2008-04-25 115046 brian

- updates to AGPLv3

Revision 09222 20070815 051816 brian

- GPLv3 updates

Revision 09221 20070812 064407 brian

- updated licenses in manuals

Revision 09220 20070803 133451 brian

- manual updates put ss7 modules in public release

Revision 09219 20070228 063035 brian

- updates and corrections ifdef instead of if

Revision 09218 20061002 113129 brian

- changes to get master builds working for RPM and DEB

- added outside licenses to package documentation

- added LICENSE automated release file

- copy MANUAL to source directory

- add and remove devices in -dev debian subpackages

- get debian rules working better

- release library version files

- added notes to debian changelog

- corrections for cooked manual pages in spec files

- added release documentation to spec and rules files

- copyright header updates

- moved controlling tty checks in stream head

- missing some defines for LiS build in various source files

- added OSI headers to striso package

- added includes and manual page paths to acincludes for various packages

- added sunrpc uidlpi uinpi and uitpi licenses to documentation and release

files

2 httpwwwopenss7orgtarballsstrss7-09a8tarbz2

Preface 3

- moved pragma weak statements ahead of declarations

- changes for master build of RPMS and DEBS with LiS

Revision 09217 20060828 104655 brian

- correction

Revision 09216 20060828 103246 brian

- updated references

Revision 09215 20060827 122638 brian

- finalizing auto release files

Revision 09214 20060826 091650 brian

- better release file generation

Revision 09213 20060823 110028 brian

- added preface corrections and updates for release

Revision 09212 20060822 124409 brian

- documentation updates

Revision 09211 20060322 100200 brian

- added makefile target index

Revision 09210 20060303 120609 brian

- 3264-bit compatibility

Revision 0929 20050708 131556 brian

- updates to documentation

Revision 0928 20050624 133859 brian

- added troubleshooting section to manuals

Revision 0927 20050514 083346 brian

- copyright header correction

Revision 0926 20050412 092906 brian

- corrections

Revision 0925 20050411 204840 brian

- documentation updates and corrections

Revision 0924 20050315 005650 brian

- Updated version numbering in texinfo files

Revision 0923 20050315 005147 brian

- Updated version numbering in texinfo files

Revision 0922 20050217 200011 brian

- Fixes for texi documentation

Revision 0921 20050126 082418 brian

- Changed name of texinfo file

Revision 09 20050126 082418 brian

file strss7texi was initially added on branch OpenSS7-0_9_2

4 OpenSS7 SS7 Stack

ISO 9000 Compliance

Only the TEX texinfo or roff source for this manual is controlled An opaque (printedpostscript or portable document format) version of this manual is an UNCONTROLLEDVERSION

Disclaimer

OpenSS7 Corporation disclaims all warranties with regard to this documentation includingall implied warranties of merchantability fitness for a particular purpose non-infringementor title that the contents of the manual are suitable for any purpose or that the implemen-tation of such contents will not infringe on any third party patents copyrights trademarksor other rights In no event shall OpenSS7 Corporation be liable for any direct indirectspecial or consequential damages or any damages whatsoever resulting from loss of usedata or profits whether in an action of contract negligence or other tortious action arisingout of or in connection with any use of this manual or the performance or implementationof the contents thereof

OpenSS7 Corporation reserves the right to revise this software and documentation for anyreason including but not limited to conformity with standards promulgated by variousagencies utilization of advances in the state of the technical arts or the reflection of changesin the design of any techniques or procedures embodied described or referred to hereinOpenSS7 Corporation is under no obligation to provide any feature listed herein

US Government Restricted Rights

If you are licensing this Software on behalf of the US Government (Government) thefollowing provisions apply to you If the Software is supplied by the Department of Defense(DoD) it is classified as Commercial Computer Software under paragraph 252227-7014of the DoD Supplement to the Federal Acquisition Regulations (DFARS) (or any successorregulations) and the Government is acquiring only the license rights granted herein (thelicense rights customarily provided to non-Government users) If the Software is suppliedto any unit or agency of the Government other than DoD it is classified as RestrictedComputer Software and the Governmentrsquos rights in the Software are defined in paragraph52227-19 of the Federal Acquisition Regulations (FAR) (or any successor regulations) orin the cases of NASA in paragraph 1852227-86 of the NASA Supplement to the FAR (orany successor regulations)

Acknowledgements

As with most open source projects this project would not have been possible withoutthe valiant efforts and productive software of the Free Software Foundation and the LinuxKernel Community

Sponsors

Funding for completion of the OpenSS7 OpenSS7 SS7 Stack package was provided in partby

bull OpenSS7 Corporation

Additional funding for The OpenSS7 Project was provided by

Preface 5

bull OpenSS7 Corporationbull Lockheed Martin Cobull Motorolabull HOB Internationalbull Comverse Ltdbull Sonus Networks Incbull France Telecombull SS8 Networks Incbull Nortel Networksbull Verisignbull eServGlobal (NZ) Pty Ltdbull NetCentrex S Abull SysMaster Corporationbull GeoLink SAbull AirNet Communicationsbull TECOREbull Tumsan Oybull Vodare Ltdbull Excel Telecommunications

Contributors

The primary contributor to the OpenSS7 OpenSS7 SS7 Stack package is Brian F G Bidu-lock The following is a list of significant contributors to The OpenSS7 Project

minus Per Berquistminus John Boydminus Chuck Wintersminus Peter Courtneyminus Tom Chandlerminus Gurol Ackmanminus Kutluk Testiciogluminus John Wenkerminus Others

Authors

The authors of the OpenSS7 OpenSS7 SS7 Stack package includeminus Brian Bidulock

See [Index of Authors] page 145 for a complete listing and cross-index of authors to sectionsof this manual

Maintainer

The maintainer of the OpenSS7 OpenSS7 SS7 Stack package isminus Brian Bidulock

Please send bug reports to bugsopenss7org using the lsquosend-prrsquo script included in thepackage only after reading the lsquoBUGSrsquo file in the release or See Section 72 [Problem Re-ports] page 97

6 OpenSS7 SS7 Stack

Web Resources

The OpenSS7 Project provides a website dedicated to the software packages released by theOpenSS7 Project

Bug Reports

Please send bug reports to bugsopenss7org using the lsquosend-prrsquo script included inthe OpenSS7 SS7 Stack package only after reading the lsquoBUGSrsquo file in the release or SeeSection 72 [Problem Reports] page 97 You can access the OpenSS7 GNATS databasedirectly via the web however the preferred method for sending new bug reports is viamail with the lsquosend-prrsquo script

Mailing Lists

The OpenSS7 Project provides a number of general discussion Mailing Lists for discussionconcerning the OpenSS7 OpenSS7 SS7 Stack package as well as other packages released byThe OpenSS7 ProjectThese are mailman mailing lists and so have convenient web interfaces for subscribers tocontrol their settings See httpwwwopenss7orgmailinglisthtmlThe mailing lists are as follows

lsquoopenss7rsquo The lsquoopenss7rsquo mailing list is for general enquiries information exchange andannouncements regarding the OpenSS7 Project This is our original mailinglist and takes the highest amount of traffic

lsquoopenss7-announcersquoThe lsquoopenss7-announcersquo mailing list is for announcements related to theOpenSS7 Project This list will accept announcements posted by subscribersSubscribe to this list if you are interested in announcements from theOpenSS7 Project subscribers and sponsors related to the OpenSS7 Projector STREAMS SS7 SIGTRAN or SCTP in general

lsquoopenss7-cvsrsquoThe lsquoopenss7-cvsrsquo mailing list is for automatic CVS log reporting You mustget permission of the owner to subscribe to this list Subscribers are not allowedto post to this list this is merely for distributing notification of changes to theCVS repositoryh

lsquoopenss7-developrsquoThe lsquoopenss7-developrsquo mailing list is for email exchange related to the de-velopment projects under the OpenSS7 Project This includes developmentrequests proposals requests for comment or proposal Subscribe to this listif you are interested in ongoing development details regarding the OpenSS7Project

lsquoopenss7-testrsquoThe lsquoopenss7-testrsquo mailing list is for email exchange related to the testingof code under the OpenSS7 Project This specifically relates to conformancetesting verification testing interoperability testing and beta testing Subscribeto this list if you are interested in participating in and receiving ongoing detailsof test activities under the OpenSS7 Project

Preface 7

lsquoopenss7-bugsrsquoThe lsquoopenss7-bugsrsquo mailing list is specifically tailored to bug tracking Themailing list takes a feed from the OpenSS7 GNATS bug tracking system andaccepts posting of responses to bug reports tracking and resolution Subscribeto this list if you are interested in receiving detailed OpenSS7 release code bugtracking information This list is not archived for historical information onproblem reports see our GNATS databases

lsquoopenss7-updatesrsquoThe lsquoopenss7-updatesrsquo mailing list provides updates on OpenSS7 Project codereleases and ongoing activities Subscribers are not allowed to post to this listthis list is for official OpenSS7 Project announcements only Subscribe to thislist if you are interested in receiving updates concerning official releases andactivities of the OpenSS7 Project

lsquoopenss7-streamsrsquoThe lsquoopenss7-streamsrsquo mailing list is for email exchange related to theSTREAMS development projects under the OpenSS7 Project This includesdevelopment requests proposals requests for comment or proposal Subscribeto this list if you are interested in ongoing development details regarding theOpenSS7 Project STREAMS components

lsquolinux-streamsrsquoThe lsquolinux-streamsrsquo mailing list is for mail exchange related to LinuxFast-STREAMS or Linux STREAMS This includes patches developmentrequests proposals requests for comment or proposal Subscribe to this list ifyou are interested in ongoing development details regarding the STREAMSfor Linux components This is the the new (September 2006) home of thelsquolinux-streamsrsquo list formerly of gsycesceturjces

Spam

To avoid spam being sent to the members of the OpenSS7 mailing list(s) we have blockedmail from non-subscribers Please subscribe to the mailing list before attempting to postto them (Attempts to post when not subscribed get bounced)As an additional measure against spam subscriber lists for all OpenSS7 mailing lists arenot accessible to non-subscribers for most lists subscriber lists are only accessible to thelist administrator This keeps your mailing address from being picked off our website bybulk mailers

Acceptable Use Policy

It is acceptable to post professional and courteous messages regarding the OpenSS7 packageor any general information or questions concerning STREAMS SS7 SIGTRAN SCTP ortelecommunications applications in general

Large Attachments

The mailing list is blocked from messages of greater than 40k If you have attachments(patches test programs etc) and you mail them to the list it will bounce to the listadministrator If you are interested in making your patches test programs test results or

8 OpenSS7 SS7 Stack

other large attachments available to the members of the mailing list state in the messagethat you would like them posted and the list administrator will place them in the mailarchives

Quick Start Guide 9

Quick Start Guide

OpenSS7 SS7 Stack

Package strss7-09a8 was released under AGPLv3 2008-10-31

The OpenSS7 SS7 Stack package includes a wide array of kernel modules SVR 42STREAMS drivers modules libraries utilities test programs daemons and developmentenvironment for the development and execution of Signalling System Number 7 (SS7)Signalling Transport (SIGTRAN) Integrated Services Digital Network (ISDN) and Voiceover IP (VoIP) protocol stack components and applications for the Linux Fast-STREAMSenvironment

However the current package has had ISDN components moved to the lsquostrisdnrsquo packageSIGTRAN components moved to the lsquosigtranrsquo package and VoIP components moved tothe lsquostrvoiprsquo package Only SS7 components remain in the lsquostrss7rsquo package

This distribution is only currently applicable to Linux 24 and 26 kernels and was tar-geted at ix86 x86_64 ppc and ppc64 architectures but should build and install for otherarchitectures as well

Release

This is the strss7-09a8 package released 2008-10-31 This lsquo09a8rsquo release and thelatest version can be obtained from the download area of The OpenSS7 Project websiteusing a command such as

$gt wget httpwwwopenss7orgtarballsstrss7-09a8tarbz2

The release is available as an autoconf(1) tarball lsquosrcrpmrsquo or lsquodscrsquo as a set of binarylsquorpmrsquos or lsquodebrsquos or as a yum(8) or apt(8) repository See the download page for theautoconf(1) tarballs lsquosrcrpmrsquos lsquodscrsquos or repository access instructions See the strss7package page for tarballs source and binary packages

Please see the lsquoNEWSrsquo file for release notes and history of user visible changes for the currentversion and the lsquoChangeLogrsquo file for a more detailed history of implementation changesThe lsquoTODOrsquo file lists features not yet implemented and other outstanding items

Please see the lsquoINSTALLrsquo lsquoINSTALL-strss7rsquo and lsquoREADME-makersquo files (or see Chapter 6[Installation] page 47) for installation instructions

When working from cvs(1) or git(1) please see the lsquoREADME-cvsrsquo file (or see Section 628[Downloading from CVS] page 59) An abbreviated installation procedure that works formost applications appears below

This release of the package is published strictly under Version 3 of the GNU Affero PublicLicense which can be found in the file lsquoCOPYINGrsquo Package specific licensing terms (if any)can be found in the file lsquoLICENSESrsquo Please respect these licensing arrangements If youare interested in different licensing terms please contact the copyright holder or OpenSS7Corporation ltsalesopenss7comgt

See lsquoREADME-alpharsquo (if it exists) for alpha release information

10 OpenSS7 SS7 Stack

Prerequisites

The quickest and easiest way to ensure that all prerequisites are met is to download andinstall this package from within the OpenSS7 Master Package openss7-092G insteadof separatelyPrerequisites for the OpenSS7 SS7 Stack package are as follows1 Linux distribution somewhat Linux Standards Base compliant with a 24 or 26 kernel

and the appropriate tool chain for compiling out-of-tree kernel modules Most recentLinux distributions are usable out of the box but some development packages must beinstalled For more information see Section 52 [Compatibility] page 34

minus A fairly LSB compliant GNULinux distribution1

minus Linux 24 kernel (2410 - 2427) orminus Linux 26 kernel (263 - 2626)minus glibc2 or betterminus GNU groff (for man pages)2

minus GNU texinfo (for info files)minus GNU bison and flex (for config programs)minus net-snmp (for SNMP agents)3

(Note If you acquired strss7 a part of the OpenSS7 Master Package then the dependencieslisted below will already have been met by unpacking the master package)2 OpenSS7 Linux Fast-STREAMS streams-09244

3 OpenSS7 STREAMS Compatibility Modules strcompat-09274 OpenSS7 STREAMS XNS strxns-09275 OpenSS7 STREAMS XTITLI strxnet-092126 OpenSS7 STREAM Network Services Library strnsl-0924 (Optional)7 OpenSS7 STREAMS Sockets strsock-0924 (Optional)8 OpenSS7 STREAMS INET strinet-09279 OpenSS7 STREAMS SCTP strsctp-0929

10 OpenSS7 STREAMS Channels strchan-092411 OpenSS7 STREAMS X25 strx25-092112 OpenSS7 STREAMS ISO striso-092413 OpenSS7 STREAMS ISDN strisdn-0924

When configuring and building multiple OpenSS7 Project release packages place all of thesource packages (unpacked tarballs) at the same directory level and all build directories atthe same directory level (eg all source packages under lsquousrsrcrsquo)When installing packages that install as kernel modules it is necessary to have the correctkernel development package installed For the following distributions use the followingcommands

1 See Section 521 [GNULinux Distributions] page 34 for more information2 If you are using a Debian release please make sure to install the groff extension package (lsquogroff_extrsquo) as

it contains the refer or grefer commands necessary for including references in the manual pages3 A wide range of net-snmp releases are supported from UCD-SNMP 425 through net-snmp 544 Although at one time this package supported LiS LiS is now deprecated and unsupported

Quick Start Guide 11

Ubuntu $gt apt-get install linux-headersDebian $gt apt-get install kernel-headersFedora $gt yum install kernel-devel

You also need the same version of gcc(1) compiler with which the kernel was built If it isnot the default add lsquoCC=kgccrsquo on the line after lsquoconfigurersquo for example

$gt strss7-09a8configure CC=rsquogcc-34rsquo

Installation

The following commands will download configure build check install validate uninstalland remove the package

$gt wget httpwwwopenss7orgtarballsstrss7-09a8tarbz2$gt tar -xjvf strss7-09a8tarbz2$gt mkdir build$gt pushd build$gt strss7-09a8configure --enable-autotest$gt make$gt make check$gt sudo make install$gt sudo make installcheck$gt sudo make uninstall$gt popd$gt sudo rm -rf build$gt rm -rf strss7-09a8$gt rm -f strss7-09a8tarbz2

If you have problems try building with the logging targets instead If the make of a loggingtarget fails an automatic problem report will be generated that can be mailed to TheOpenSS7 Project5 Installation steps using the logging targets proceed as follows

$gt wget httpwwwopenss7orgtarballsstrss7-09a8tarbz2$gt tar -xjvf strss7-09a8tarbz2$gt mkdir build$gt pushd build$gt strss7-09a8configure --enable-autotest$gt make compilelog$gt make checklog$gt sudo make installlog$gt sudo make installchecklog$gt sudo make uninstalllog$gt popd$gt sudo rm -rf build$gt rm -rf strss7-09a8$gt rm -f strss7-09a8tarbz2

See lsquoREADME-makersquo for additional specialized make targets

5 Please see Section 72 [Problem Reports] page 97 or the file lsquoPROBLEMSrsquo in the release directory for moreinformation on filing a proper Problem Report

12 OpenSS7 SS7 Stack

For custom applications see the lsquoINSTALLrsquo and lsquoINSTALL-strss7rsquo files or the see Chapter 6[Installation] page 47 as listed below If you encounter troubles see Chapter 7 [Trou-bleshooting] page 93 before issuing a bug report

Brief Installation Instructions

The OpenSS7 SS7 Stack package is available from the downloads area of The OpenSS7Project website using a command such as

$gt wget httpwwwopenss7orgtarballsstrss7-09a8tarbz2

Unpack the tarball using a command such as$gt tar -xjvf strss7-09a8tarbz2

The tarball will unpack into the relative subdirectory named after the package name strss7-09a8The package builds using the GNU autoconf utilities and the lsquoconfigurersquo script To buildthe package we recommend using a separate lsquobuildrsquo directory as follows

$gt mkdir build$gt cd build$gt strss7-09a8configure

In general the package configures and builds without adding any special options to thelsquoconfigurersquo script For general options to the lsquoconfigurersquo script see the GNU lsquoINSTALLrsquofile in the distribution

$gt less strss7-09a8INSTALL

For specific options to the lsquoconfigurersquo script see the lsquoINSTALL-strss7rsquo file in the distri-bution or simply execute the configure script with the lsquo--helprsquo option like so

$gt strss7-09a8configure --help

After configuring the package the package can be compiled simply by issuing the lsquomakersquocommand

$gt make

Some specialized makefile targets exists see the lsquoREADME-makersquo file in the distribution orsimply invoke the lsquohelprsquo target like so

$gt make help | less

After successfully building the package the package can be checked by invoking the lsquocheckrsquomake target like so

$gt make check

After successfully checking the package the package can be installed by invoking thelsquoinstallrsquo make target (as root) like so

$gt sudo make install

The test suites that ship with the package can be invoked after the package has been installedby invoking the lsquoinstallcheckrsquo target This target can either be invoked as root or as anormal user like so

$gt make installcheck

(Note you must add the lsquo--enable-autotestrsquo flag to lsquoconfigurersquo above for the test suitesto be invoked with lsquomake installcheckrsquo)The package can be cleanly removed by invoking the lsquouninstallrsquo target (as root)

Quick Start Guide 13

$gt sudo make uninstall

Then the build directory and tarball can be simply removed$gt cd $gt rm -rf build$gt rm -rf strss7-09a8$gt rm -f strss7-09a8tarbz2

Detailed Installation Instructions

More detailed installation instructions can be found in the Chapter 6 [Installation] page 47contained in the distribution in lsquotextrsquo lsquoinforsquo lsquohtmlrsquo and lsquopdfrsquo formats

$gt cd strss7-09a8$gt less docmanualstrss7txt$gt lynx docmanualstrss7html$gt info docmanualstrss7info$gt xpdf docmanualstrss7pdf

The lsquotextrsquo version of the manual is always available in the lsquoMANUALrsquo file in the releaseThe current manual is also always available online from The OpenSS7 Project website at

$gt lynx httpwwwopenss7orgstrss7_manualhtml

Chapter 1 Introduction 15

1 Introduction

This manual documents the design implementation installation operation and future de-velopment schedule of the OpenSS7 SS7 Stack package

11 Overview

This manual documents the design implementation installation operation and future de-velopment of the OpenSS7 SS7 Stack packageThe OpenSS7 SS7 Stack package is an SS7 SIGTRAN ISDN VoIP package for Linux thatcan be used with Linux Fast-STREAMS1 or Linux STREAMS2 It includes developmenttools header files and manual pages forbull Communications Device Interface (CDI)bull Data Link Provider Interface (DLPI)bull Network Provider Interface (NPI)bull Transport Provider Interface (TPI)bull Signalling Data Link Interface (SDLI)bull Signalling Data Terminal Interface (SDTI)bull Message Transfer Part Interface (MTPI)bull Call Control Interface (CCI)bull Transaction Interface (TRI)bull Transaction Component Interface (TCI) andbull Mobile Application Part Interface (MAPI)

Also it provides STREAMS drivers and modules for SS7 SIGTRAN ISDN and VoIPincludingbull

The OpenSS7 SS7 Stack package is essential to the development and support of SS7 andISDN networking and call control modules and drivers and provides a fundamental set ofSS7 header files and manual pages for such developmentThe OpenSS7 SS7 Stack does not provide the STREAMS components See the manualsreferenced above

12 Organization of this Manual

This manual is organized (loosely) into several sections as followsChapter 1 [Introduction] page 15 This introductionChapter 2 [Objective] page 17 Objective of the packageChapter 3 [Reference] page 19 Contents of the packageChapter 4 [Conformance] page 31 Conformance of the packageChapter 5 [Releases] page 33 Releases of the packageChapter 6 [Installation] page 47 Installation of the packageChapter 7 [Troubleshooting] page 93 Troubleshooting of the package

1 See Section ldquoAbout This Manualrdquo in Linux Fast-STREAMS (LfS) Reference Manual2 See Section ldquoAbout This Manualrdquo in Linux STREAMS (LiS) Reference Manual

16 OpenSS7 SS7 Stack

13 Conventions and Definitions

This manual uses texinfo typographic conventions

Chapter 2 Objective 17

2 Objective

Chapter 3 Reference 19

3 Reference

31 Applications

20 OpenSS7 SS7 Stack

32 SS7 Protocol Stack

The SS7 Protocol Stack consists of a number of components

Chapter 3 Reference 21

321 Signalling Data Link (SDL)

22 OpenSS7 SS7 Stack

322 Signalling Data Terminal (SDT)

Chapter 3 Reference 23

323 Signalling Link (SL)

24 OpenSS7 SS7 Stack

324 Message Transfer Part (MTP)

Chapter 3 Reference 25

325 Signalling Connection Control Part (SCCP)

26 OpenSS7 SS7 Stack

326 Transaction Capabilities Application Part (TCAP)

Chapter 3 Reference 27

327 Base Station System Application Part (BSSAP)

28 OpenSS7 SS7 Stack

33 Device Drivers

Chapter 3 Reference 29

331 Digium Drivers

30 OpenSS7 SS7 Stack

332 SeaLevel ACB56 Drivers

Chapter 4 Conformance 31

4 Conformance

Chapter 5 Releases 33

5 Releases

This is the OpenSS7 Release of the OpenSS7 SS7 Stack tools drivers and modules usedwith the Linux Fast-STREAMS or Linux STREAMS1 SVR 42 STREAMS releasesThe purpose of providing a separate release of this package was to separate the OpenSS7SS7 Stack tools headers drivers and modules from the Linux STREAMS2 package for usewith both Linux STREAMS3 and Linux Fast-STREAMS in preparation for replacement ofthe former by the laterThe following sections provide information on OpenSS7 SS7 Stack releases as well as com-patibility information of OpenSS7 release to the original GCOM releases of these modulesand drivers as well as Linux kernel compatibility

51 Prerequisites

The quickest and easiest way to ensure that all prerequisites are met is to download andinstall this package from within the OpenSS7 Master Package openss7-092G insteadof separatelyPrerequisites for the OpenSS7 SS7 Stack package are as follows1 Linux distribution somewhat Linux Standards Base compliant with a 24 or 26 kernel

and the appropriate tool chain for compiling out-of-tree kernel modules Most recentLinux distributions are usable out of the box but some development packages must beinstalled For more information see Section 52 [Compatibility] page 34

minus A fairly LSB compliant GNULinux distribution4

minus Linux 24 kernel (2410 - 2427) orminus Linux 26 kernel (263 - 2626)minus glibc2 or betterminus GNU groff (for man pages)5

minus GNU texinfo (for info files)minus GNU bison and flex (for config programs)minus net-snmp (for SNMP agents)6

(Note If you acquired strss7 a part of the OpenSS7 Master Package then the dependencieslisted below will already have been met by unpacking the master package)2 OpenSS7 Linux Fast-STREAMS streams-09247

3 OpenSS7 STREAMS Compatibility Modules strcompat-09274 OpenSS7 STREAMS XNS strxns-09275 OpenSS7 STREAMS XTITLI strxnet-09212

1 Linux STREAMS is buggy unsupported and deprecated Do not use it2 Linux STREAMS is buggy unsupported and deprecated Do not use it3 Linux STREAMS is buggy unsupported and deprecated Do not use it4 See Section 521 [GNULinux Distributions] page 34 for more information5 If you are using a Debian release please make sure to install the groff extension package (lsquogroff_extrsquo) as

it contains the refer or grefer commands necessary for including references in the manual pages6 A wide range of net-snmp releases are supported from UCD-SNMP 425 through net-snmp 547 Although at one time this package supported LiS LiS is now deprecated and unsupported

34 OpenSS7 SS7 Stack

6 OpenSS7 STREAM Network Services Library strnsl-0924 (Optional)7 OpenSS7 STREAMS Sockets strsock-0924 (Optional)8 OpenSS7 STREAMS INET strinet-09279 OpenSS7 STREAMS SCTP strsctp-0929

10 OpenSS7 STREAMS Channels strchan-092411 OpenSS7 STREAMS X25 strx25-092112 OpenSS7 STREAMS ISO striso-092413 OpenSS7 STREAMS ISDN strisdn-0924

If you need to rebuild the package from sources with modifications you will need a largerGNU tool chain as described in See Section 628 [Downloading from CVS] page 59

52 Compatibility

This section discusses compatibility with major prerequisites

521 GNULinux Distributions

OpenSS7 SS7 Stack is compatible with the following Linux distributions8

bull CentOS Enterprise Linux 34 (centos34) TBDbull CentOS Enterprise Linux 40 (centos4) TBDbull CentOS Enterprise Linux 492 (centos49) TBDbull CentOS Enterprise Linux 50 (centos5)bull CentOS Enterprise Linux 51 (centos51)bull CentOS Enterprise Linux 52 (centos52)bull Debian 30r2 Woody (deb30) TBDbull Debian 31r0a Sarge (deb31) TBDbull Debian 40r1 Etch (deb40)bull Debian 40r2 Etch (deb40)bull Debian 40r3 Etch (deb40)bull Fedora Core 1 (FC1) TBDbull Fedora Core 2 (FC2) TBDbull Fedora Core 3 (FC3) TBDbull Fedora Core 4 (FC4) TBDbull Fedora Core 5 (FC5) TBDbull Fedora Core 6 (FC6) TBDbull Fedora 7 (FC7)bull Fedora 8 (FC8)bull Fedora 9 (FC9)bull Gentoo 20061 (untested) TBD

8 Items marked as lsquoTBDrsquo are scheduled to have support deprecated That is in a future release the distributionsmarked lsquoTBDrsquo will not longer be validated before release

Chapter 5 Releases 35

bull Gentoo 20071 (untested) TBDbull Lineox 4026 (LEL4) TBDbull Lineox 4053 (LEL4) TBDbull Mandrakelinux 92 (MDK92) TBDbull Mandrakelinux 100 (MDK100) TBDbull Mandrakelinux 101 (MDK101) TBDbull Mandriva Linux LE2005 (MDK102) TBDbull Mandriva Linux LE2006 (MDK103) TBDbull Mandriva One (untested)bull RedHat Linux 72 (RH7)bull RedHat Linux 73 (RH7)bull RedHat Linux 80 (RH8) TBDbull RedHat Linux 9 (RH9) TBDbull RedHat Enterprise Linux 30 (EL3) TBDbull RedHat Enterprise Linux 4 (EL4)bull RedHat Enterprise Linux 5 (EL5)bull SuSE 80 Professional (SuSE80) TBDbull SuSE 91 Personal (SuSE91) TBDbull SuSE 92 Professional (SuSE92) TBDbull SuSE OpenSuSE (SuSEOSS) TBDbull SuSE 100 (SuSE100) TBDbull SuSE 101 (SuSE101) TBDbull SuSE 102 (SuSE102) TBDbull SuSE 103 (SuSE103) TBDbull SuSE 110 (SuSE110)bull SLES 9 (SLES9) TBDbull SLES 9 SP2 (SLES9) TBDbull SLES 9 SP3 (SLES9) TBDbull SLES 10 (SLES10)bull Ubuntu 510 (ubu510) TBDbull Ubuntu 603 LTS (ubu603) TBDbull Ubuntu 610 (ubu610) TBDbull Ubuntu 704 (ubu704) TBDbull Ubuntu 710 (ubu710)bull Ubuntu 804 (ubu804)bull WhiteBox Enterprise Linux 30 (WBEL3) TBDbull WhiteBox Enterprise Linux 4 (WBEL4) TBD

When installing from the tarball (see Section 653 [Installing the Tar Ball] page 80) thisdistribution is probably compatible with a much broader array of distributions than thoselisted above These are the distributions against which the current maintainer creates andtests builds

36 OpenSS7 SS7 Stack

522 Kernel

The OpenSS7 SS7 Stack package compiles as a Linux kernel module It is not necessaryto patch the Linux kernel to build or use the package9 Nor do you have to recompile yourkernel to build or use the package OpenSS7 packages use autoconf scripts to adapt thepackage source to your existing kernel The package builds and runs nicely against produc-tion kernels from the distributions listed above Rather than relying on kernel versions theautoconf scripts interrogate the kernel for specific features and variants to better adaptto distribution production kernels that have had patches applied over the official kernelorgsources

The OpenSS7 SS7 Stack package is compatible with 24 kernel series after 2410 and hasbeen tested up to and including 2427 It has been tested from 263 up to and including2626 (with Fedora 9 openSUSE 110 and Ubuntu 804 patchsets) Please note that yourmileage may vary if you use a kernel more recent than 26264 it is difficult to anticipatechanges that kernel developers will make in the future Many kernels in the 26 seriesnow vary widely by release version and if you encounter problems try a kernel within thesupported series

UP validation testing for kernels is performed on all supported architectures SMP valida-tion testing was initially performed on UP machines as well as on an Intel 30GHz PentiumIV 630 with HyperThreading enabled (2x) Because HyperThreading is not as independentas multiple CPUs SMP validation testing was limited Current releases have been testedon dual 18GHz Xeon HP servers (2x) as well as dual quad-core SunFire (8x) servers

It should be noted that while the packages will configure build and install against XENkernels that problems running validation test suites against XEN kernels has been reportedXEN kernels are explicitly not supported This may change at some point in the future ifsomeone really requires running OpenSS7 under a XEN kernel

523 Architectures

The OpenSS7 SS7 Stack package compiles and installs on a wide range of architecturesAlthough it is believed that the package will work on all architectures supported by theLinux kernel being used validation testing has only been performed with the followingarchitectures

bull ix86

bull x86 64

bull ppc (MPC 860)

bull ppc64

32-bit compatibility validation testing is performed on all 64-bit architectures supporting32-bit compatibility If you would like to validate an OpenSS7 package on a specific machinearchitecture you are welcome to sponsor the project with a test machine

9 At a later date it is possible to move this package into the kernel however with continued resistance toSTREAMS from within the Linux developer community this is currently unlikely

Chapter 5 Releases 37

524 Linux STREAMS

The OpenSS7 SS7 Stack package is currently compatible with Linux STREAMS10 howeverto use the OpenSS7 SS7 Stack package with LiS requires use of the OpenSS7 release packagesof LiS The OpenSS7 SS7 Stack package is compatible with the OpenSS7 LiS-2187 releasethat is available from the The OpenSS7 Project Downloads Page But do not use LiS itis buggy unsupported and deprecated Use Linux Fast-STREAMS instead

525 Linux Fast-STREAMS

The OpenSS7 SS7 Stack package is currently compatible with Linux Fast-STREAMS (LfS)The OpenSS7 SS7 Stack package is compatible with the OpenSS7 streams-0924 releasethat is available from the The OpenSS7 Project Downloads Page

53 Release Notes

The sections that follow provide information on OpenSS7 releases of the OpenSS7 SS7 Stackpackage

Major changes for release strss7-09a8

The OpenSS7 SS7 Stack package contains a wide array of SS7 drivers and components forLinux Fast-STREAMS This is the public release package which has most of the componentsremoved Subscribers and sponsors of the OpenSS7 Project have access to the full array ofcomponents

This is the eighth release of the OpenSS7 SS7 Stack strss7 package that contains SS7(Signalling System No 7) signalling stack components for Linux Fast-STREAMS Thepackage contains the necessary header files manual pages and other documentation for SS7components in a separate autoconf tarball

The release includes maintenance support for recent distributions and tool chain but alsoincludes some performance and feature upgrades and inspection bug fixes It deprecatesprevious releases Please upgrade before reporting bugs on previous releases

This release is primarily a maintenance release

Major features since the last public release are as follows

- Minor documentation corrections- Kernel module license made explicit GPL v2 And then changed back to GPL- License upgrade to AGPL Version 3- Modifications to build under Fedora lsquo26225-49rsquo kernel These changes also sup-

port lsquo26229-91fc7rsquo kernel Use IRQF_DISABLED and IRQF_SHARED instead ofdeprecated SA_INTERRUPT and SA_SHIRQ Use pci_register_driver instead of pci_module_init

- Ability to strap out major documentation build and installation primarily for embeddedtargets

- Improvements to common build process for embedded and cross-compile targets- Modifications to build under Fedora lsquo2625-45fc9rsquo and lsquo26265-45fc9rsquo kernels

10 Linux STREAMS is buggy unsupported and deprecated Do not use it

38 OpenSS7 SS7 Stack

- Updated tool chain to lsquom4-1412rsquo lsquoautoconf-263rsquo and lsquotexinfo-413rsquo- Conversion of RPM spec files to common approach for major subpackages- Updated references database for manual pages and roff documents- Build system now builds yum(8) repositories for RPMs and apt-get(8) repositories

for DEBs Installation documentation has been updated to include details of repositoryinstall sourcesref

- Added MODULE_VERSION to all modules and drivers- Corrections for recent RHAS4 kernels defining irq handler t with 3 argument function

template- Added sdl-pmod and sdt-pmod STREAMS modules and manual pages These

two STREAMS modules simluate an SDT and SDL interface connection using aSTREAMS-based pipe for testing purposes

- Added MTPI specification texinfo (info html pdf) document- Added CNAM project document The CNAM projects provides a locally attached

TCAP CNAM database front-end that performs SS7 stack functions local to the switch-ing office and queries a back-end CNAM database using IP over the Internet

- Added SDLI SDTI and SLI specifications texinfo (info html pdf) document- Added manual pages for LMI and all LMI primitives- Added manual pages for SDLI and all SDLI primitives- Added manual pages for SDTI and all SDTI primitives- Added manual pages for SLI and all SLI primitives

This is a public beta release of the package it deprecates previous releases Please upgradeto the current release before reporting bugs Please see lsquoREADME-alpharsquo in the release orSection 54 [Maturity] page 42

As with other OpenSS7 releases this release configures compiles installs and builds RPMsand DEBs for a wide range of Linux 24 and 26 RPM- and DPKG-based distributions andcan be used on production kernels without patching or recompiling the kernel

This package is publicly released under the GNU Affero General Public License Version 3The release is available as an autoconf tarball SRPM DSC and set of binary RPMs andDEBs See the downloads page for the autoconf tarballs SRPMs and DSCs For tarballsSRPMs DSCs and binary RPMs and DEBs see the strss7 package page

See httpwwwopenss7orgcodefilesstrss7-09a8ChangeLog andhttpwwwopenss7orgcodefilesstrss7-09a8NEWS in the release formore information Also see the lsquostrss7pdfrsquo manual in the release (also in htmlhttpwwwopenss7orgstrss7_manualhtml)

For the news release see httpwwwopenss7orgrel20081029_5html

Major changes for release strss7-09a7

The OpenSS7 SS7 Stack package contains a wide array of SS7 drivers and components forLinux Fast-STREAMS This is the public release package which has most of the componentsremoved Subscribers and sponsors of the OpenSS7 Project have access to the full array ofcomponents

Chapter 5 Releases 39

This is the seventh release of the OpenSS7 SS7 Stack strss7 package that contains SS7(Signalling System No 7) signalling stack components for Linux Fast-STREAMS Thepackage contains the necessary header files manual pages and other documentation for SS7components in a separate autoconf tarball

This release is primarily to support recent compilers kernels and distributions

Major features since the last public release are as follows

- Support build on openSUSE 102

- Support build on Fedora 7 with 2621 kernel

- Support build on CentOS 50 (RHEL5)

- Support build on Ubuntu 704

- Updated to gettext 0161

- Changes to support build on 2620-12307fc5 and 2620-12933fc6 kernel

- Supports build on Fedora Core 6

- Support for recent distributions and tool chains

Major changes for release strss7-09a6

The OpenSS7 SS7 Stack package contains a wide array of SS7 drivers and components forLinux Fast-STREAMS This is the public release package which has most of the componentsremoved Subscribers and sponsors of the OpenSS7 Project have access to the full array ofcomponents

This is the sixth release of the OpenSS7 SS7 Stack strss7 package that contains SS7 (Sig-nalling System No 7) signalling stack components for Linux Fast-STREAMS The packagecontains the necessary header files manual pages and other documentation for SS7 compo-nents in a separate autoconf tarball

This release is primarily to support recent compilers kernels and distributions

Major features since the last public release are as follows

- Corrected support for the DS2152213522155221542135221555 chips present inolder V400P cards (See httpwwwopenss7orgcodefilesstrss7-09a8BUGSin the release for more information)

- Support for the DS2156 chip present in recent V401PE cards (Seehttpwwwopenss7orgcodefilesstrss7-09a8BUGS in the releasefor more information)

- Corrections for timer bugs in the X400P-SS7 driver (See httpwwwopenss7orgcodefilesstrss7-09a8BUGSin the release for more information)

- Improvements to the common build environment with better support for standalonepackage builds on 24 kernels

- Support for autoconf 261 automake 110 and gettext 016

- Support for Ubuntu 610 distribution and bug fixes for i386 kernels

- The package now looks for other subpackages with a version number as unpacked byseparate tarball

40 OpenSS7 SS7 Stack

Major changes for release strss7-09a5

The OpenSS7 SS7 Stack package contains a wide array of SS7 SIGTRAN ISDN and VoIPdrivers and components for Linux Fast-STREAMS This is the public release package whichhas most of the components removed Subscribers and sponsors of the OpenSS7 Projecthave access to the full array of components

This is the fifth release of the OpenSS7 SS7 Stack strss7 package that contains SS7 (Sig-nalling System No 7) SIGTRAN (SIGnalling TRANsport) ISDN (Integrated ServicesDigital Network) and VoIP (Void over Internet Protocol) signalling stack components forLinux Fast-STREAMS The package contains the necessary header files manual pages andother documentation for SS7SIGTRANISDNVoIP components in a separate autoconftarball

This release is primarily to support recent compilers kernels and distributions and toupgrade the X400P-SS7 driver with support for the Varion V401P (Tormenta III) cardsAlso this is the first release that has ISDN SIGTRAN and VoIP components moved toseparate packages (but will still build all components)

- The X400P-SS7 driver has been upgraded to support the Varion V401P (Tormenta III)card This driver passes all validation test suites and is production grade The driverstill supports the older cards Also an autoconf style validation test suite was addedand the lsquotest-x400prsquo test case executable upgraded

- Support for most recent 2618 kernels (including Fedora Core 5 with inode diet patch-set)

- The package will now build doxygen(1) html documentation with the rsquodoxyrsquo maketarget See rsquomake helprsquo or README-make in the distribution for more information

- Now builds 32-bit compatibility libraries and tests them against 64-bit kernel modulesand drivers The lsquomake installcheckrsquo target will now automatically test both 64-bitnative and 32-bit compatibility versions one after the other on 64-bit platforms

- Added versions to all library symbols

- Many documentation updates for all OpenSS7 packages Automated release file gener-ation making for vastly improved and timely text documentation present in the releasedirectory

- Dropped support for LiS

- Package will now support extended ranges of minor devices on 26 kernels under LinuxFast-STREAMS only

- Better detection of SUSE distributions release numbers and SLES distributions sup-port for additional SuSE distributions on ix86 as well as x86_64 Added distributionsupport includes SLES 9 SLES 9 SP2 SLES 9 SP3 SLES 10 SuSE 101

- Improved compiler flag generation and optimizations for recent gcc compilers and someidiosyncratic behaviour for some distributions (primarily SUSE)

- Optimized compilation is now available also for user level programs in addition to kernelprograms Added new lsquo--with-optimizersquo option to configure to accomplish this

- Automated release file generation making for vastly improved and timely text docu-mentation present in the release directory

Chapter 5 Releases 41

- Added --disable-devel configure option to suppress building and installing devel-opment environment This feature is for embedded or pure runtime targets that do notneed the development environment (static libraries manual pages documentation)

- Added send-pr script for automatic problem report generation

Major changes for release strss7-09a-4

This release is primarily to support additional compilers (gcc 402) architectures (x86 64SMP 32-bit compatibility) recent Linux distributions (EL4 SuSE 10 LE2006 OpenSuSE)and kernels (2615)

- Changes necessary for LP64 compatible builds Changes to support 32-bit ioctlcompatibility for LP64 architectures Binary compatibility should not have beendisrupted At the same time as the ioctl32 changes TRANSPARENT ioctl supportfor most of the IO controls for the ldl(4) driver has been added

- Changes to satisfy gcc 402 compiler

- Corrections for and testing of 64-bit clean compile and test runs on x86 64 architectureSome bug corrections resulting from gcc 402 compiler warnings

- Corrected build flags for Gentoo and 2615 kernels as reported on mailing list

- Initial corrections for and testing of SMP operation on Intel 630 Hyper-Threaded SMPon x86 64 This package should now run well on N-way Xeons even with Hyper-Threading enabled

- Corrections and validation of 32-bit compatibility over 64-bit on x86 64 Should applywell to other 64-bit architectures as well

This is a public alpha release of the package

Major changes for release strss7-09a-3

This is primarily a bug fixes release and corrections resulting from testing This isa major bug fix release The previous release was largely untested This release hasbeen verified (conformance test suite passes) for operation with Linux Fast-STREAMS(lsquostreams-07a4rsquo)

With this release version numbers were changed to reflect an upstream version only tobe consistent with other OpenSS7 package releases All RPM release numbers will belsquo-1$(PACKAGE_RPMEXTRA)rsquo and all Debian release numbers will be lsquo_0rsquo If you wish toapply patches and release the package please bump up the release number and apply asuitable release suffix for your organization We leave Debian release number lsquo_1rsquo reservedfor your use so you can still bundle the source in the lsquodscrsquo file

Major changes for this release include build against Linux 26 kernels and popular distri-butions based on the 26 kernel as well as wider distribution support The package alsosupports both lsquoLiS-2181rsquo as well as lsquostreams-07arsquo on both kernels

Not publicly released

Major changes for release strss7-09a-2

Not publicly released

42 OpenSS7 SS7 Stack

Initial release strss7-09a-1

Initial autoconfRPM packaging of the strss7 releaseNot publicly released

54 Maturity

The OpenSS7 Project adheres to the following release philosophybull pre-alpha releasebull alpha releasebull beta releasebull gamma releasebull production releasebull unstable release

541 Pre-Alpha Releases

Pre-alpha releases are releases that have received no testing whatsoever Code in the releaseis not even known to configure or compile The purpose of a pre-alpha release is to makecode and documentation available for inspection only and to solicit comments on the designapproach or other characteristics of the software packagePre-alpha release packages ship containing warnings recommending that the user not evenexecute the contained code

542 Alpha Releases

Alpha releases are releases that have received little to no testing or that have been testedand contains known bugs or defects that make the package unsuitable even for testing Thepurpose for an alpha release are the same as for the pre-alpha release with the additionalpurpose that it is an early release of partially functional code that has problems that anexternal developer might be willing to fix themselves and contribute back to the projectAlpha release packages ship containing warnings that executing the code can crash machinesand might possibly do damage to systems upon which it is executed

543 Beta Releases

Beta releases are releases that have received some testing but the testing to date is notexhaustive Beta release packages do not ship with known defects All known defectsare resolved before distribution however as exhaustive testing has not been performedunknown defects may exist The purpose for a beta release is to provide a baseline for otherorganizations to participate in the rigorous testing of the packageBeta release packages ship containing warnings that the package has not been exhaustivelytested and that the package may cause systems to crash Suitability of software in thiscategory for production use is not advised by the project however as always is at thediscretion of the user of the software

544 Gamma Releases

Gamma releases are releases that have received exhaustive testing within the project butexternal testing has been minimal Gamma release packages do not ship with known defects

Chapter 5 Releases 43

As exhaustive internal testing has been performed unknown defects should be few Pleaseremember that there is NO WARRANTY on public release packagesGamma release packages typically resolve problems in previous beta releases and mightnot have had full regression testing performed Suitability of software in this categoryfor production use is at the discretion of the user of the software The OpenSS7 Projectrecommends that the complete validation test suites provided with the package be performedand pass on target systems before considering production use

545 Production Releases

Production releases are releases that have received exhaustive testing within the projectand validated on specific distributions and architectures Production release packages donot ship with known defects Please remember that there is NO WARRANTY on publicrelease packagesProduction packages ship containing a list of validated distributions and architectures Fullregression testing of any maintenance changes is performed Suitability of software in thiscategory for production use on the specified target distributions and architectures is at thediscretion of the user It should not be necessary to preform validation tests on the set ofsupported target systems before considering production use

546 Unstable Releases

Unstable releases are releases that have received extensive testing within the project andvalidated on a a wide range of distributions and architectures however is has tested un-stable and found to be suffering from critical problems and issues that cannot be resolvedMaintenance of the package has proved impossible Unstable release packages ship withknown defects (and loud warnings) Suitability of software in this category for productionuse is at the discretion of the user of the software The OpenSS7 Project recommendsthat the problems and issues be closely examined before this software is used even in anon-production environment Each failing test scenario should be completely avoided bythe application OpenSS7 beta software is more stable that software in this category

55 Bugs

551 Defect Notices

OpenSS7 SS7 Stack has unknown defects This is an alpha release Some defects couldbe harmful No validation testing whatsoever has been performed by the OpenSS7 Projecton this software The software might fail to configure or compile on some systems TheOpenSS7 Project recommends that you do not use this software for purposes other thandeveloment or evaluation and then only with great care Use at your own risk Rememberthat there is NO WARRANTY11

This software is alpha software As such it can likely crash your kernel Installation of thesoftware can irreparably mangle your header files or Linux distribution in such a way asto make it unusable Crashes could lock your system and rebooting the system might notrepair the problem You can possibly lose all the data on your system Because this software

11 See sections Disclaimer of Warranty and Limitation of Liability under [GNU Affero General Public License]page 104

44 OpenSS7 SS7 Stack

can crash your kernel the resulting unstable system could destroy computer hardware orperipherals making them unusable You could void the warranty on any system on whichyou run this software YOU HAVE BEEN WARNED

552 Known Defects

With the exception of packages not originally created by the OpenSS7 Project the OpenSS7Project software does not ship with known bugs in any release stage except pre-alphaOpenSS7 SS7 Stack had no known bugs at the time of release

553 Defect History

This section contains historical bugs that were encountered during development and theirresolutions This list serves two purposes1 It captures bugs encountered between releases during development that could possibly

reoccur (and the Moon is made of blue cheese) It therefore provides a place for usersto look if they encounter a problem

2 It provides a low overhead bug list between releases for developers to use as a lsquoTODOrsquolist

Bugs

006 2008-08-17T034223+0000The xnet library was discovered to contain a thread-safety bug caused by newerbehaviour of pthread once() causing the library to core dump when used onrecent implementations of pthreads (nptl)The xnet library is no longer normally compiled as part of the lsquostrss7rsquo packagefixed in strss7-09a8

005 2007-07-21T171502-0600It was discovered that recent kernel on RHAS4 are defining irq handler t buthave the old 3 argument function template for irq handlers The detectionlogic assumed that if irq hander t existed that the newer 2 argument functiontemplate for irq handlers were in effect This caused builds to fail on theseRHAS4 kernelsfixed in strss7-09a8rc1A check was added to the configure script to test whether the irq handler t hasthe newer 2 argument template

004 2007-03-13T233637-0600 (x400p-ss75766)Older chips were not being recognized correctly either Reflected device tableand a few missing break statements was the causefixed in strss7-09a6

003 2007-03-13T024038-0600 (x400p-ss75766)It appears that V401PE cards were almost loading (configuring mappingdownloading firmware) but were failing to configure at the final stage of theprocess (matching device id to board type) The device id for the 2155 is sup-posed to be b4 regardless of E1 or T1 but I just guess that the card is reporting

Chapter 5 Releases 45

34 instead of b4 for E1 (it might be the firmware setting or unsetting the highbit as was done for the other devices) I changed the sl x400pc driver to printerror messages when loading if such mismatches occur and set the device idsto accept 0x3X as an E1 2155 device and 0bX as a T1J1 2155 device (eventhough they are all the same)As it turns out the V401PE cards have a DS2156 chip instead of a DS2155chip The only difference is the lack of Tx fixed gain control (register 0x7d)and the DS2156 supports a UTOPIA II bus that is not used on the V401PEI changed the driver to recognize the DS2156 and skip register 0x7d when itexists The DS2156 chip will work for both V401T (D33D) and V401E (D44D)cardsfixed in strss7-09a6

002 2007-03-08T210547-0700Timers were message up (using HZ instead of milliseconds) on the X400P driverThis did not affect architectures with 1000 HZ or 1024 HZ tick clocks but 100HZ systems objectfixed in strss7-09a6

001 2007-03-05T155814-0700For some reason the package was always building and installing the lsquolibxnetrsquotexinfo document which was keeping the RPM from installing after thelsquostrxnetrsquo package This was fixed in lsquodocmanualMakefileamrsquo with theaddition of a lsquoWITH_XNETrsquo conditionalfixed in strss7-09a6

56 Schedule

Current Plan

The current plan includes the public production release of SCCP ISUP and TCAP com-ponents MTP3 has not yet been publicly released and is not currently scheduled (Imple-menting the AS-side of M3UA is taking precedence) The first public production releases ofSCCP ISUP and TCAP are planned for the end of July 2007 This will be followed by laband limitied field trial testing with a lead customer in August and production deploymentin the lead customerrsquos network in 1Q2008 Expect that over the next 8 months releases ofthis package will include major new development and validation testing as well as includingSCCP ISUP and TCAP components that have nor heretofore been publicly released

Things to Do

There is a great long list of these but here is a crack at the first onesminus Compile entire (private) package against Linux Fast-STREAMSminus Convert test programs into conformance test suites under GNU autotest This should

be straight forward matterminus Start retesting SIGTRAN components against SCTP and Linux Fast-STREAMS start-

ing with M2PAminus Start retesting SS7 Device Drivers under Linux Fast-STREAMS starting with X400P

46 OpenSS7 SS7 Stack

minus Start retesting SS7 Stack components (MTP2 MTP3 SCCP ISUP TCAP) underLinux Fast-STREAMS

minus Package a public release It has been way too long since a public release of this packageThe package has almost a million lines of code in it most of which the public has neverseen

minus Complete the SL-MUX driver and utility programsminus Complete the libslpcap library (pcap(3)) for live capture of SS7 link SDUs using

ethereal(1) or wireshark(1)

57 History

For the latest developments with regard to history of changes please see the lsquoChangeLogrsquofile in the release package

Chapter 6 Installation 47

6 Installation

61 Repositories

The OpenSS7 SS7 Stack package release can be accessed from the repositories of TheOpenSS7 Project For rpm(1) based systems the package is available in a yum(8) reposi-tory based on lsquorepomdrsquo XML and may also be accessed using zypper(8) or yast(8) Fordpkg(1) based systems the package is available in a apt(8) repository

By far the easiest (most repeatable and manageable) form for installing and using OpenSS7packages is to install packages from the yum(8) or apt(8) repositories If your distributiondoes not support yum(8) zypper(8) yast(8) or apt(8) then it is still possible to installthe RPMs or DEBs from the repositories using rpm(1) dpkg(1) or by using wget(1) andthen installing them from RPM or DEB using rpm(1) or dpkg(1) locally

If binaries are not available for your distribution or specific kernel but your distributionsupports rpm(1) or dpkg(1) the next best method for installing and using OpenSS7 pack-ages is to download and rebuild the source RPMs or DSCs from the repository This canalso be performed with yum(8) zypper(8) yast(8) apt(8) or directly using wget(1)rpm(1) or dpkg(1)

If your architecture does not support rpm(1) or dpkg(1) at all or you have special needs(such as cross-compiling for embedded targets) the final resort method is to downloadconfigure build and install from tarball In this later case the easiest way to build andinstall OpenSS7 packages from tarball is to use the tarball for the OpenSS7 Master Packageopenss7-092G

611 Repositories for YUM

To install or upgrade from the OpenSS7 lsquorepomdrsquo repositories you will need a file inyour lsquoetcyumrepodrsquo directory This file can be obtained directly from the OpenSS7repository like so

$gt REPOS=httpwwwopenss7orgreposrpms$gt wget $REPOScentos52x86_64repodataopenss7repo$gt sudo cp -f openss7repo etcyumrepod$gt sudo yum makecache

This example assumes the the distribution is lsquocentosrsquo and the distribution releaseis lsquo52rsquo and the architecture requires is lsquox86_64rsquo Another example would belsquo$REPOSi686suse110i686repodataopenss7reporsquo for using yum(8) with SUSE

Once the repository is set up OpenSS7 includes a number of virtual package definitionsthat eas the installation and removal of kernel modules libraries and utilities Downloadingconfiguring building and installation for a single-kernel distribution is as easy as

$gt sudo yum install strss7

Removing the package is as easy as

$gt sudo yum remove strss7

If you have difficulty downloading the lsquoopenss7reporsquo file edit the following informationinto the file and place it into the lsquoetcyumrepodopenss7reporsquo file

48 OpenSS7 SS7 Stack

-| [openss7]-| enabled = 1-| name = OpenSS7 Repository-| baseurl = httpwwwopenss7orgreposrpmscentos52x86_64-| gpgcheck = 1-| gpgkey = httpwwwopenss7orgpubkeyasc

Note that it is also possible to point to these repositories as an additional installation sourcewhen installing CentOS RedHat Fedora or others You will have an additional STREAMScategory from which to choose installation packagesSome additional installation real or virtual package names and the installations they ac-complish are as follows

lsquostrss7rsquoThis package can be used to install or remove the entire OpenSS7 SS7 Stackpackage When installing kernel modules will be installed automatically forthe highest version kernel on your system When removing all correspondingkernel modules will also be removed

lsquostrss7-develrsquoThis package can be used to install or remove the development components ofthe OpenSS7 SS7 Stack package When installing lsquostrss7rsquo and appropriatekernel module and kernel module development and debug packages will alsobe installed When removing the development package and all kernel moduledevelopment and debug packages will also be removed

lsquostrss7-2420-287rsquoThis package can be used to install or remove the package for a specific kernelversion When installing the lsquostrss7rsquo package will also be installed if necessaryWhen removing the last kernel module package the lsquostrss7rsquo package will alsobe removedNote that the version lsquo2420-287rsquo is just an example Use the version re-turned by lsquo$(uname -r)rsquo for the kernel for which you wish to install or removethe packages

lsquostrss7-2420-287-develrsquoThis package can be used to install or remove the development and debugpackages for a specific kernel version When installing the lsquostrss7rsquo andlsquostrss7-develrsquo packages will also be installed if necessary When removingthe development and debug for kernel modules for the last kernel thelsquostrss7-develrsquo package will also be removedNote that the version lsquo2420-287rsquo is just an example Use the version re-turned by lsquo$(uname -r)rsquo for the kernel for which you wish to install or removethe packages

For assistance with specific RPMs see Section 623 [Downloading the Binary RPM]page 51

612 Repositories for APT

For assistance with specific DEBs see Section 624 [Downloading the Debian DEB] page 54

Chapter 6 Installation 49

62 Downloading

The OpenSS7 SS7 Stack package releases can be downloaded from the downloads page ofThe OpenSS7 Project The package is available as a binary RPM (for popular architectures)a source RPM Debian binary DEB and source DSC or as a tar ball If you are using abrowsable viewer you can obtain the OpenSS7 release of strss7 from the links in thesections that followBy far the easiest (most repeatable and manageable) form for installing and using OpenSS7packages is to download and install individual packages from binary RPM or DEB If binaryRPMs or DEBs are not available for your distribution but your distribution supportsrpm(1) or dpkg(1) the next best method for installing and using OpenSS7 packages is todownload and rebuild the source RPMs or DSCsIf your architecture does not support rpm(1) or dpkg(1) at all or you have special needs(such as cross-compiling for embedded targets) the final resort method is to downloadconfigure build and install from tarball In this later case the easiest way to build andinstall OpenSS7 packages from tarball is to use the tarball for the OpenSS7 Master Packageopenss7-092G

621 Downloading with YUM

OpenSS7 repositories support yum(8) and zypper(8) in repomd XML format as well asYaST and YaST2 formatsOpenSS7 includes virtual packages that ease the installation and removal of kernel moduleslibraries and utilities Downloading configuration building and installation for a signle-kernel distribution installation is as easy as sudo yum install strss7

This and additional packages for installation are detailed as follows

lsquostrss7rsquo Install this package if you need the runtime lsquostrss7rsquo package sudo yum install strss7

This will install the lsquostrss7rsquo lsquostrss7-librsquo and lsquostrss7-KVERSIONrsquo RPMswhere lsquoKVERSIONrsquo is the highest version number kernel on your systemRemove this package if you need to remove all vestages of the lsquostrss7rsquo package

sudo yum remove strss7

This will remove the lsquostrss7rsquo lsquostrss7-librsquo lsquostrss7-develrsquolsquostrss7-KVERSIONrsquo and lsquostrss7-devel-KVERSIONrsquo RPMs for allkernels on your system

lsquostrss7-develrsquoInstall this package if you need the development lsquostrss7rsquo package

sudo yum install strss7-devel

This will install the lsquostrss7rsquo lsquostrss7-librsquo lsquostrss7-develrsquolsquostrss7-KVERSIONrsquo and lsquostrss7-devel-KVERSIONrsquo RPMs wherelsquoKVERSIONrsquo is the highest version number kernel on your systemRemove this package if you do not need development capabilities for thelsquostrss7rsquo package for any kernel

50 OpenSS7 SS7 Stack

sudo yum remove strss7-devel

This will remove the lsquostrss7-develrsquo and lsquostrss7-devel-KVERSIONrsquo RPMs forall kernels on your system

lsquostrss7-2420-287rsquoInstall this package if you need the runtime lsquostrss7rsquo for kernel versionlsquo2420-287rsquo The value lsquo2420-287rsquo is just an example For the runningkernel you can install the runtime lsquostrss7rsquo components with

sudo yum install strss7-$(uname -r)

This will install the lsquostrss7rsquo lsquostrss7-librsquo and lsquostrss7-2420-287rsquo RPMswhere lsquo2420-287rsquo is the kernel version specified

Remove this package if you no longer need the runtime lsquostrss7rsquo for kernelversion lsquo2420-287rsquo The value lsquo2420-287rsquo is just an example For therunning kernel you can remove the runtime lsquostrss7rsquo components with

sudo yum remove strss7-$(uname -r)

This will remove the lsquostrss7-2420-287rsquo and lsquostrss7-devel-2420-287rsquoRPMs where lsquo2420-287rsquo is the kernel version specified Also if this is thelast kernel for which lsquostrss7rsquo was installed the lsquostrss7rsquo lsquostrss7-librsquo andlsquostrss7-develrsquo RPMs will also be removed

Note that this is a virtual package name the actual RPMs installed or removedfrom the system is a kernel module package whose precise name will dependupon the system being used

lsquostrss7-devel-2420-287rsquoInstall this package if you need the development lsquostrss7rsquo package for kernelversion lsquo2420-287rsquo The value lsquo2420-287rsquo is just an example For therunning kernel you can install the kernel development lsquostrss7rsquo componentswith

sudo yum install strss7-devel-$(uname -r)

This will install the lsquostrss7rsquo lsquostrss7-librsquo lsquostrss7-develrsquolsquostrss7-2420-287rsquo and lsquostrss7-devel-2420-287rsquo RPMswhere lsquo2420-287rsquo is the kernel version specified

Remove this package if you no longer need the development capabilities for thelsquostrss7rsquo package for kernel version lsquo2420-287rsquo The value lsquo2420-287rsquo isjust an example For the running kernel you can remove the kernel developmentlsquostrss7rsquo components with

sudo yum remove strss7-devel-$(uname -r)

This will remove the lsquostrss7-devel-2420-287rsquo RPMs wherelsquo2420-287rsquo is the kernel version specified Also if this is the last kernel forwhich lsquostrss7rsquo was installed the lsquostrss7-develrsquo RPMs will also be removed

Note that this is a virtual package name the actual RPMs installed or removedfrom the system is a kernel module package whose precise name will dependupon the system being used

Chapter 6 Installation 51

lsquostrss7-librsquoThis package is an auxillary package that should be removed and inserted au-tomatically by yum(8) In rare instances you might need to remove or installthis package explicitly

622 Downloading with APT

OpenSS7 repositries support apt(8) repositorie digests and signatures

623 Downloading the Binary RPM

To install from binary RPM you will need several of the RPM for a complete installationBinary RPM fall into several categories To download and install a complete packagerequires the appropriate RPM from each of the several categories below as applicableSome release packages do not provide RPMs in each of the several categories

To install from Binary RPM you will need all of the following kernel independent packagesfor your architecture and one of the kernel-dependent packages from the next section

Independent RPM

Independent RPM are dependent on neither the Linux kernel version nor the STREAMSpackage For example the source package lsquostrss7-source-09a8-172noarchrpmrsquo isnot dependent on kernel nor STREAMS package

All of the following kernel and STREAMS independent RPM are required for your architec-ture Binary RPMs listed here are for example only additional binary RPMs are availablefrom the downloads site If your architecture is not available you can build binary RPMfrom the source RPM (see see Section 641 [Building from the Source RPM] page 77)

Architecture Independent

strss7-dev-09a8-172noarchrpmThe lsquostrss7-devrsquo package contains the device definitions necessary to run ap-plications programs developed for OpenSS7 SS7 Stack1

strss7-doc-09a8-172noarchrpmThe lsquostrss7-docrsquo package contains this manual in plain text postscript lsquopdfrsquoand lsquohtmlrsquo forms along with the meta-information from the lsquostrss7rsquo packageIt also contains all of the manual pages necessary for developing OpenSS7 SS7Stack applications and OpenSS7 SS7 Stack STREAMS modules or drivers

strss7-init-09a8-172noarchrpmThe lsquostrss7-initrsquo package contains the init scripts and provides thelsquopostinstrsquo scripts necessary to create kernel module preloads and modulesdefinitions for all kernel module lsquocorersquo subpackages

1 Not all distributions support the lsquodevrsquo RPM macro a case in point is the SuSE 80 distribution whichuses an older version of rpm(1) Distributions that do not support the lsquodevrsquo macro will build devices asa lsquopostrsquo operation Note also that not all release packages contain devices Only packages that provideSTREAMS character device drivers need devices and then only when the lsquospecfsrsquo or lsquodevfsdrsquo is not beingused

52 OpenSS7 SS7 Stack

strss7-source-09a8-172noarchrpmThe lsquostrss7-sourcersquo package contains the source code necessary for buildingthe OpenSS7 SS7 Stack release It includes the autoconf(1) configurationutilities necessary to create and distribute tarballs lsquorpmrsquo and lsquodebrsquolsquodscrsquo2

Architecture Dependent

strss7-devel-09a8-172i686rpmThe lsquostrss7-develrsquo package contains library archives for static compilationheader files to develop OpenSS7 SS7 Stack modules and drivers This alsoincludes the header files and static libraries required to compile OpenSS7 SS7Stack applications programs

strss7-lib-09a8-172i686rpmThe lsquostrss7-librsquo package contains the run-time shared libraries necessary torun application programs and utilities developed for the lsquostrss7rsquo package3

STREAMS-Dependent RPM

STREAMS-Dependent RPM are dependent upon the specific STREAMS package beingused either Linux STREAMS or Linux Fast-STREAMS Packages dependent uponLinux STREAMS will have lsquoLiSrsquo in the package name Packages dependent uponLinux Fast-STREAMS will have lsquostreamsrsquo in the package name Note that someSTREAMS-Dependent RPM are also Kernel-Dependent RPM as described below

One of the following STREAMS-Dependent packages is required for your architecture Ifyour architecture is not on the list you can build binary RPM from the source RPM (seesee Section 641 [Building from the Source RPM] page 77)

strss7-LiS-util-09a8-172i686rpmThe lsquostrss7-LiS-utilrsquo package provides administrative and configuration testutilities and commands associated with the OpenSS7 SS7 Stack package Be-cause this package must link a STREAMS-specific library it is a STREAMS-Dependent package Use the lsquostrss7-LiS-utilrsquo package if you have LiS in-stalled

strss7-streams-util-09a8-172i686rpmThe lsquostrss7-streams-utilrsquo package provides administrative and configura-tion test utilities and commands associated with the OpenSS7 SS7 Stack pack-age Because this package must link a STREAMS-specific library it is aSTREAMS-Dependent package Use the lsquostrss7-streams-utilrsquo package ifyou have streams installed

Kernel-Dependent RPM

Kernel-Dependent RPM are dependent on specific Linux Kernel Binary RPM releasesPackages are provided for popular released RedHat kernels Packages dependent upon Red-

2 Note that not all releases have source RPM packages Release packages that do not contain kernel modulesdo not generate a source RPM package

3 Note that not all release packages contain shared libraries and therefore not all release packages containthis package

Chapter 6 Installation 53

Hat or other kernel RPM will have the lsquo_kversionrsquo kernel package version in the packagenameOne of the following Kernel-Dependent packages is required for your architecture and kernelversion If your architecture or kernel version is not on the list you can build binary RPMfrom the source RPM (see see Section 641 [Building from the Source RPM] page 77)4

strss7-core-2420-287-09a8-172i686rpmThe lsquostrss7-corersquo package contains the loadable kernel modules that dependonly on the kernel This package is heavily tied to the kernel for which it wascompiled This particular package applies to kernel version lsquo2420-287rsquo5

strss7-info-2420-287-09a8-172i686rpmThe lsquostrss7-inforsquo package6 contains the module symbol version informationfor the lsquocorersquo subpackage above It is possible to load this subpackage andcompile modules that use the exported symbols without loading the actualkernel modules (from the lsquocorersquo subpackage above) This package is heavilytied to the kernel for which it was compiled This particular package applies tokernel version lsquo2420-287rsquo7

strss7-LiS-core-2420-287-09a8-172i686rpmThe lsquostrss7-LiS-corersquo package contains the kernel modules that providethe OpenSS7 SS7 Stack STREAMS modules and drivers This package isheavily tied to the STREAMS package and kernel for which it was compiledThis particular package applies to lsquoLiSrsquo (Linux STREAMS) on kernel versionlsquo2420-287rsquo8

strss7-streams-core-2420-287-09a8-172i686rpmThe lsquostrss7-streams-corersquo package contains the kernel modules that pro-vide the OpenSS7 SS7 Stack STREAMS modules and drivers This package isheavily tied to the STREAMS package and kernel for which it was compiledThis particular package applies to lsquostreamsrsquo (Linux Fast-STREAMS) on kernelversion lsquo2420-287rsquo9

strss7-LiS-info-2420-287-09a8-172i686rpmThe lsquostrss7-LiS-inforsquo package10 contains the module symbol version infor-mation for the lsquoLiS-corersquo subpackage above It is possible to load this sub-package and compile modules that use the exported symbols without loaded the

4 Note that on Mandrakelinux unlike other RPM kernel distributions kernel packages for the ix86 architec-tures are always placed in i586 architecture packages regardless of the true processor architecture of thekernel package lsquoconfigurersquo detects this and builds the appropriate packages

5 Note that the lsquo_kversionrsquo of lsquo2420-287rsquo is only an example Note also that only release packages thatcontain kernel modules will contain a lsquocorersquo subpackage

6 Note that only release packages that contain kernel modules and that export versioned symbols will containa lsquoinforsquo subpackage Also this subpackage is only applicable to 24 series kernels and is not necessary andnot built for 26 series kernels

7 Note that the lsquo_kversionrsquo of lsquo2420-287rsquo is only an example8 Note that the lsquo_kversionrsquo of lsquo2420-287rsquo is only an example9 Note that the lsquo_kversionrsquo of lsquo2420-287rsquo is only an example

10 Note that only release packages that contain kernel modules and that export versioned symbols will containa lsquoLiS-inforsquo subpackage

54 OpenSS7 SS7 Stack

actual kernel modules (from the lsquoLiS-corersquo subpackage above) This packageis heavily tied to the STREAMS package and kernel for which it was compiledThis particular package applies to lsquoLiSrsquo (Linux STREAMS) on kernel versionlsquo2420-287rsquo11

strss7-streams-info-2420-287-09a8-172i686rpmThe lsquostrss7-streams-inforsquo package12 contains the module symbol version in-formation for the lsquostreams-corersquo subpackage above It is possible to loadthis subpackage and compile modules that use the exported symbols withoutloaded the actual kernel modules (from the lsquostreams-corersquo subpackage above)This package is heavily tied to the STREAMS package and kernel for whichit was compiled This particular package applies to lsquostreamsrsquo (Linux Fast-STREAMS) on kernel version lsquo2420-287rsquo13

Configuration and Installation

To configure build and install the binary RPM See Section 631 [Configuring the BinaryRPM] page 62

624 Downloading the Debian DEB

To install from binary DEB you will need several of the DEB for a complete installationBinary DEB fall into several categories To download and install a complete package requiresthe appropriate DEB from each of the several categories below as applicable Some releasepackages do not provide DEBs in each of the several categories

To install from Binary DEB you will need all of the following kernel independent packagesfor your architecture and one of the kernel-dependent packages from the next section

Independent DEB

Independent DEB are dependent on neither the Linux kernel version nor the STREAMSpackage For example the source package lsquostrss7-source_09a8-0_i386debrsquo is notdependent on kernel nor STREAMS package

All of the following kernel and STREAMS independent DEB are required for your architec-ture Binary DEBs listed here are for example only additional binary DEBs are availablefrom the downloads site If your architecture is not available you can build binary DEBfrom the Debian DSC (see see Section 642 [Building from the Debian DSC] page 78)

Architecture Independent

strss7-dev 09a8-0 alldebThe lsquostrss7-devrsquo package contains the device definitions necessary to run ap-plications programs developed for OpenSS7 SS7 Stack14

11 Note that the lsquo_kversionrsquo of lsquo2420-287rsquo is only an example12 Note that only release packages that contain kernel modules and that export versioned symbols will contain

a lsquostreams-inforsquo subpackage13 Note that the lsquo_kversionrsquo of lsquo2420-287rsquo is only an example14 Note that not all release packages contain devices Only packages that provide STREAMS character device

drivers need devices and then only when the lsquospecfsrsquo or lsquodevfsdrsquo is not being used

Chapter 6 Installation 55

strss7-doc 09a8-0 alldebThe lsquostrss7-docrsquo package contains this manual in plain text postscript lsquopdfrsquoand lsquohtmlrsquo forms along with the meta-information from the lsquostrss7rsquo packageIt also contains all of the manual pages necessary for developing OpenSS7 SS7Stack applications and OpenSS7 SS7 Stack STREAMS modules or drivers

strss7-init 09a8-0 alldebThe lsquostrss7-initrsquo package contains the init scripts and provides the postinstscripts necessary to create kernel module preloads and modules definitions forall kernel module lsquocorersquo subpackages

strss7-source 09a8-0 alldebThe lsquostrss7-sourcersquo package contains the source code necessary for buildingthe OpenSS7 SS7 Stack release It includes the autoconf(1) configurationutilities necessary to create and distribute tarballs rpms and debdscs15

Architecture Dependent

strss7-devel 09a8-0 i386debThe lsquostrss7-develrsquo package contains library archives for static compilationheader files to develop OpenSS7 SS7 Stack modules and drivers This alsoincludes the header files and static libraries required to compile OpenSS7 SS7Stack applications programs

strss7-lib 09a8-0 i386debThe lsquostrss7-librsquo package contains the run-time shared libraries necessary torun application programs and utilities developed for the lsquostrss7rsquo package16

STREAMS-Dependent DEB

STREAMS-Dependent DEB are dependent upon the specific STREAMS package beingused either Linux STREAMS or Linux Fast-STREAMS Packages dependent uponLinux STREAMS will have lsquoLiSrsquo in the package name Packages dependent uponLinux Fast-STREAMS will have lsquostreamsrsquo in the package name Note that someSTREAMS-Dependent DEB are also Kernel-Dependent DEB as described below

One of the following STREAMS-Dependent packages is required for your architecture Ifyour architecture is not on the list you can build binary DEB from the Debian DSC (seesee Section 642 [Building from the Debian DSC] page 78)

strss7-LiS-util 09a8-0 i386debThe lsquostrss7-LiS-utilrsquo package provides administrative and configuration testutilities and commands associated with the OpenSS7 SS7 Stack package Be-cause this package must link a STREAMS-specific library it is a STREAMS-Dependent package Use the lsquostrss7-LiS-utilrsquo package if you have LiS in-stalled

15 Note that not all releases have source DEB packages Release packages that do not contain kernel modulesdo not generate a source DEB package

16 Note that not all release packages contain shared libraries and therefore not all release packages containthis package

56 OpenSS7 SS7 Stack

strss7-streams-util 09a8-0 i386debThe lsquostrss7-streams-utilrsquo package provides administrative and configura-tion test utilities and commands associated with the OpenSS7 SS7 Stack pack-age Because this package must link a STREAMS-specific library it is aSTREAMS-Dependent package Use the lsquostrss7-streams-utilrsquo package ifyou have streams installed

Kernel-Dependent DEB

Kernel-Dependent DEB are dependent on specific Linux Kernel Binary DEB releases Pack-ages are provided for popular released Debian kernels Packages dependent upon Debian orother kernel DEB will have the lsquo_kversionrsquo kernel package version in the package nameOne of the following Kernel-Dependent packages is required for your architecture and kernelversion If your architecture or kernel version is not on the list you can build binary DEBfrom the source DEB (see see Section 642 [Building from the Debian DSC] page 78)17

strss7-core-2420-287 09a8-0 i386debThe lsquostrss7-corersquo package contains the loadable kernel modules that dependonly on the kernel This package is heavily tied to the kernel for which it wascompiled This particular package applies to kernel version lsquo2420-287rsquo18

strss7-info-2420-287 09a8-0 i386debThe lsquostrss7-inforsquo package19 contains the module symbol version informationfor the lsquocorersquo subpackage above It is possible to load this subpackage andcompile modules that use the exported symbols without loading the actualkernel modules (from the lsquocorersquo subpackage above) This package is heavilytied to the kernel for which it was compiled This particular package applies tokernel version lsquo2420-287rsquo20

strss7-LiS-core-2420-287 09a8-0 i386debThe lsquostrss7-LiS-corersquo package contains the kernel modules that providethe OpenSS7 SS7 Stack STREAMS modules and drivers This package isheavily tied to the STREAMS package and kernel for which it was compiledThis particular package applies to lsquoLiSrsquo (Linux STREAMS) on kernel versionlsquo2420-287rsquo21

strss7-streams-core-2420-287 09a8-0 i386debThe lsquostrss7-streams-corersquo package contains the kernel modules that pro-vide the OpenSS7 SS7 Stack STREAMS modules and drivers This package isheavily tied to the STREAMS package and kernel for which it was compiled

17 Note that on Mandrakelinux unlike other DEB kernel distributions kernel packages for the ix86 architecturesare always placed in i586 architecture packages regardless of the true processor architecture of the kernelpackage lsquoconfigurersquo detects this and builds the appropriate packages

18 Note that the lsquo_kversionrsquo of lsquo2420-287rsquo is only an example Note also that only release packages thatcontain kernel modules will contain a lsquocorersquo subpackage

19 Note that only release packages that contain kernel modules and that export versioned symbols will containa lsquoinforsquo subpackage Also this subpackage is only applicable to 24 series kernels and is not necessary andnot built for 26 series kernels

20 Note that the lsquo_kversionrsquo of lsquo2420-287rsquo is only an example21 Note that the lsquo_kversionrsquo of lsquo2420-287rsquo is only an example

Chapter 6 Installation 57

This particular package applies to lsquostreamsrsquo (Linux Fast-STREAMS) on kernelversion lsquo2420-287rsquo22

strss7-LiS-info-2420-287 09a8-0 i386debThe lsquostrss7-LiS-inforsquo package23 contains the module symbol version infor-mation for the lsquoLiS-corersquo subpackage above It is possible to load this sub-package and compile modules that use the exported symbols without loaded theactual kernel modules (from the lsquoLiS-corersquo subpackage above) This packageis heavily tied to the STREAMS package and kernel for which it was compiledThis particular package applies to lsquoLiSrsquo (Linux STREAMS) on kernel versionlsquo2420-287rsquo24

strss7-streams-info-2420-287 09a8-0 i386debThe lsquostrss7-streams-inforsquo package25 contains the module symbol version in-formation for the lsquostreams-corersquo subpackage above It is possible to loadthis subpackage and compile modules that use the exported symbols withoutloaded the actual kernel modules (from the lsquostreams-corersquo subpackage above)This package is heavily tied to the STREAMS package and kernel for whichit was compiled This particular package applies to lsquostreamsrsquo (Linux Fast-STREAMS) on kernel version lsquo2420-287rsquo26

Configuration and Installation

To configure build and install the Debian DEB See Section 632 [Configuring the DebianDEB] page 63

625 Downloading the Source RPM

If you cannot obtain a binary RPM for your architecture or would like to roll you ownbinary RPM download the following source RPM

strss7-09a8-1srcrpmThis is the source RPM for the package From this source RPM it is possible tobuild binary RPM for any supported architecture and for any 24 or 26 kernelfor either Linux STREAMS or Linux Fast-STREAMS

Configuration

To configure the source RPM See Section 633 [Configuring the Source RPM] page 63

626 Downloading the Debian DSC

If you cannot obtain a binary DEB for your architecture or would like to roll your ownDEB download the following Debian DSC

22 Note that the lsquo_kversionrsquo of lsquo2420-287rsquo is only an example23 Note that only release packages that contain kernel modules and that export versioned symbols will contain

a lsquoLiS-inforsquo subpackage24 Note that the lsquo_kversionrsquo of lsquo2420-287rsquo is only an example25 Note that only release packages that contain kernel modules and that export versioned symbols will contain

a lsquostreams-inforsquo subpackage26 Note that the lsquo_kversionrsquo of lsquo2420-287rsquo is only an example

58 OpenSS7 SS7 Stack

strss7 09a8-0dscstrss7 09a8-0targz

This is the Debian DSC for the package From this Debian DSC it is possible tobuild binary DEB for any supported architecture and for any 24 or 26 kernelfor either Linux STREAMS or Linux Fast-STREAMS

Configuration

To configure the source RPM See Section 634 [Configuring the Debian DSC] page 67

627 Downloading the Tar Ball

For non-rpm(1) and non-dpkg(1) architectures download the tarball as follows

strss7-09a8targzstrss7-09a8tarbz2

These are the tar(1) balls for the release These tar(1) balls contain theautoconf(1) distribution which includes all the source necessary for buildingand installing the package These tarballs will even build Source RPM andBinary RPM on rpm(1) architectures and Debian DSC and DEB on dpkg(1)architectures

The tar ball may be downloaded easily with wget(1) as follows wget httpwwwopenss7orgstrss7-09a8tarbz2

or wget httpwwwopenss7orgstrss7-09a8targz

Note that you will need an OpenSS7 Project user name and password to download releasecandidates (which are only available to subscribers and sponsors of the OpenSS7 Project)

Unpacking the Archive

After downloading one of the tar balls unpack the archive using one of the following com-mands wget httpwwwopenss7orgstrss7-09a8targz tar -xzvf strss7-09a8targz

or wget httpwwwopenss7orgstrss7-09a8tarbz2 tar -xjvf strss7-09a8tarbz2

Either will create a subdirectory name lsquostrss7-09a8rsquo containing all of the files andsubdirectories for the strss7 package

Chapter 6 Installation 59

Configuration

To configure and install the tar ball See Section 635 [Configuring the Tar Ball] page 67

628 Downloading from CVS

If you are a subscriber or sponsor of The OpenSS7 Project with CVS archive access privilegesthen you can download release mid-release or release candidate versions of the lsquostrss7rsquopackage from the project CVS archiveThe OpenSS7 SS7 Stack package is located in the lsquostrss7rsquo module of lsquovarcvsrsquo Forrelease tag information see Chapter 5 [Releases] page 33To access the archive from the project CVS pserver use the following commands to checkout a version from the archive export CVSROOT=rsquo-dpserverusernamecvsopenss7com2401varcvsrsquo cvs loginPassword cvs co -r strss7_09a8 strss7 cvs logout

It is of course possible to check out by date or by other criteria For more informationsee cvs(1)

Preparing the CVS Working Directory

Although public releases of the lsquostrss7rsquo package do not require reconfiguration creating aconfigurable directory from the CVS archive requires tools not normally distributed withthe other releasesThe build host requires the following GNU toolsbull m4 1412

bull autoconf 263

bull automake 1101

bull libtool 224

bull gettext 017

bull flex 2533

bull bison 23

Most desktop development GNULinux distributions wil have these tools however somenon-development or server-style installations might not and they must be installed sepa-rately27

Also these tools can be acquired from the FSF website in the free software directory andalso at the following locationsbull m4-1412bull autoconf-263

27 Older version of bison (20) and the older version of flex (254a) are also suitable Where possible use themore recent bison 23 and flex 2533

60 OpenSS7 SS7 Stack

bull automake-1101bull libtool-224bull gettext-017bull flex-2533bull bison-23

It should be stressed that in particular the autoconf(1) and automake(1) must be atversion releases 263 and 1101 The versions normally distributed in some mainstreamGNULinux distributions are in fact much older than these versions28 GNU version ofthese packages configured and installed to default directories will install in lsquousrlocalrsquoallowing them to coexist with distribution installed versionsFor building documentation the build host also requires the following documentation toolsbull gs 651 or ghostscript 651 or newerbull tetex 30 or texlive 2007 or newerbull texinfo 413a or newerbull transfig 323d or newerbull imagemagick 538 or ImageMagick 538 or newerbull groff 1172 or newerbull gnuplot 37 or newerbull latex2html 162 or newer

Most desktop GNULinux distributions will have these tools however some server-styleinstallations (eg Ubuntu-server SLES 9 or Fedora 6 or 7) will not and they must beinstalled separately29

Note that texinfo 412 must not be used as it breaks the build processFor uncooked manual pages the entire groff(1) package is required on older Debian andUbuntu systems (the base package did not include grefer(1) which is used extensively byuncooked manual pages) The following will get what you need on older systems Debian apt-get install groff_extUbuntu apt-get install groff

On newer systems simply apt-get install groff

In addition the build host requires a complete tool chain for compiling for the target hostincluding kernel tools such as genksyms(8) and others

28 A notable exception is Debian and Fedora 7 Note that on Fedora 7 the gettext-devel package must beinstalled

29 In particular for CentOS Fedora 6 or 7 the tetex-latex and gnuplot packages must be loaded as wellNote also that the latex2html used to be part of the textex package (or subpackages) but is now oftenpackaged on its own Recent distributions such as SUSE 110 and Fedora 9 use the texlive package insteadof the tetex package

Chapter 6 Installation 61

If you wish to package lsquorpmsrsquo on an rpm(1) system or lsquodebsrsquo on a dpkg(1) system you willneed the appropriate tool chain Systems based on rpm(1) typically have the necessary toolchain available however dpkg(1) systems do not The following on a Debian or Ubuntusystem will get what you need apt-get install debhelper apt-get install fakeroot

To generate a configuration script and the necessary scriptlets required by the GNUautoconf(1) system execute the following commands on the working directory autoreconf -fiv strss7

where lsquostrss7rsquo is the name of the directory to where the working copy was checked outunder the previous step This command generates the lsquoconfigurersquo script and other missingpieces that are normally distributed with the release Tar Balls SRPMs and DSCs

Make sure that lsquoautoreconf --versionrsquo returns lsquo263rsquo Otherwise you may need to per-form something like the following PATH=usrlocalbin$PATH autoreconf -fiv strss7

After reconfiguring the directory the package can then be configured and built using thesame instructions as are used for the Tar Ball see Section 635 [Configuring the Tar Ball]page 67 and Section 643 [Building from the Tar Ball] page 78

Do note however that make(1) will rebuild the documentation that is normally releasedwith the package Additional tools may be necessary for building the documentationTo avoid building and installing the documentation use the lsquo--disable-develrsquo orlsquo--disable-docsrsquo option to configure described in Section 635 [Configuring the Tar Ball]page 67

When configuring the package in a working directory and while working a change-compile-test cycle that involves configuration macros or documentation I find it ofgreat advantage to invoke the GNU lsquoconfigurersquo options lsquo--enable-maintainer-modersquolsquo--enable-dependency-trackingrsquo and lsquo--disable-develrsquo The first of these threeoptions will add maintainer-specific targets to any generated lsquoMakefilersquo the second optionwill invoke automatic dependency tracking within the lsquoMakefilersquo so rebuilds after changesto macro source or documentation files will be automatically rebuilt and the last optionwill suppress rebuilding and reinstalling documentation manual pages and header filesHeader files will still be available under the lsquousrsrcrsquo directory

63 Configuration

62 OpenSS7 SS7 Stack

631 Configuring the Binary RPM

In general the binary RPM do not require any configuration however during installationit is possible to relocate some of the installation directories This allows some degree ofcustomization Relocations that are available on the binary RPM are as follows

lsquostrss7-LiS-core-2420-287-09a8-172i686rpmrsquolsquostrss7-streams-core-2420-287-09a8-172i686rpmrsquo

lsquolibmodules2420-287rsquoThis relocatable directory contains the kernel modules that providethe strss7 STREAMS core drivers and modules30

lsquostrss7-LiS-info-2420-287-09a8-172i686rpmrsquolsquostrss7-streams-info-2420-287-09a8-172i686rpmrsquo

lsquousrincludestrss72420-287rsquoThis relocatable directory contains the kernel module exportedsymbol information that allows other kernel modules to be com-piled against the correct version of the strss7 package31

lsquostrss7-dev-09a8-172i686rpmrsquo(not relocatable)

lsquostrss7-devel-09a8-172i686rpmrsquolsquousrlibrsquo

This relocatable directory contains strss7 libraries

lsquousrincludestrss7rsquoThis relocatable directory contains strss7 header files

lsquostrss7-doc-09a8-172i686rpmrsquolsquousrsharedocrsquo

This relocatable directory contains all package specific documenta-tion (including this manual) The subdirectory in this directory isthe lsquostrss7-09a8rsquo directory

lsquousrshareinforsquoThis relocatable directory contains info files (including the info ver-sion of this manual)

lsquousrsharemanrsquoThis relocatable directory contains manual pages

lsquostrss7-LiS-lib-09a8-172i686rpmrsquolsquostrss7-streams-lib-09a8-172i686rpmrsquo

lsquousrlibrsquoThis relocatable directory contains the run-time shared librariesnecessary to run applications programs and utilities developed forOpenSS7 SS7 Stack

30 Note that the lsquo_kversionrsquo of lsquo2420-287rsquo is only an example31 Note that the lsquo_kversionrsquo of lsquo2420-287rsquo is only an example Also note that the lsquoinforsquo subpackage is

only applicable to the 24 kernel series

Chapter 6 Installation 63

lsquousrsharelocalersquoThis relocatable directory contains the locale information for sharedlibrary files

lsquostrss7-source-09a8-172i686rpmrsquo

lsquousrsrcrsquoThis relocatable directory contains the source code

lsquostrss7-LiS-util-09a8-172i686rpmrsquolsquostrss7-streams-util-09a8-172i686rpmrsquo

lsquousrbinrsquoThis relocatable directory contains binary programs and utilities

lsquousrsbinrsquoThis relocatable directory contains system binary programs andutilities

lsquousrlibexecrsquoThis relocatable directory contains test programs

lsquoetcrsquo This relocatable directory contains init scripts and configurationinformation

Installation

To install the binary RPM See Section 651 [Installing the Binary RPM] page 79

632 Configuring the Debian DEB

In general the binary DEB do not require any configuration

Installation

To install the Debian DEB See Section 652 [Installing the Debian DEB] page 80

633 Configuring the Source RPM

When building from the source RPM (see Section 641 [Building from the Source RPM]page 77) the rebuild process uses a number of macros from the userrsquos lsquorpmmacrosrsquo file asdescribed in rpm(8)

Following is an example of the lsquo~rpmmacrosrsquo file that I use for rebuilding RPMS

64 OpenSS7 SS7 Stack

RPM macros for building rpms

vendor OpenSS7 Corporation

distribution OpenSS7

disturl httpwwwopenss7org

packager Brian Bidulock ltbidulockopenss7orggt

url httpwwwopenss7org

_signature gpg

_gpg_path homebriangnupg

_gpg_name openss7openss7org

_gpgbin usrbingpg

_source_payload w9bzdio

_binary_payload w9bzdio

_unpackaged_files_terminate_build 1

_missing_doc_files_terminate_build 1

_use_internal_dependency_generator 0

_repackage_all_erasures 0

_rollback_transaction_on_failure 0

configure2_5x configure

make make When building from the source RPM (see Section 641 [Building from the Source RPM]page 77) it is possible to pass a number of additional configuration options to therpmbuild(1) process

The additional configuration options are described below

Note that distributions that use older versions of rpm do not have the lsquo--withrsquo orlsquo--withoutrsquo options defined To achieve the same effect as

--with someparm=somearg

do

--define _with_someparm --with-someparm=somearg

This is a generic description of common rpmbuild(1) options Not all rpmbuild(1) optionsare applicable to all SRPMs Options that are kernel module specific are only applicable toSRPMs that build kernel modules STREAMS options are only applicable to SRPMs thatprovide or require STREAMS

--define _kversion $PACKAGE_KVERSIONSpecifies the kernel version other than the running kernel for which tobuild If _kversion is not defined when rebuilding the environmentvariable PACKAGE KVERSION is used If the environment variablePACKAGE KVERSION is not defined then the version of the runningkernel (ie discovered with lsquouname -rrsquo) is used as the target version forkernel-dependent packages This option can also be defined in an lsquorpmspecrsquofile using the macro name lsquo_kversionrsquo

Chapter 6 Installation 65

--with checks--without checks

Enable or disable preinstall checks Each packages supports a number ofpreinstall checks that can be performed by invoking the lsquocheckrsquo target withautomake(1) These currently consist of checking each kernel module forunresolved kernel symbols checking for documentation for exported kernelmodule symbols checking for documentation for exported library symbolschecking for standard options for build and installable programs checkingfor documentation for built and installable programs Normally these checksare only run in maintainer mode but can be enabled and disabled with thisoption

--with k-optimize=HOW--without k-optimize

Specify lsquoHOWrsquo optimization normal size speed or quick size compiles kernelmodules -Os speed compiles kernel modules -O3 and quick compiles kernelmodules -O0 The default is normal Use with care

--with cooked-manpages--without cooked-manpages

Some systems do not like grefer(1) references in manual pages32 This optionwill cook soelim(1) refer(1) tbl(1) and pic(1) commands from the man-ual pages and also strip groff(1) comments The default is to leave manualpages uncooked they are actually smaller that way

--with public--without public

Release public packages or private packages This option has no effect on thelsquostrss7rsquo package The default is to release public packages

--with k-debug--without k-debug

Specifies whether kernel debugging is to be performed on the build kernel mod-ules Mutually exclusive with test and safe below This has the effect ofremoving static and inline attributes from functions and invoking all debuggingmacros in the code The default is to not perform kernel debugging

--with k-test--without k-test

Specifies whether kernel testing is to be performed Mutually exclusive withdebug above and safe below This has the effect of removing static and inlineattributes from functions and invoking most debugging macros in the code Thedefault is to not perform kernel testing

32 In particular some Debian systems do not load the groff(1) extensions package and do not have grefer(1)

installed Although this is an oversight on the configuration of the particular Debian system we accomodatesuch misconfiguration with this feature

66 OpenSS7 SS7 Stack

--with k-safe--without k-safe

Specifies whether kernel saftey is to be performed Mutually exclusive withdebug and test above This has the effect of invoking some more pedanticassertion macros in the code The default is not to apply kernel safety

--with k-inline--without k-inline

Specifies whether kernel inline functions are to be placed inline This hasthe effect of adding the lsquo-finline-functionsrsquo flag to CFLAGS for compil-ing kernel modules Linux 24 kernels are normally compiled lsquo-O2rsquo whichdoes not respect the inline directive This compiles kernel modules withlsquo-finline-functionsrsquo to get closer to lsquo-O3rsquo optimization For better opti-mization controls See Section 635 [Configuring the Tar Ball] page 67

--with k-modversions--without k-modversions

Specifies whether kernel symbol versions are to be applied to symbols exportedby package kernel modules The default is to version exported module symbolsThis package does not export symbols so this option has no effect

--with devfs--without devfs

Specifies whether the build is for a device file system daemon enabled systemwith autoloading or not The default is to build for devfsd(1) autoloadingwhen CONFIG DEVFS FS is defined in the target kernel The lsquorebuildrsquo tar-get uses this option to signal to the RPM spec file that the lsquodevrsquo subpackageneed not be built This option does not appear when the package has no devices

--with devel--without devel

Specifies whether to build development environment packages such as those thatinclude header files static libraries manual pages and texinfo(1) documen-tation The default is to build development environment packages This optioncan be useful when building for an embedded target where only the runtimecomponents are desired

--with docs--without docs

Specifies whether to build and install major documentation such manual pagesand texinfo(1) documentation The default is to build and install documen-tation This option can be useful when building for an embedded target whereonly the runtime and static compile components are desired but not majordocumentation This option does not override the setting of --without devel

--with tools--without tools

Specifies whether user space packages are to be built The default is to builduser space packages This option can be useful when rebuilding for multiplearchitectures and target kernels The lsquorebuildrsquo automake(1) target uses this

Chapter 6 Installation 67

feature when rebuilding for all available architectures and kernels to rebuilduser packages once per architecture instead of once per kernel

--with modules--without modules

Specifies whether kernel modules packages are to be built The default is tobuild kernel module packages This option can be useful when rebuilding formultiple architectures and target kernels The lsquorebuildrsquo automake(1) targetuses this feature to rebuild for all available architectures and kernels

--with lis--without lis

Specifies that the package is to be rebuilt against Linux STREAMS The defaultis to automatically identify whether lsquoLiSrsquo or lsquostreamsrsquo is loaded on the buildsystem and build accordingly

--with lfs--without lfs

Specifies that the package is to be rebuilt against Linux Fast-STREAMS Thedefault is to automatically identify whether lsquoLiSrsquo or lsquostreamsrsquo is loaded on thebuild system and build accordingly

In general the default values of these options are sufficient for most purposes and no optionsneed be provided when rebuilding the Source RPMs

Build

To build from the source RPM See Section 641 [Building from the Source RPM] page 77

634 Configuring the Debian DSC

The Debian DSC can be configured by passing options in the environment variableBUILD DEBOPTIONS The options placed in this variable take the same form as thosepassed to the lsquoconfigurersquo script See Section 635 [Configuring the Tar Ball] page 67 Foran example See Section 642 [Building from the Debian DSC] page 78

Build

To build from the Debian DSC See Section 642 [Building from the Debian DSC] page 78

635 Configuring the Tar Ball

All of the normal GNU autoconf(1) configuration options and environment variables applyAdditional options and environment variables are provided to tailor or customize the buildand are described below

6351 Configure Options

This is a generic description of common lsquoconfigurersquo options that are in addition to thoseprovided by autoconf(1) automake(1) libtool(1) and gettext(1)Not all lsquoconfigurersquo options are applicable to all release packages Options that arekernel module specific are only applicable to release packages that build kernel modulesSTREAMS options are only applicable to release packages that provide or requireSTREAMS

68 OpenSS7 SS7 Stack

Following are the additional lsquoconfigurersquo options their meaning and use

--enable-checks--disable-checks

Enable or disable preinstall checks Each release package supports a numberof preinstall checks that can be performed by invoking the lsquocheckrsquo target withmake(1) These currently consist of checking each kernel module for unresolvedkernel symbols checking for documentation for exported kernel module sym-bols checking for documentation for exported library symbols checking forstandard options for build and installable programs checking for documenta-tion for built and installable programs Normally these checks are only run inmaintainer mode but can be enabled and disabled with this option

--enable-autotest--disable-autotest

Enable or disable pre- and post-installation testing Each release package sup-ports a number of autotest test suites that can be performed by invokingthe lsquoinstallcheckrsquo target with make(1) These currently consist of runninginstalled modules commands and binaries against a number of specific testcases Normally these checks are only run in maintainer mode but can beenabled and disabled with this option

--disable-compress-manpagesCompress manual pages with lsquogzip -9rsquo or lsquobzip2 -9rsquo or leave them uncom-pressed The default is to compress manual pages with lsquogzip -9rsquo or lsquobzip2 -9rsquoif a single compressed manual page exists in the target installation directory(lsquo--mandirrsquo) This disables automatic compression

--disable-publicDisable public release This option is not usable on public releases and only hasa usable effect on OpenSS7 SS7 Stack when the package is acquired from CVSIn particular the STREAMS SS7VoIPISDNSIGTRAN Stacks (strss7-09a8) release package has a large number of non-public components Speci-fying this option will cause the package to build and install all private releasecomponents in addition to the public release components This option affects allrelease packages Most release packages do not have private release components

--disable-initscriptsDisables the installation of init scripts The default is to configure and installinit scripts and their associated configuration filesAlthough the default is to install init scripts installation attempts to detect aSystem V init script configuration and if one is not found the init scripts areinstalled into the appropriate directories but the symbolic links to the run levelscript directories are not generated and the script is not invoked Therefore itis safe to leave this option unchanged even on distributions that do not supportSystem V init script layout

--disable-32bit-libsDisables the build and install of 32-bit compatibility libraries and test binarieson 64-bit systems that support 32-bit compatibility The default is to build

Chapter 6 Installation 69

and install 32-bit compatibility libraries and test binaries This option canbe usefule when configuring for an embedded target where only native sharedlibraries and binaries are desired

--disable-develDisables the installation of development environment components such asheader files static libraries manual pages and texinfo(1) documentationThe default is to install development environment components This optioncan be useful when configuring for an embedded target where only the runtimecomponents are desired or when performing a edit-compile-test cycle

--disable-docsDisables the build and installation of major documentation such manual pagesand texinfo(1) documentation The default is to build and install documen-tation This option can be useful when building for an embedded target whereonly the runtime and static compile components are desired but not major doc-umentation This option does not override the setting of lsquo--disable-develrsquo

--enable-toolsSpecifies whether user space programs and libraries are to be built and installedThe default is to build and install user space programs and libraries This optioncan be useful when rebuilding for multiple architectures and target kernelsparticularly under rpm(1) or dpkg(1) The lsquorebuildrsquo automake(1) target usesthis feature when rebuilding RPMs for all available architectures and kernelsto rebuild user packages once per architecture instead of once per kernel

--enable-modulesSpecifies whether kernel modules are to be built and installed The default is tobuild and install kernel modules This option can be useful when rebuilding formultiple architectures and target kernels particularly under rpm(1) or dpkg(1)The lsquorebuildrsquo automake(1) target uses this feature to rebuild for all availablearchitectures and kernels This option has no effect for release packages thatdo not provide kernel modules

--enable-archSpecifies whether architectural dependent package components are to be builtand installed This option can be useful when rebuilding for multiple architec-tures and target kernels particularly under dpkg(1) The default is to config-ure build and install architecture dependent package components This optionhas no effect for release packages that do not provide architecture dependentcomponents

--enable-indepSpecifies whether architecture independent package components are to be builtand installed This option can be useful when rebuilding for multiple architec-tures and target kernels particularly under dpkg(1) The default is to con-figure build and install architecture independent package components Thisoptions has no effect for release packages that do not provide architecture in-dependent components

70 OpenSS7 SS7 Stack

--enable-k-inlineEnable kernel inline functions Most Linux kernels build withoutlsquo-finline-functionsrsquo This option adds the lsquo-finline-functionsrsquo andlsquo-Winlinersquo flags to the compilation of kernel modules Use with care Thisoption has no effect for release packages that do not provide kernel modules

--enable-k-safeEnable kernel module run-time safety checks Specifies whether kernel safety isto be performed This option is mutually exclusive with lsquo--enable-k-testrsquo andlsquo--enable-k-debugrsquo below This has the effect of invoking some more pedanticassertion macros in the code The default is not to apply kernel safety Thisoption has no effect for release packages that have are no kernel modules

--enable-k-testEnable kernel module run-time testing Specifies whether kernel testing is to beperformed This option is mutually exclusive with lsquo--enable-k-safersquo aboveand lsquo--enable-k-debugrsquo below This has the effect of remove static andinline attributes from functions and invoking most non-performance affectingdebugging macros in the code The default is not to perform kernel testing Thisoption has no effect for release packages that do not provide kernel modules

--enable-k-debugEnable kernel module run-time debugging Specifies whether kernel debuggingis to be performed This option is mutually exclusive with lsquo--enable-k-safersquoand lsquo--enable-k-testrsquo above This has the effect of removing static andinline attributes from functions and invoking all debugging macros in thecode (including performance-affecting debug macros) The default is to notperform kernel debugging This option has no effect for release packages thatdo not provide kernel modules

--disable-k-modversionsDisable module versions on strss7 symbols Specifies whether kernel symbolversions are to be used on symbols exported from built strss7 modules Thedefault is to provide kernel symbol versions on all exported symbols Thisoption has no effect for release packages that do not provide kernel modules

--enable-devfs--disable-devfs

Specifies whether the build is for a device file system daemon enabled systemwith autoloading or not The default is to build for devfsd(8) autoload-ing when CONFIG DEVFS FS is defined in the target kernel The lsquoreuildrsquoautomake(1) target uses this option to signal to the RPM spec file that the lsquodevrsquosubpackage need not be built This option has no effect for release packagesthat do not provide devices

--with-gpg-user=GNUPGUSERSpecify the gpg(1) lsquoGNUPGUSERrsquo for signing RPMs and tarballs The defaultis the content of the environment variable GNUPGUSER If unspecified thegpg(1) program will normally use the user name of the account invoking thegpg(1) program For building source RPMs the RPM macro lsquo_gpg_namersquo willoverride this setting

Chapter 6 Installation 71

--with-gpg-home=GNUPGHOMESpecify the lsquoGNUPGHOMErsquo directory for signing RPMs and tarballs The defaultis the userrsquos lsquo~gpgrsquo directory For building source RPMs the RPM macrolsquo_gpg_pathrsquo will override this setting

--with-pkg-epoch=EPOCHSpecifies the epoch for the package This is neither used for rpm(1) nor dpkg(1)packages it applies to the tarball release as a whole The default is the contentsof the lsquopkgepochrsquo file in the release package source directory or if that file doesnot exist zero (0)

--with-pkg-release=RELEASESpecifies the release for the package This is neither used for rpm(1) nordpkg(1) packages it applies to the tarball release as a whole The defaultis the contents of the lsquopkgreleasersquo file in the release package source directoryor if that file does not exist one (1) This is the number after the last pointin the package version number

--with-pkg-distdir=DIRSpecifies the distribution directory for the package This is used by the main-tainer for building distributions of tarballs This is the directory into whicharchives are copied for distribution The default is the top build directory

--with-cooked-manpagesConvert manual pages to remove macro dependencies and grefer(1) refer-ences Some systems do not like grefer(1) references in manual pages33 Thisoption will cook soelim(1) refer(1) tbl(1) and pic(1) commands fromthe manual pages and also strip groff(1) comments The default is to leavemanual pages uncooked (they are actually smaller that way)

--with-rpm-epoch=PACKAGE_EPOCHSpecify the lsquoPACKAGE_EPOCHrsquo for the RPM spec file The default is to use theRPM epoch contained in the release package file lsquorpmepochrsquo

--with-rpm-release=PACKAGE_RPMRELEASESpecify the lsquoPACKAGE_RPMRELEASErsquo for the RPM lsquospecrsquo file The default is touse the RPM release contained in the release package file lsquorpmreleasersquo

--with-rpm-extra=PACKAGE_RPMEXTRASpecify the lsquoPACKAGE_RPMEXTRArsquo extra release information for the RPM specfile The default is to use the RPM extra release information contained in therelease package file lsquorpmextrarsquo Otherwise this value will be determined fromautomatic detection of the RPM distribution

--with-rpm-topdir=PACKAGE_RPMTOPDIRSpecify the lsquoPACKAGE_RPMTOPDIRrsquo top directory for RPMs If specified with anull lsquoPACKAGE_RPMTOPDIRrsquo the default directory for the RPM distribution willbe used If this option is not provided on the command line the top builddirectory will be used as the RPM top directory as well

33 In particular some Debian or Ubuntu systems do not load the groff(1) extensions package and do not havegrefer(1) installed Although this is an oversight on the configuration of the particular Debian or Ubuntusystem we accomodate such misconfiguration with this feature

72 OpenSS7 SS7 Stack

--with-deb-epoch=EPOCHSpecify the lsquoPACKAGE_DEBEPOCHrsquo for the DEB control file The default is to usethe DEB epoch contained in the release package file lsquodebepochrsquo

--with-deb-release=RELEASESpecify the lsquoPACKAGE_DEBRELEASErsquo for the DEB control file The default is touse the DEB release contained in the release package file lsquodebreleasersquo

--with-deb-topdir=DIRSpecify the lsquoPACKAGE_DEBTOPDIRrsquo top directory for DEBs If specified with anull lsquoPACKAGE_DEBTOPDIRrsquo the default directory for the DEB distribution willbe used If this option is not provided on the command line the top builddirectory will be used as the DEB top directory as well

--with-k-release=PACKAGE_KRELEASESpecify the lsquoPACKAGE_KRELEASErsquo release of the Linux kernel for which the buildis targeted When not cross compiling if this option is not set the build willbe targeted at the kernel running in the build environment (eg lsquouname -rrsquo)When cross-compiling this option must be specified or the configure script willgenerate an error and terminate

--with-k-linkage=PACKAGE_KLINKAGESpecify the lsquoPACKAGE_KLINKAGErsquo for kernel module linkage This can be one ofthe followingbull lsquoloadablersquo ndash loadable kernel modulesbull lsquolinkablersquo ndash linkable kernel objects

The default is to build loadable kernel modules

--with-k-modules=K-MODULES-DIRSpecify the lsquoK-MODULES-DIRrsquo directory to which kernel modules will be installedThe default is based on the option lsquo--with-k-releasersquo lsquo--with-k-prefixrsquoand lsquo--with-k-rootdirrsquo The default is lsquoDESTDIRrsquolsquoK-MODULES-DIRrsquo which istypically lsquoDESTDIRlibmodulesPACKAGE_KRELEASErsquo This directory is nor-mally located by the lsquoconfigurersquo script and need only be provided for specialcross-build environments or when requested by a lsquoconfigurersquo script error mes-sage

--with-k-build=K-BUILD-DIRSpecify the lsquoK-BUILD-DIRrsquo base kernel build directory in which configured kernelsource resides The default is lsquoDESTDIRK-MODULES-DIRbuildrsquo This direc-tory is normally located by the lsquoconfigurersquo script and need only be providedfor special cross-build environments or when requested by a lsquoconfigurersquo scripterror message

--with-k-source=K-SOURCE-DIRSpecify the lsquoK-SOURCE-DIRrsquo base kernel build directory in which configuredkernel source resides The default is lsquoDESTDIRK-MODULES-DIRsourcersquo Thisdirectory is normally located by the lsquoconfigurersquo script and need only be pro-vided for special cross-build environments or when requested by a lsquoconfigurersquoscript error message

Chapter 6 Installation 73

--with-k-modver=K-MODVER-FILESpecify the lsquoK-MODVER-FILErsquo kernel module versions file The default is lsquoK-BUILD-DIRModulesymversrsquo This file is normally located by the lsquoconfigurersquoscript and need only be provided for special cross-build environments or whenrequested by a lsquoconfigurersquo script error message

--with-k-sysmap=K-SYSMAP-FILESpecify the lsquoK-SYSMAP-FILErsquo kernel system map file The default is lsquoK-BUILD-DIRSystemmaprsquo This file is normally located by the lsquoconfigurersquo script andneed only be provided for special cross-build environments or when requestedby a lsquoconfigurersquo script error message

--with-k-archdir=K-ARCHDIRSpecify the lsquoK-ARCHDIRrsquo kernel source architecture specific directory The de-fault is lsquoDESTDIRK-SOURCE-DIRarchrsquo This directory is normally located bythe lsquoconfigurersquo script and need only be provided for special cross-build envi-ronments or when requested by a lsquoconfigurersquo script error message

--with-k-machdir=K-MACHDIRSpecify the lsquoK-MACHDIRrsquo kernel source machine specific directory The defaultis lsquoDESTDIRK-SOURCE-DIRtarget_cpu rsquo This directory is normally locatedby the lsquoconfigurersquo script and need only be provided for special cross-buildenvironments or when requested by a lsquoconfigurersquo script error message

--with-k-config=K-CONFIGSpecify the lsquoK-CONFIGrsquo kernel configuration file The default is lsquoBOOTconfig-K-RELEASE rsquo This configuration file is normally located by the lsquoconfigurersquoscript and need only be provided for special cross-build environments or whenrequested by a lsquoconfigurersquo script error message

--with-k-optimize=HOW--without-k-optimize

Specify lsquoHOWrsquo optimization normal size speed or quick size compiles kernelmodules -Os speed compiles kernel modules -O3 and quick compiles kernelmodules -O0 The default is normal Use with care The most common useof this option is to specify lsquo--with-k-optimize=speed --disable-k-safersquo tocompile for maximum performance Nevertheless even these setting are ricingand the resulting kernel modules will only be about 5 faster

--with-lis[=LIS-DIR]--without-lis

Specify the lsquoLIS-DIRrsquo directory in which to find LiS headers Also specifiesthat the build is to be made against Linux STREAMS The default is lsquousrincludeLiSrsquo if it exists lsquonorsquo otherwise This directory is normally located bythe lsquoconfigurersquo script and need only be provided for special cross-build envi-ronments or when requested by a lsquoconfigurersquo script error message This optionhas no effect on release packages that do not use the STREAMS subsystem

74 OpenSS7 SS7 Stack

--with-lfs[=LFS-DIR]--without-lfs

Specify the lsquoLFS-DIRrsquo directory in which to find LfS headers Also specifiesthat the build is to be made against Linux Fast-STREAMS The default islsquousrincludestreamsrsquo if it exists lsquonorsquo otherwise This directory is normallylocated by the lsquoconfigurersquo script and need only be provided for special cross-build environments or when requested by a lsquoconfigurersquo script error messageThis option has no effect on release packages that do not use the STREAMSsubsystem

--with-strconf-master=STRCONF_CONFIGSpecify the lsquoSTRCONF_CONFIGrsquo file name to which the configuration master fileis written The default is lsquoConfigmasterrsquo This option has no effect on releasepackages that do not use the STREAMS subsystem and the strconf scriptsThis option should not be specified when configuring the master package as thesetting for all add-on packages will conflict

--with-base-major=STRCONF_MAJBASEStart numbering for major devices at lsquoSTRCONF_MAJBASErsquo The default is lsquo230rsquoThis option has no effect on release packages that do not use the STREAMSsubsystem and the strconf scripts This option should not be specified whenconfiguring the master package as the setting for all add-on packages will con-flict

6352 Environment Variables

Following are additional environment variables to lsquoconfigurersquo their meaning and use

GPG GPG signature command This is used for signing distributions by the main-tainer By default lsquoconfigurersquo will search for this tool

GNUPGUSERGPG user name This is used for signing distributions by the maintainer

GNUPGHOMEGPG home directory This is used for signing distributions by the maintainer

GPGPASSWDGPG password for signing This is used for signing distributions by the main-tainer This environment variable is not maintained by the lsquoconfigurersquo scriptand should only be used on an isolated system

SOELIM Roff source elimination command soelim(1) This is only necessary when theoption lsquo--with-cooked-manpagesrsquo has been specified and lsquoconfigurersquo cannotfind the proper soelim(1) command By default lsquoconfigurersquo will search forthis tool

REFER Roff references command refer(1) This is only necessary when the optionlsquo--with-cooked-manpagesrsquo has been specified and lsquoconfigurersquo cannot find theproper refer(1) command By default lsquoconfigurersquo will search for this tool

TBL Roff table command tbl(1) This is only necessary when the optionlsquo--with-cooked-manpagesrsquo has been specified and lsquoconfigurersquo cannot findthe proper tbl(1) command By default lsquoconfigurersquo will search for this tool

Chapter 6 Installation 75

PIC Roff picture command pic(1) This is only necessary when the optionlsquo--with-cooked-manpagesrsquo has been specified and lsquoconfigurersquo cannot findthe proper pic(1) command By default lsquoconfigurersquo will search for this tool

GZIP Default compression options provided to GZIP_CMD

GZIP CMDManpages (and kernel modules) compression commands gzip(1) This is onlynecessary when the option lsquo--without-compressed-manpagesrsquo has not beenspecified and lsquoconfigurersquo cannot find the proper gzip(1) command By de-fault lsquoconfigurersquo will search for this tool

BZIP2 Default compression options provided to BZIP2_CMD

BZIP2 CMDManpages compression commands bzip2(1) This is only necessary whenthe option lsquo--without-compressed-manpagesrsquo has not been specifiedand lsquoconfigurersquo cannot find the proper bzip2(1) command By defaultlsquoconfigurersquo will search for this tool

MAKEWHATISManpages apropros database rebuild command makewhatis(8) By defaultlsquoconfigurersquo will search for this tool By default lsquoconfigurersquo will search forthis tool

CHKCONFIGChkconfig command chkconfig(8) This was used for installation of initscripts All packages now come with init_install(8) and init_remove(8)scripts used to install and remove init scripts on both RPM and Debian sys-tems

RPM Rpm command rpm(1) This is only necessary for RPM builds By defaultlsquoconfigurersquo will search for this tool

RPMBUILDBuild RPM command rpmbuild(1) This is only necessary for RPM buildsBy default lsquoconfigurersquo will search for this tool rpm(1) will be used insteadof rpmbuild(1) only if rpmbuild(1) cannot be found

DPKG Dpkg comand dpkg(1) This command is used for building Debian packagesBy default lsquoconfigurersquo will search for this tool

DPKG SOURCEDpkg-source command dpkg-source(1) This command is used for buildingDebian dsc packages By default lsquoconfigurersquo will search for this tool

DPKG BUILDPACKAGEDpkg-buildpackage command dpkg-buildpackage(1) This command is usedfor building Debian deb packages By default lsquoconfigurersquo will search for thistool

DEB BUILD ARCHDebian build architecture This variable is used for building Debian packagesThe default is the autoconf build architecture

76 OpenSS7 SS7 Stack

DEB BUILD GNU CPUDebian build cpu This variable is used for building Debian packages Thedefault is the autoconf build cpu

DEB BUILD GNU SYSTEMDebian build os This variable is used for building Debian packages The defaultis the autoconf build os

DEB BUILD GNU TYPEDebian build alias This variable is used for building Debian packages Thedefault is the autoconf build alias

DEB HOST ARCHDebian host architecture This variable is used for building Debian packagesThe default is the autoconf host architecture

DEB HOST GNU CPUDebian host cpu This variable is used for building Debian packages Thedefault is the autoconf host cpu

DEB HOST GNU SYSTEMDebian host os This variable is used for building Debian packages The defaultis the autoconf host os

DEB HOST GNU TYPEDebian host alias This variable is used for building Debian packages Thedefault is the autoconf host alias

LDCONFIGConfigure loader command ldconfig(8) Command used to configure theloader when libraries are installed By default lsquoconfigurersquo will search for thistool

DESTDIR Cross build root directory Specifies the root directory for build and installation

DEPMODBuild kernel module dependencies command depmod(8) This is used dur-ing installation of kernel modules to a running kernel to rebuild the modulesdependency database By default lsquoconfigurersquo will search for this tool

MODPROBEProbe kernel module dependencies command modprobe(8) This is used duringinstallation of kernel modules to a running kernel to remove old modules Bydefault lsquoconfigurersquo will search for this tool

LSMOD List kernel modules command lsmod(8) This is used during installation ofkernel modules to a running kernel to detect old modules for removal Bydefault lsquoconfigurersquo will search for this tool

LSOF List open files command lsof(1) This is used during installation of kernelmodules to a running kernel to detect old modules for removal Processes own-ing the old kernel modules will be killed and the module removed If the processrestarts the new module will be demand loaded By default lsquoconfigurersquo willsearch for this tool

Chapter 6 Installation 77

GENKSYMSGenerate kernel symbols command genksyms(8) This is used for generatingmodule symbol versions during build By default lsquoconfigurersquo will search forthis tool

KGENKSYMSLinux 26 generate kernel symbols command genksyms(8) This is used forgenerating module symbol version during build By default lsquoconfigurersquo willsearch for this tool

OBJDUMPObject dumping command objdump(1) This is used for listing informationabout object files By default lsquoconfigurersquo will search for this tool

NM Object symbol listing command nm(1) This is used for listing informationabout object files By default lsquoconfigurersquo will search for this tool

MODPOST CACHECache file for modpost(1) The version of the modpostsh script that ships witheach package can cache information to a cache file to speed multiple builds Thisenvironment variable is used to specify a cache file

AUTOM4TEAutom4te command autom4te(1) This is the executable used by autotestfor pre- and post-installation checks By default lsquoconfigurersquo will search forthis tool

AUTOTESTAutotest macro build command autom4te(1) This is the executable used byautotest for pre- and post-installation checks By default lsquoconfigurersquo willsearch for this tool

6353 Build

To build from the tar ball See Section 643 [Building from the Tar Ball] page 78

64 Building

641 Building from the Source RPM

If you have downloaded the necessary source RPM (see Section 625 [Downloading theSource RPM] page 57) then the following instructions will rebuild the binary RPMs onyour system Once the binary RPMs are rebuilt you may install them as described above(see Section 651 [Installing the Binary RPM] page 79)The source RPM is rebuilt to binary RPMs as follows wget httpwwwopenss7orgrpmsSRPMSstrss7-09a8-1srcrpm rpmbuild --rebuild -vv strss7-09a8-1srcrpm

The rebuild process can also recognize a number of options that can be used to tweak theresulting binaries See Section 633 [Configuring the Source RPM] page 63 These optionsare provided on the rpm(1) command line For example

78 OpenSS7 SS7 Stack rpmbuild --rebuild -vv --target athlon-redhat-linux

--define _kversion 2420-287 --with lfs -- strss7-09a8-1srcrpm

will rebuild binary RPM for the lsquo2420-287rsquo kernel for the lsquoathlonrsquo architecture againstthe Linux Fast-STREAMS STREAMS package34

Installation

To install the resulting binary RPM See Section 651 [Installing the Binary RPM] page 79

642 Building from the Debian DSC

If you have downloaded the necessary Debian DSC (see Section 626 [Downloading theDebian DSC] page 57) then the following instructions will rebuild the binary DEBs onyour system Once the binary DEBs are rebuilt you may install them as described above(see Section 652 [Installing the Debian DEB] page 80)The Debian DSC is rebuilt to binary DEBs as follows wget httpwwwopenss7orgdebianstrss7_09a8-0dsc wget httpwwwopenss7orgdebianstrss7_09a8-0targz dpkg-buildpackage -v strss7_09a8-0dsc

The rebuild process can also recognize a number of options that can be used to tweak theresulting binaries See Section 634 [Configuring the Debian DSC] page 67 These optionsare provided in the environment variable BUILD DPKGOPTIONS and have the same formas the options to lsquoconfigurersquo See Section 635 [Configuring the Tar Ball] page 67 Forexample BUILD_DEBOPTIONS=rsquo

--with-lfs--with-k-release=2420-287--host=athlon-debian-linux-gnursquo

dpkg-buildpackage -v strss7_09a8-0dsc

will rebuild binary DEB for the lsquo2420-287rsquo kernel for the lsquoathlonrsquo architecture againstthe Linux Fast-STREAMS STREAMS package35

Installation

To install the resulting binary DEB See Section 652 [Installing the Debian DEB] page 80

643 Building from the Tar Ball

If you have downloaded the tar ball (see Section 627 [Downloading the Tar Ball] page 58)then the following instructions will rebuild the package on your system (Note that thebuild process does not required root privilege)

34 Note that the lsquo_kversionrsquo of lsquo2420-287rsquo is only an example35 Note that the lsquo_kversionrsquo of lsquo2420-287rsquo is only an example

Chapter 6 Installation 79

6431 Native Build

Following is an example of a native build against the running kernel wget httpwwwopenss7orgstrss7-09a8tarbz2 tar -xjvf strss7-09a8tarbz2 pushd strss7-09a8 configure make popd 6432 Cross-Build

Following is an example for a cross-build The kernel release version must always be specifiedfor a cross-build36 If you are cross-building specify the root for the build with environmentvariable DESTDIR The cross-compile host must also be specified if different from thebuild host Either the compiler and other tools must be in the usual places where GNUautoconf(1) can find them or they must be specified with declarations such as lsquoCC=usrlibppc-linuxgccrsquo on the lsquoconfigurersquo command line wget httpwwwopenss7orgstrss7-09a8tarbz2 tar -xjvf strss7-09a8tarbz2 pushd strss7-09a8 configure DESTDIR=someotherroot --with-k-release=2418 --host sparc-linux make popd 65 Installing

651 Installing the Binary RPM

If you have downloaded the necessary binary RPMs (see Section 623 [Downloading the Bi-nary RPM] page 51) or have rebuilt binary RPMs using the source RPM (see Section 641[Building from the Source RPM] page 77) then the following instructions will install theRPMs on your system For additional information on rpm(1) see rpm(8) pushd RPMSi686 rpm -ihv strss7--09a8-172i686rpm

You must have the correct binary RPMs downloaded or built for this to be successfulSome of the packages are relocatable and can have final installation directories altered withthe lsquo--relocatersquo option to rpm(1) see rpm(8) For example the following will relocatethe documentation and info directories

36 Because it is a cross-build the kernel version on the build machine is unlikely to be the kernel version ofthe target machine except by coincidence

80 OpenSS7 SS7 Stack pushd RPMSi686 rpm -ihv

--relocate rsquousrsharedoc=usrlocalsharedocrsquo --relocate rsquousrshareinfo=usrlocalshareinforsquo -- strss7-doc-09a8-172i686rpm

The previous example will install the lsquostrss7-docrsquo package by will relocate the documen-tation an info directory contents to the lsquousrlocalrsquo version

652 Installing the Debian DEB

If you have downloaded the necessary Debian DEBs (see Section 624 [Downloading the De-bian DEB] page 54) or have rebuild binary DEBs using the Debian DSC (see Section 642[Building from the Debian DSC] page 78) then the following instructions will install theDEBs on your system For additional information see dpkg(8) pushd debian dpkg -iv strss7-_09a8-0_deb

You must have the correct lsquodebrsquo files downloaded or build for this to be successful

653 Installing the Tar Ball

After the build process (see Section 643 [Building from the Tar Ball] page 78) installationonly requires execution of one of two automake(1) targets

lsquomake installrsquoThe lsquoinstallrsquo automake(1) target will install all the components of the pack-age Root privilege is required to successfully invoke this target

lsquomake install-striprsquoThe lsquoinstall-striprsquo automake(1) target will install all the components of thepackage but will strip unnecessary information out of the objects and compressmanual pages Root privilege is required to successfully invoke this target

66 Removing

661 Removing the Binary RPM

To remove an installed version of the binary RPMs (whether obtained from the OpenSS7binary RPM releases or whether created by the source RPM) execute the following com-mand rpm -evv lsquorpm -qa | grep rsquo^strss7-rsquolsquo

For more information see rpm(1)

662 Removing the Debian DEB

To remove and installed version of the Debian DEB (whether obtained from the OpenSS7binary DEB releases or whether created by the Debian DSC) execute the following com-mand

Chapter 6 Installation 81 dpkg -ev lsquodpkg -l | grep rsquo^strss7-rsquolsquo

For more information see dpkg(8)

663 Removing the Source RPM

To remove all the installed binary RPM build from the source RPM see Section 661[Removing the Binary RPM] page 80 Then simply remove the binary RPM package filesand source RPM file A command such as find -name rsquostrss7-rpmrsquo -type f -print0 | xargs --null rm -f

should remove all lsquostrss7rsquo RPMs from your system

664 Removing the Debian DSC

To remove all the installed binary DEB build from the Debian DSC see Section 662[Removing the Debian DEB] page 80 Then simply remove the binary DEB package filesand Debian DSC file A command such as find ( -name rsquostrss7-debrsquo

-o -name rsquostrss7-dscrsquo -o -name rsquostrss7-tar ) -type f -print0 | xargs --null rm -f

should remove all lsquostrss7rsquo DEBs DSCs and TARs from your system

665 Removing the Tar Ball

To remove a version installed from tar ball change to the build directory where the packagewas built and use the lsquouninstallrsquo automake(1) target as follows cd usrsrcstrss7 make uninstall cd rm -fr strss7-09a8 rm -f strss7-09a8targz rm -f strss7-09a8tarbz2

If you have inadvertently removed the build directory and therefore no longer have aconfigured directory from which to execute lsquomake uninstallrsquo then perform all of the stepsfor configuration and installation (see Section 653 [Installing the Tar Ball] page 80) exceptthe final installation and then perform the steps above

67 Loading

671 Normal Module Loading

When OpenSS7 SS7 Stack installs modules and drivers belonging to release packages arenormally configured for demand loading The lsquoinstallrsquo and lsquoinstall-striprsquo automake(1)

82 OpenSS7 SS7 Stack

targets will make the necessary changes to the lsquoetcmodulesconfrsquo file and place the mod-ules in an appropriate place in lsquolibmodules2420-287strss7rsquo The lsquomake installrsquoprocess should have copied the kernel module files lsquostreams-orsquo to the directory lsquolibmodules2420-287strss7rsquo This means that to load any of these modules you cansimply execute for example lsquomodprobe stream-somedriver rsquo37

6711 Linux Fast-STREAMS Module Loading

The lsquostrss7rsquo demand load system supports both the old kerneld and the new kmod mech-anisms for demand loading kernel modules

The convention for lsquostrss7rsquo kernel loadable object files is

bull Their name start with streams-

bull They are placed in lsquolibmodules2420-287streamsrsquo where lsquo2420-287rsquo isan example kernel version

If your kernel has been built using the lsquokerneldrsquo daemon then lsquostrss7rsquo kernel moduleswill automatically load as soon as the STREAMS module is pushed or the driver is openedThe lsquomake installrsquo process makes the necessary changes to the lsquoetcmodulesconfrsquo fileAfter the install you will see lines like the following added to your lsquoetcmodulesconfrsquofile prune modulesstrss7if -f libmoduleslsquouname -rlsquomodulesstrss7include libmoduleslsquouname -rlsquomodulesstrss7endif

which will provide for demand loading of the modules if they have been built and installedfor the running kernel The lsquolibmoduleslsquouname -rlsquomodulesstrss7rsquo file looks likethis alias char-major-245 streams-some_driver

alias char-major-246 streams-other_driver Note that STREAMS modules are not listed in this file but will be loaded by name usinglsquokerneldrsquo if available

Linux Fast-STREAMS has a wider range of kernel module loading mechanisms than isprovided by the deprecated LiS For mechanisms used for kernel module loading underLinux Fast-STREAMS See Section ldquoToprdquo in Linux Fast-STREAMS Reference Manual

6712 Linux STREAMS Module Loading

LiS is deprecated and this section has been deleted

68 Maintenance

37 Note that the lsquo_kversionrsquo of lsquo2420-287rsquo is only an example

Chapter 6 Installation 83

681 Makefile Targets

automake(1) has many targets not all of which are obvious to the casual user In additionOpenSS7 automake(1) files have additional rules added to make maintaining and releasinga package somewhat easier This list of targets provides some help with what targets can beinvoked what they do and what they hope to achieve The available targets are as follows

6811 User Targets

The following are normal targets intended to be invoked by installers of the package Theyare concerned with compiling checking the compile installing checking the installationand removing the package

lsquo[all]rsquo This is also the default target It compiles the package and all release packagesselected by lsquoconfigurersquo This is performed after configuring the source withlsquoconfigurersquo A lsquoMakefilersquo stub is provided so that if the package has not hadautoreconf(1) run (such as when checked out from CVS the package willattempt to run lsquoautoreconf -fivrsquoAll OpenSS7 Project packages are configured without maintainer mode andwithout dependency tracking by default This speeds compilation of the packagefor one-time builds This also means that if you are developing using the sourcepackage (edit-compile-test cycle) changes made to source files will not causethe automatic rebuilding due to dependencies There are two ways to enabledependency tracking specify lsquo--enable-maintainer-modersquo to lsquoconfigurersquo orspecify lsquo--enable-dependency-trackingrsquo to lsquoconfigurersquo I use the formerduring my edit-compile-test cycleThis is a standard GNU automake(1) makefile target This target does notrequire root privilege

lsquocheckrsquo All OpenSS7 Project release packages provide check scripts for the check targetThis step is performed after compiling the package and will run all of the lsquocheckrsquoprograms against the compiled binaries Which checks are performed dependson whether lsquo--enable-maintainer-modersquo was specified to lsquoconfigurersquo If inmaintainer mode checks that assist with the release of the package will berun (such as checking that all manual pages load properly and that they haverequired sections) We recommend running the check stage before installingbecause it catches problems that might keep the installed package from func-tioning properlyAnother way to enable the greater set of checks without invoking maintainermode is to specify lsquo--enable-checksrsquo to lsquoconfigurersquo For more informationsee Section 711 [Pre-installation Checks] page 93This is a standard GNU automake(1) makefile target although the functionsperformed are customized for the OpenSS7 Project This target does not requireroot privilege

lsquoinstallrsquolsquoinstall-striprsquo

The lsquoinstallrsquo target installs the package by installing each release packageThis target also performs some actions similar to the pre- and post-install scripts

84 OpenSS7 SS7 Stack

used by packaging tools such as rpm(1) or dpkg(1) The lsquoinstall-striprsquotarget strips unnecessary symbols from executables and kernel modules beforeinstallingThis is a standard GNU automake(1) makefile target This target requiresroot privilege

lsquoinstallcheckrsquoAll OpenSS7 Project packages provide test scripts for the lsquoinstallcheckrsquo tar-get Test scripts are created and run using autotest (part of the autoconf(1)package) Which test suites are run and how extensive they are depends onwhether lsquo--enable-maintainer-modersquo was specified to lsquoconfigurersquo When inmaintainer mode all test suites will be run When not in maintainer modeonly a few post-install checks will be performed but the test suites themselveswill be installed in lsquousrlibexecstrss7rsquo38 for later useThis is a standard GNU automake(1) makefile target This target might re-quire root privilege Tests requiring root privilege will be skipped when run asa regular user Tests requiring regular account privileges will be skipped whenrun as root

lsquoretestrsquo To complement the lsquoinstallcheckrsquo target above all OpenSS7 Project pack-ages provide the lsquoretestrsquo target as a means to rerun failed conformance testsuite test cases The lsquoretestrsquo target is provided because some test cases in thetest suites have delicate timing considerations that allow them to fail sporadi-cally Invoking this target will retest the failed cases until no cases that are notexpected failures remainThis is an OpenSS7 Project specific makefile target As with lsquoinstallcheckrsquothis target might require root privilege Tests requiring root privilege will beskipped when run as a regular user Tests requiring regular account privilegeswill be skipped when run as root

lsquouninstallrsquoThis target will reverse the steps taken to install the package This target alsoperforms pre- and post- erase scripts used by packaging tools such as rpm ordpkg You need to have a configured build directory from which to execute thistarget however you do not need to have compiled any of the files in that builddirectory39

The lsquouninstallrsquo target unfortunately removes add-on packages in the sameorder in which they were installed This is not good for the OpenSS7 MasterPackage where the lsquoremoversquo target should be used insteadThis is a standard GNU automake(1) makefile target This target requiresroot privilege

lsquoremoversquo This target is like lsquouninstallrsquo with the exception that it removes add-on pack-ages in the reverse order that installation was performed40

38 lsquousrlibexecstrss7rsquo is just an example the actual location is lsquo$libexecdir$PACKAGErsquo which variesfrom distribution to distribution (as some distributions such as Mandriva do not have a libexec directory)

39 Therefore it is possible to download the package configure it and then uninstall it This is handy if youdo not have the sources used to build and install the package immediately available

40 This is useful from the OpenSS7 Master Package

Chapter 6 Installation 85

This is an OpenSS7 Project specific makefile target This target requires rootprivilege

6812 Maintainer Targets

The following targets are targets intended for use by maintainers of the package or those re-sponsible for release and packaging of a derivative work of the package Some of these targetsare only effective when maintainer mode has been invoked (lsquo--enable-maintainer-modersquospecified to lsquoconfigurersquo)

lsquodistrsquo Creates a distribution package (tarball) in the top level build direc-tory OpenSS7 Project packages distribute two archives a lsquogzip tarrsquoarchive and a lsquobzip tarrsquo archive These archives will have the namelsquostrss7-09a8targzrsquo and lsquostrss7-09a8tarbz2rsquo

This is a standard GNU automake(1) makefile target This target does notrequire root privilege

lsquodistcheckrsquoThis target is intended for use when releasing the package It creates the tar(1)archives above and then unpacks the tarball in a source directory configures in aseparate build directory compiles the package installs the package in a separateinstall directory tests the install package to ensure that some components workand finally uses the unpacked source tree to build another tarball If you haveadded or removed files from the package this is a good way to ensure thateverything is still stable for release

This is a standard GNU automake(1) makefile target This target does notrequire root privilege

6813 Clean Targets

lsquomostlycleanrsquoCleans out most of the files from the compile stage This target is helpful if youhave not enabled dependency tracking and need to recompile with changes

This is a standard GNU automake(1) makefile target This target does notrequire root privilege

lsquocleanrsquo Cleans all the files from the build directory generated during the lsquomake [all]rsquophase It does not however remove files from the directory left there from thelsquoconfigurersquo run Use the lsquodistcleanrsquo target to remove those too

This is a standard GNU automake(1) makefile target This target might re-quire root privilege if the lsquoinstallcheckrsquo target or the testsuite was invokedwith root privilege (leaving files belonging to root)

lsquodistcleanrsquoThis target cleans out the directories left behind by lsquodistcheckrsquo and removesall the lsquoconfigurersquo and generated files from the build directory This willeffectively remove all the files in the build directory with the except of filesthat belong to you or some other process

86 OpenSS7 SS7 Stack

This is a standard GNU automake(1) makefile target This target might re-quire root privilege if the lsquoinstallcheckrsquo target or the testsuite was invokedwith root privilege (leaving files belonging to root)

lsquomaintainer-cleanrsquoThis target not only removes files from the build directory it removes generatedfiles from the source directory as well Care should be taken when invoking thistarget because it removes files generated by the maintainer and distributed withthe archive that might require special tools to regenerate These special toolsmight only be available to the maintainer41 It also means that you probablyneed a full blown Linux system to rebuild the package For more informationsee Section 628 [Downloading from CVS] page 59This is a standard GNU automake(1) makefile target This target might re-quire root privilege if the lsquoinstallcheckrsquo target or the testsuite was invokedwith root privilege (leaving files belonging to root)

lsquocheck-cleanrsquoThis target removes log files left behind by the lsquocheckrsquo target By default thecheck scripts append to log files in the top level build directory This targetcan be used to clean out those log files before the next runThis is an OpenSS7 Project specific makefile target This target does not requireroot privilege

6814 Manual Page Targets

The following targets are used to build install and uninstall just the manual pages from thedistribution These targets are good for creating a distribution of just the manual pagesWhen building atop multiple packages these targets recurse down through each package

lsquomansrsquo Build all of the manual pages This involves performing parametersubstitution on manual pages and optionally cooking the manual pages iflsquo--with-cooked-manpagesrsquo was requested during configuration

lsquoinstall-mansrsquoInstalls the manual pages under DESTDIR Specify DESTDIR to place themanual pages wherever you see fit If DESTDIR is not specified on the com-mand line the manual pages will be installed in the normal installation direc-tory

lsquouninstall-mansrsquoUninstalls the manual pages from DESTDIR Specify DESTDIR to indicatewhere to remove the manual pages from If DESTDIR is not specified on thecommand line the manual pages will be removed from the normal installationdirectory

6815 Release Targets

The following are targets used to generate complete releases into the package distributiondirectory These are good for unattended and NFS builds which is what I use them for

41 Theoretically this is true however the OpenSS7 Project does not use any maintainer programs that are notgenerally available (ie open source)

Chapter 6 Installation 87

Also when building from atop multiple packages these targets also recurse down througheach package

lsquoreleasersquo Build all of the things necessary to generate a release On an rpm(1) systemthis is the distribution archives the source rpm and the architecture dependentand architecture independent binary rpms All items are placed in the packagedistribution directory that can be specified with the lsquo--with-pkg-distdir=DIRrsquooption to lsquoconfigurersquo

This is an OpenSS7 Project specific makefile target This target does not requireroot privilege

lsquoforced-releasersquoThe lsquoreleasersquo target will not regenerate any files that already exist in thepackage distribution directory This forced target will

This is an OpenSS7 Project specific makefile target This target does not requireroot privilege

lsquorelease-signrsquoYou will be prompted for a password unless to specify it to make with theGNUPGPASS variable For unattended or non-interactive builds with signingyou can do that as lsquomake GNUPGPASS=mypasswd release-signrsquo

This is an OpenSS7 Project specific makefile target This target does not requireroot privilege

lsquoforced-release-signrsquoThe lsquorelease-signrsquo target will not regenerate any files that already exist inthe package distribution directory This forced target will

This is an OpenSS7 Project specific makefile target This target does not requireroot privilege

lsquorelease-cleanrsquoThis target will remove all distribution files for the current package from thepackage distribution directory

This is an OpenSS7 Project specific makefile target This target does not requireroot privilege

6816 Logging Targets

For convenience to log the output of a number of targets to a file log targets are definedThe log file itself is used as the target to make but make invokes the target minus a lsquologrsquosuffix So for example to log the results of target lsquofoorsquo invoke the target lsquofoologrsquo Theonly target that this does not apply to is lsquocompilelogrsquo When you invoke the targetlsquocompilelogrsquo a simple automake(1) is invoked and logged to the file lsquocompilelogrsquo Thelsquofoologrsquo rule applies to all other targets This does not work for all targets just a selectedfew42 Following are the logging targets

42 Note that because logging targets invoke a pipe automake(1) does not return the correct return status(always returns success if the tee(1) operation is successful) Therefore these targets should not be invokedby scripts that need to use the return value from automake(1)

88 OpenSS7 SS7 Stack

Common Logging Targets

Common logging targets correspond to normal user automake(1) makefile targets as follows

lsquocompilelogrsquoThis is an OpenSS7 Project specific makefile target but it invokes the standardGNU automake(1) makefile target lsquo[all]rsquo

lsquochecklogrsquoThis is an OpenSS7 Project specific makefile target but it invokes the standardGNU automake(1) makefile target lsquocheckrsquo

lsquoinstalllogrsquoThis is an OpenSS7 Project specific makefile target but it invokes the standardGNU automake(1) makefile target lsquoinstallrsquo

lsquoinstallchecklogrsquoThis is an OpenSS7 Project specific makefile target but it invokes the standardGNU automake(1) makefile target lsquoinstallcheckrsquo

lsquouninstalllogrsquoThis is an OpenSS7 Project specific makefile target but it invokes the standardGNU automake(1) makefile target lsquouninstallrsquo

lsquoremovelogrsquoThis is an OpenSS7 Project specific makefile target that invokes the OpenSS7Project lsquoremoversquo target

Maintainer Logging Targets

Maintainer logging targets correspond to maintainer mode automake(1) makefile targetsas follows

lsquodistlogrsquoThis is an OpenSS7 Project specific makefile target but it invokes the standardGNU automake(1) makefile target lsquodistrsquo

lsquodistchecklogrsquoThis is an OpenSS7 Project specific makefile target but it invokes the standardGNU automake(1) makefile target lsquodistcheckrsquo

lsquosrpmlogrsquoThis is an OpenSS7 Project specific makefile target that invokes the OpenSS7Project lsquosrpmrsquo target

lsquorebuildlogrsquoThis is an OpenSS7 Project specific makefile target that invokes the OpenSS7Project lsquorebuildrsquo target

lsquoresignlogrsquoThis is an OpenSS7 Project specific makefile target that invokes the OpenSS7Project lsquoresignrsquo target

lsquoreleaselogrsquoThis is an OpenSS7 Project specific makefile target that invokes the OpenSS7Project lsquoreleasersquo target

Chapter 6 Installation 89

lsquorelease-signlogrsquoThis is an OpenSS7 Project specific makefile target that invokes the OpenSS7Project lsquorelease-signrsquo target

If you want to add one simply add it to LOGGING TARGETS in lsquoMakefileamrsquo

6817 Problem Report Targets

To ease problem report generation all logging targets will automatically generate a problemreport suitable for mailing in the file lsquotargetprrsquo for target lsquotargetlogrsquo This problemreport file is in the form of an email and can be sent using the included send-pr script orby invoking the lsquosend-prrsquo makefile targetThere are two additional problem report targets

lsquoprrsquo The lsquoprrsquo target is for independently generating a problem report outside of thebuild or installation process The target will automatically generate a problemreport skeleton suitable for editing and mailing in the file lsquoproblemprrsquo Thisproblem report file is in the form of an email and can be edited and sent directlyor sent using the included send-pr script or by invoking the lsquosend-prrsquo targetThis is an OpenSS7 Project specific makefile target This target does not requireroot privilege

lsquosend-prrsquo The lsquosend-prrsquo target is for finalizing and mailing a problem report generatedeither inside or outside the build and installation process The target will au-tomatically finalize and mail the lsquoproblemprrsquo problem report if it has changedsince the last time that lsquosend-prrsquo was invokedThis is an OpenSS7 Project specific makefile target This target does not requireroot privilege (unless the problem report file was generated as root)

6818 Release Archive Targets

The following targets are used to generate and clean distribution archive and signature filesWhereas the lsquodistrsquo target affects archives in the top build directory the lsquorelease-archiversquotargets affects archives in the package distribution directory (either the top build directoryor that specified with lsquo--with-pkg-distdir=DIRrsquo to lsquoconfigurersquo)You can change the directory to which packages are distributed by using thelsquo--with-pkg-distdir=DIRrsquo option to lsquoconfigurersquo The default directory is the top builddirectory

lsquorelease-archivesrsquoThis target creates the distribution archive files if they have not already beencreated This not only runs the lsquodistrsquo target but also copies the files to thedistribution directory which by default is the top build directoryThe files generated are namedlsquostrss7-09a8targzrsquo and lsquostrss7-09a8tarbz2rsquoYou can change this distribution directory with the lsquo--with-pkg-distdirrsquo op-tion to lsquoconfigurersquo See lsquoconfigure --helprsquo for more details on optionsThis is an OpenSS7 Project specific makefile target This target does not requireroot privilege

90 OpenSS7 SS7 Stack

lsquorelease-sign-archivesrsquoThis target is like lsquorelease-archivesrsquo except that it also signs the archivesusing a GPG detached signature You will be prompted for a password unlessyou pass the GNUPGPASS variable to make For automated or unattendedbuilds pass the GNUPGPASS variable like solsquomake GNUPGPASS=mypasswd release-sign-archivesrsquoSignature files will be namedlsquostrss7-09a8targzascrsquo and lsquostrss7-09a8tarbz2ascrsquoThese files will be moved to the package distribution directory with the plaintext archivesThis is an OpenSS7 Project specific makefile target This target does not requireroot privilege

lsquorelease-clean-archivesrsquoThis target will clean the release archives and signature files from the packagedistribution directoryThis is an OpenSS7 Project specific makefile target This target does not requireroot privilege

6819 RPM Build Targets

On rpm(1) systems or systems sporting rpm packaging tools the following targets are usedto generate rpm(1) release packages The epoch and release number can be controlled by thecontents of the lsquorpmepochrsquo and lsquorpmreleasersquo files or with the lsquo--with-rpm-epoch=EPOCHrsquoand lsquo--with-rpm-release=RELEASErsquo options to lsquoconfigurersquo See lsquoconfigure --helprsquo formore information on options We always use release number lsquo1rsquo You can use releasenumbers above lsquo1rsquo

lsquosrpmrsquo This target generates the source rpm for the package (without signing the sourcerpm) The source rpm will be named lsquostrss7-09a8-1srpmrsquoThis is an OpenSS7 Project specific makefile target This target does not requireroot privilege

lsquorpmsrsquo This target is responsible for generating all of the package binary rpms for thearchitecture The binary rpms will be namedlsquostrss7--09a8-1rpmrsquowhere the stars indicate the subpackage and the architecture Both the archi-tecture specific subpackages (binary objects) and the architecture independent(lsquonoarchrsquo) subpackages will be built unless the the former was disabled withthe option lsquo--disable-archrsquo or the later with the option lsquo--disable-indeprsquopassed to lsquoconfigurersquoThis is an OpenSS7 Project specific makefile target This target does not requireroot privilege

lsquosignrsquolsquosrpm-signrsquo

These two targets are the same When invoked they will add a signature tothe source rpm file provided that the file does not already have a signature

Chapter 6 Installation 91

You will be prompted for a password if a signature is required Automated orunattended builds can be achieved by using the emake expect script includedin lsquo$srcdirscriptsemakersquoThis is an OpenSS7 Project specific makefile target This target does not requireroot privilege

lsquorebuildrsquo This target accepts searches out a list of kernel names from thelsquo$DESTDIRlibmodulesrsquo directory and builds rpms for those kernels andfor each of a set of architectures given in the AM RPMTARGETS variable tomake This is convenience target for building a group of rpms on a given buildmachineThis is an OpenSS7 Project specific makefile target This target does not requireroot privilege

lsquoresignrsquo This target will search out and sign with a GPG signature the source rpm andall of the binary rpms for this package that can be found in the package distri-bution directory This target will prompt for a GPG password Automated orunattended builds can be achieved with the emake expect script located herelsquo$srcdirscriptsemakersquoThis is an OpenSS7 Project specific makefile target This target does not requireroot privilege

68110 Debian Build Targets

On Debian systems or systems sporting Debian packaging tools the following targets areused to generate Debian release packages The release number can be controlled by thecontents of the lsquodebreleasersquo file or with the lsquo--with-debrelease=RELEASENUMBERrsquo optionto lsquoconfigurersquo See lsquoconfigure --helprsquo for more information on options

lsquodscrsquo This target will build the Debian source change package (lsquodscrsquo file) Weuse release number lsquo0rsquo so that the entire tarball is included in the lsquodscrsquo fileYou can use release number lsquo1rsquo for the same purposes Release numbersabove lsquo1rsquo will not include the entire tarball The lsquodscrsquo file will be namedlsquostrss7_09a8-0dscrsquoThis is an OpenSS7 Project specific makefile target This target does not requireroot privilege

lsquosigsrsquo This target signs the lsquodebrsquo files You will be prompted for a password unlessto specify it to make with the GNUPGPASS variableThis is an OpenSS7 Project specific makefile target This target does not requireroot privilege

lsquodebsrsquo This target will build the Debian binary package (lsquodebrsquo file) from thelsquodscrsquo created above (This target will also create the lsquodscrsquo if it hasnot been created already) The subpackage lsquodebrsquo files will be namedlsquostrss7-_09a8-0_debrsquo where the stars indicate the subpackage and thearchitectureThis is an OpenSS7 Project specific makefile target This target does not requireroot privilege

92 OpenSS7 SS7 Stack

lsquocsigrsquo This target signs the lsquodscrsquo file You will be prompted for a password unlessto specify it to make with the GNUPGPASS variableThis is an OpenSS7 Project specific makefile target This target does not requireroot privilege

68111 Documentation Targets

On systems that have doxygen(1) documentation tool the following targets are used togenerate doxygen html documentation

lsquodoxyrsquo This target generates doxygen(1) documetnation from suitably marked sourcesFile containing the necessary documentation marks are discovered automat-ically by configure Doxygen documentation can be generated bus is notdistributed Documentation is cerated in the subdirectory lsquodochtmlrsquo

Chapter 7 Troubleshooting 93

7 Troubleshooting

71 Test Suites

711 Pre-installation Checks

Most OpenSS7 packages including the OpenSS7 SS7 Stack package ship withpre-installation checks integral to the build system Pre-installation checks include checkscripts that are shipped in the lsquoscriptsrsquo subdirectory as well as specialized make targetsthat perform the checks

When building and installing the package from RPM or DEB source packages (seeSection 641 [Building from the Source RPM] page 77 and Section 642 [Building fromthe Debian DSC] page 78) a fundamental set of post-compile pre-installation checksare performed prior to building binary packages This is performed automatically anddoes not require any special actions on the part of the user creating binary packages fromsource packages

When building and installing the package from tarball (see Section 643 [Building fromthe Tar Ball] page 78 and Section 653 [Installing the Tar Ball] page 80) however pre-installation checks are only performed if specifically invoked by the builder of the packagePre-installation checks are invoked after building the package and before installing thepackage Pre-installation checks are performed by invoking the lsquocheckrsquo or lsquochecklogrsquotarget to make when building the package as shown in Example 71 wget httpwwwopenss7orgstrss7-09a8tarbz2 tar -xjvf strss7-09a8tarbz2 pushd strss7-09a8 configure make make check lt------- invoke pre-installation checks popd

Example 71 Invoking Pre-Installation Checks Pre-installation checks fall into two categories System Checks and Maintenance Checks

7111 Pre-Installation System Checks

System Checks are post-compilation checks that can be performed before installing thepackage that check to ensure that the compiled objects function and will be successfully in-stalled When the lsquo--enable-maintainer-modersquo option has not been passed to configureonly System Checks will be performed

For example the steps shown in Example 72 will perform System checks

94 OpenSS7 SS7 Stack wget httpwwwopenss7orgstrss7-09a8tarbz2 tar -xjvf strss7-09a8tarbz2 pushd strss7-09a8 configure make make check lt------ invokes System pre-installation checks popd

Example 72 Invoking System Checks 7112 Pre-Installation Maintenance Checks

Maintenance Checks include all System Checks but also checks to ensure that thekernel modules applications programs header files development tools test programsdocumentation and manual pages conform to OpenSS7 standards When thelsquo--enable-maintainer-modersquo option has been passed to configure Maintenance Checkswill be performed

For example the steps shown in Example 73 will perform Maintenance checks wget httpwwwopenss7orgstrss7-09a8tarbz2 tar -xjvf strss7-09a8tarbz2 pushd strss7-09a8 configure --enable-maintainer-mode make make check lt------ invokes Maintenance pre-installation checks popd

Example 73 Invoking Maintenance Checks 7113 Specific Pre-Installation Checks

A number of check scripts are provided in the lsquoscriptsrsquo subdirectory of the distributionthat perform both System and Maintenance checks These are as follows

check_commandsThis check performs both System and Maintenance checksWhen performing System tests the following tests are performedUnless cross-compiling or unless a program is included in AM_INSTALLCHECK_STD_OPTIONS_EXEMPT every program in bin_PROGRAMS sbin_PROGRAMS andlibexec_PROGRAMS is tested to ensure that the lsquo--helprsquo lsquo--versionrsquo andlsquo--copyingrsquo options are accepted When cross-compiling is is not possible toexecute cross-compiled binaries and these checks are skipped in that caseScript executables on the other hand can be executed on the build host so un-less listed in AM_INSTALLCHECK_STD_OPTIONS_EXEMPT every program in dist_bit_SCRIPTS dist_sbin_SCRIPTS and pkglibexec_SCRIPTS are tested to en-sure that the lsquo--helprsquo lsquo--versionrsquo and lsquo--copyingrsquo options are acceptedWhen performing Maintenance tests check_commands also checks to ensurethat a manual page exists in section 1 for every executable binary or script

Chapter 7 Troubleshooting 95

that will be installed from bin_PROGRAMS and dist_bin_SCRIPTS It alsochecks to ensure that a manual page exists in section 8 for every executable bi-nary or script that will be installed from sbin_PROGRAMS dist_sbin_SCRIPTSlibexec_PROGRAMS and pkglibexec_SCRIPTS

check_declsThis check only performs Maintenance checksIt collects the results from the check_libs check_modules and check_headers check scripts and tests to ensure every declaration of a functionprototype or external variable contained in installed header files has acorresponding exported symbol from either a to be installed shared objectlibrary or a to be installed kernel module Declarations are exemptedfrom this requirement if their identifiers have been explicitly added to theEXPOSED_SYMBOL variable If WARN_EXCESS is set to lsquoyesrsquo then the checkscript will only warn when excess declarations exist (without a correspondingexported symbol) otherwise the check script will generate an error and thecheck will fail

check_headersThis check only performs Maintenance checksWhen performing Maintenance tests it identifies all of the declarations includedin to be installed header files It then checks to ensure that a manual pageexists in sections 2 3 7 or 9 as appropriate for the type of declaration Italso checks to see if a manual page source file exists in the source directoryfor a declaration that has not been included in the distribution Function orprototype declarations that do not have a manual page in sections 2 3 or9 will cause the check to fail Other declarations (lsquovariablersquo lsquoexternvarrsquolsquomacrorsquo lsquoenumeratersquo lsquoenumrsquo lsquostructrsquo lsquounionrsquo lsquotypedefrsquo lsquomemberrsquo etc) willonly warn if a manual page does not exist but will not fail the check

check_libsThis check only performs Maintenance checksWhen performing Maintenance tests it checks that each exported symbol ineach to be installed shared object library has a manual page in section 3 It alsochecks that each exported symbol has a lsquofunctionrsquo lsquoprototypersquo or lsquoexternvarrsquodeclaration in the to be installed header files A missing declaration or manualpage will cause this check to fail

check_mansThis check only performs Maintenance checksWhen performing Maintenance tests it checks that to be install manual pagescan be formatted for display without any errors or warnings from the buildhost man program It also checks that required headings exist for manual pagesaccording to the section in which the manual page will be installed It warnsif recommended headings are not included in the manual pages Because someRPM distributions have manual pages that might conflict with the packagemanual pages this check script also checks for conflicts with installed manualpages on the build host This check script also checks to ensure that all to be

96 OpenSS7 SS7 Stack

installed manual pages are used in some fashion that is they have a declarationor exported symbol or are the name of a kernel module or STREAMS moduleor driver possibly capitalizedNote that checking for conflicts with the build host should probably be includedin the System checks (because System checks are performed before the sourceRPM install scriptlet)

check_modulesThis check performs both System and Maintenance checksWhen performing System tests it checks each to be installed kernel moduleto ensure that all undefined symbols can be resolved to either the kernel oranother module It also checks whether an exported or externally declaredsymbol conflicts with an exported or externally declared symbol present in thekernel or another module1

When performing Maintenance tests this check script tests that each to beinstalled kernel module has a manual page in section 9 and that each exportedsymbol that does not begin with an underscore and that belongs to an exportedfunction or exported variable has a manual page in section 9 It also checks toensure that each exported symbol that does not begin with an underscore andthat belongs to an exported function or exported variable has a lsquofunctionrsquolsquoprototypersquo or lsquoexternvarrsquo declaration in the to be installed header files

check_streamsThis check performs only Maintenance checksWhen performing Maintenance tests it checks that for each configuredSTREAMS module or driver or device node that a manual page exists insection 4 or section 7 as appropriate

The output of the pre-installation tests are fairly self explanatory Each check script savessome output to lsquonamelogrsquo where name is the name of the check script as listed above Asummary of the results of the test are display to standard output and can also be capturedto the lsquochecklogrsquo file if the lsquochecklogrsquo target is used instead of the lsquocheckrsquo target tomakeBecause the check scripts proliferate lsquonamelogrsquo files throughout the build directory a lsquomakecheck-cleanrsquo make target has be provided to clean them out lsquomake check-cleanrsquo shouldbe run before each successive run of lsquomake checkrsquo

712 Post-installation Checks

Most OpenSS7 packages ship with a compatibility and conformance test suite built us-ing the lsquoautotestrsquo capabilities of lsquoautoconfrsquo These test suites act as a wrapper for thecompatibility and conformance test programs that are shipped with the packageUnlike the pre-installation checks the post-installation checks are always run completeThe only check that post-installation test scripts perform is to test whether they havebeen invoked with root privileges or not When invoked as root or as a plain user sometests might be skipped that require root privileges or that require plain user privileges tocomplete successfully

1 This particular check has caught some name space pollution that has occurred in the 2611 kernel

Chapter 7 Troubleshooting 97

7121 Running Test Suites

There are several ways of invoking the conformance test suites

1 The test suites can be run after installation of the package by invoking the lsquomakeinstallcheckrsquo or lsquomake installchecklogrsquo target Some packages require that rootprivileges be acquired before invoking the package

2 The test suites can be run from the distribution subdirectory after installation of thepackage by invoking the testsuite shell script directly

3 The test suites can be run standalone from the lsquolibexecrsquo (lsquousrlibexecrsquo) installationdirectory by invoking the testsuite shell script directly

Typical steps for invoking the test suites directly from make are shown in Example 74 wget httpwwwopenss7orgstrss7-09a8tarbz2 tar -xjvf strss7-09a8tarbz2 pushd strss7-09a8 configure make make check lt------ invokes System pre-installation checks make install sudo make installcheck lt------- invokes post-installation tests popd

Example 74 Invoking System Checks When performing post-installation checks for the purposes of generating a problem re-port the checks should always be performed from the build directory either with lsquomakeinstallcheckrsquo or by invoking testsuite directly from the lsquotestsrsquo subdirectory of thebuild directory This ensures that all of the information known to configure and pertinentto the configuration of the system for which a test case failed will be collected in the re-sulting lsquotestsuitelogrsquo file deposited upon test suite failure in the lsquotestsrsquo directory Thislsquotestsuitelogrsquo file can then be attached as part of the problem report and provides richdetails to maintainers of the package See also See Section 72 [Problem Reports] page 97below

Typical steps for invoking and installed testsuite standalone are shown in Example 75 [sudo] usrlibexecstrss7testsuite

Example 75 Invoking testsuite Directly When invoked directly testsuite will generate a lsquotestsuitelogrsquo file in the current di-rectory and a lsquotestsuitedirrsquo directory of failed tests cases and debugging scripts Forgenerating a problem report for failed test cases see Section 724 [Stand Alone ProblemReports] page 100

72 Problem Reports

98 OpenSS7 SS7 Stack

721 Problem Report Guidelines

Problem reports in the following categories should include a log file as indicated in the tablebelow

lsquoconfigurersquoA problem with the configuration process occurs that causes the lsquoconfigurersquocommand to fail The problem report must include the lsquoconfiglogrsquo file thatwas generated by configure

lsquomake compilelogrsquoA problem with the build process occurs that causes the lsquomakersquo commandto fail Perform lsquomake cleanrsquo and then lsquomake compilelogrsquo and attach thelsquoconfiglogrsquo and lsquocompilelogrsquo files to the problem report

lsquomake checklogrsquoA problem occurs with the lsquomake checkrsquo target that causes it to fail Performlsquomake check-clean checklogrsquo and attach the lsquoconfiglogrsquo lsquocompilelogrsquoand lsquochecklogrsquo files to the problem report

lsquosudo make installlogrsquoA problem occurs with lsquosudo make installrsquo that causes it to fail Performlsquosudo make uninstallrsquo and lsquosudo make installlogrsquo and attach thelsquoconfiglogrsquo lsquocompilelogrsquo lsquochecklogrsquo and lsquoinstalllogrsquo files to theproblem report

lsquo[sudo] make installchecklogrsquoA problem occurs with the lsquomake installcheckrsquo target that causesthe test suite to fail Attach the resulting lsquoteststestsuitelogrsquo andlsquoinstallchecklogrsquo file to the problem report There is no need to attach theother files as they are included in lsquoteststestsuitelogrsquo

lsquo[sudo] make uninstalllogrsquoA problem occurs with the lsquomake uninstallrsquo target that causes the test suiteto fail Perform lsquosudo make uninstalllogrsquo and attach the lsquoconfiglogrsquolsquocompilelogrsquo lsquochecklogrsquo lsquoinstalllogrsquo lsquoinstallchecklogrsquolsquoteststestsuitelogrsquo and lsquouninstalllogrsquo file to the problem report

lsquo[sudo] make removelogrsquoA problem occurs with the lsquomake removersquo target that causes the test suiteto fail Perform lsquosudo make removelogrsquo and attach the lsquoconfiglogrsquolsquocompilelogrsquo lsquochecklogrsquo lsquoinstalllogrsquo lsquoinstallchecklogrsquolsquoteststestsuitelogrsquo and lsquoremovelogrsquo file to the problem report

For other problems that occur during the use of the OpenSS7 SS7 Stack package pleasewrite a test case for the test suite that recreates the problem if one does not yet existand provide a test program patch with the problem report Also include whatever logfiles are generated by the kernel (cmn_err(9)) or by the strerr(8) or strace(1) facilities(strlog(9))

722 Generating Problem Reports

The OpenSS7 Project uses the GNU GNATS system for problem reporting Although thelsquosend-prrsquo tool from the GNU GNATS package can be used for bug reporting to the projectrsquos

Chapter 7 Troubleshooting 99

GNATS database using electronic mail it is not always convenient to download and installthe GNATS system to gain access to the lsquosend-prrsquo toolTherefore the OpenSS7 SS7 Stack package provides the lsquosend-prrsquo shell script that canbe used for problem reporting The lsquosend-prrsquo shell script can invoked directly and is awork-alike for the GNU lsquosend-prrsquo toolThe lsquosend-prrsquo tool takes the same flags and can be used in the same fashion howeverwhereas lsquosend-prrsquo is an interactive tool2 lsquosend-prrsquo is also able to perform batch process-ing Whereas lsquosend-prrsquo takes its field information from local databases or from using thelsquoquery-prrsquo C-language program to query a remote database the lsquosend-prrsquo tool has thefield database internal to the toolProblem reports can be generate using make See Section 6817 [Problem Report Targets]page 89 An example of how simple it is to generate a problem report is illustrated inExample 76 make prSEND-PRSEND-PR send-pr send-pr was invoked to generate an external report AnSEND-PR automated problem report has been created in the file namedSEND-PR rsquoproblemprrsquo in the current directory This problem report canSEND-PR be sent to bugsopenss7org by calling this script asSEND-PR rsquohomebrianos7scriptssend-pr --file=problemprrsquoSEND-PRSEND-PR It is possible to edit some of the fields before sending on theSEND-PR problem report Please remember that there is NO WARRANTY SeeSEND-PR the file rsquoCOPYINGrsquo in the top level directorySEND-PRSEND-PR Please do not send confidential information to the bug reportSEND-PR address Inspect the file rsquoproblemprrsquo for confidentialSEND-PR information before mailingSEND-PR vim problempr lt--- follow instructions at head of file make send-pr

Example 76 Invoking Problem Report Generation Using the lsquomake prrsquo target to generate a problem report has the advantages that it willassemble any available lsquologrsquo files in the build directory and attach them to the problemreport

723 Automatic Problem Reports

The OpenSS7 SS7 Stack package also provides a feature for automatic problem reportgeneration that meets the problem report submission guidelines detailed in the precedingsectionsWhenever a logging makefile target (see Section 6816 [Logging Targets] page 87) is in-voked if the primary target fails the send-pr shell script is invoked to automatically

2 lsquosend-prrsquo launches the userrsquos EDITOR to edit the problem report before submitting it

100 OpenSS7 SS7 Stack

generate a problem report file suitable for the corresponding target (as described aboveunder see Section 721 [Problem Report Guidelines] page 98) An example is shown inExample 77 make compilelogmake[5] [libXNSdrvs_a-ipo] Error 1make[5] Leaving directory lsquou6buildel4strxnsrsquomake[4] [all-recursive] Error 1make[4] Leaving directory lsquou6buildel4strxnsrsquomake[3] [all] Error 2make[3] Leaving directory lsquou6buildel4strxnsrsquomake[2] [all-recursive] Error 1make[2] Leaving directory lsquou6buildel4rsquomake[1] [all] Error 2make[1] Leaving directory lsquou6buildel4rsquoSEND-PRSEND-PR send-pr Make target compilelog failed in the compile stage AnSEND-PR automated problem report has been created in the file namedSEND-PR rsquoproblemprrsquo in the current directory This problem report canSEND-PR be sent to bugsopenss7org by calling rsquomake send-prrsquoSEND-PRSEND-PR It is possible to edit some of the fields before sending on theSEND-PR problem report Please remember that there is NO WARRANTY SeeSEND-PR the file rsquoCOPYINGrsquo in the top level directorySEND-PRSEND-PR Please do not send confidential information to the bug reportSEND-PR address Inspect the file rsquoproblemprrsquo for confidentialSEND-PR information before mailingSEND-PR vim problempr lt--- follow instructions at head of file make send-pr

Example 77 Problem Report from Failed Logging Target 724 Stand Alone Problem Reports

The OpenSS7 SS7 Stack package installs the send-pr script and its configuration filelsquosend-prconfigrsquo in lsquo$libexecdirstrss7rsquo along with the validation testsuite seeSee Section 71 [Test Suites] page 93 As with the testsuite this allows the send-prscript to be used for problem report generation on an installed system that does not havea build directory

An example of invoking the package testsuite and then generating a problem report forfailed cases is shown in Example 78

Chapter 7 Troubleshooting 101 [sudo] usrlibexecstrss7testsuite test cases failed usrlibexecstrss7send-prSEND-PRSEND-PR send-pr send-pr was invoked to generate an external report AnSEND-PR automated problem report has been created in the file namedSEND-PR rsquoproblemprrsquo in the current directory This problem report canSEND-PR be sent to bugsopenss7org by calling this script asSEND-PR rsquousrlibexecstrss7send-pr --file problemprrsquoSEND-PRSEND-PR It is possible to edit some of the fields before sending on theSEND-PR problem report Please remember that there is NO WARRANTY SeeSEND-PR the file rsquoCOPYINGrsquo in the top level directorySEND-PRSEND-PR Please do not send confidential information to the bug reportSEND-PR address Inspect the file rsquoproblemprrsquo for confidentialSEND-PR information before mailingSEND-PR vim problempr lt--- follow instructions at head of file usrlibexecstrss7send-pr --file problempr

Example 78 Invoking send-pr Directly The advantage of the approach shown in the example is that the send-pr script is capableof collecting the lsquotestsuitelogrsquo file and the failed test cases and debugging scripts fromthe lsquotestsuitedirrsquo directory and including them in the problem report as well as allpackage pertinent information from the installed lsquosend-prconfigrsquo

73 Known Problems

The OpenSS7 Project does not ship software with known bugs All bugs are unknownVerified behaviour is that behaviour that has been verified by conformance test suites thatare shipped with the OpenSS7 SS7 Stack packageUnverified behaviour may contain unknown bugsPlease remember that there is NO WARRANTYSee also Section 55 [Bugs] page 43 or file lsquoBUGSrsquo in the release directory

Licenses 103

Licenses

104 OpenSS7 SS7 Stack

GNU Affero General Public License

The GNU Affero General Public LicenseVersion 3 19 November 2007

Copyright ccopy 2007 Free Software Foundation Inc httpfsforg

Everyone is permitted to copy and distribute verbatim copies of thislicense document but changing it is not allowed

Preamble

The GNU Affero General Public License is a free copyleft license for software and otherkinds of works specifically designed to ensure cooperation with the community in the caseof network server software

The licenses for most software and other practical works are designed to take away yourfreedom to share and change the works By contrast our General Public Licenses areintended to guarantee your freedom to share and change all versions of a programndashto makesure it remains free software for all its users

When we speak of free software we are referring to freedom not price Our General PublicLicenses are designed to make sure that you have the freedom to distribute copies of freesoftware (and charge for them if you wish) that you receive source code or can get it if youwant it that you can change the software or use pieces of it in new free programs and thatyou know you can do these things

Developers that use our General Public Licenses protect your rights with two steps (1)assert copyright on the software and (2) offer you this License which gives you legal per-mission to copy distribute andor modify the software

A secondary benefit of defending all usersrsquo freedom is that improvements made in alternateversions of the program if they receive widespread use become available for other developersto incorporate Many developers of free software are heartened and encouraged by theresulting cooperation However in the case of software used on network servers this resultmay fail to come about The GNU General Public License permits making a modifiedversion and letting the public access it on a server without ever releasing its source code tothe public

The GNU Affero General Public License is designed specifically to ensure that in such casesthe modified source code becomes available to the community It requires the operator of anetwork server to provide the source code of the modified version running there to the usersof that server Therefore public use of a modified version on a publicly accessible servergives the public access to the source code of the modified version

An older license called the Affero General Public License and published by Affero wasdesigned to accomplish similar goals This is a different license not a version of the AfferoGPL but Affero has released a new version of the Affero GPL which permits relicensingunder this license

The precise terms and conditions for copying distribution and modification follow

Licenses 105

Terms and Conditions

0 DefinitionsldquoThis Licenserdquo refers to version 3 of the GNU Affero General Public LicenseldquoCopyrightrdquo also means copyright-like laws that apply to other kinds of works such assemiconductor masksldquoThe Programrdquo refers to any copyrightable work licensed under this License Eachlicensee is addressed as ldquoyourdquo ldquoLicenseesrdquo and ldquorecipientsrdquo may be individuals ororganizationsTo ldquomodifyrdquo a work means to copy from or adapt all or part of the work in a fashionrequiring copyright permission other than the making of an exact copy The resultingwork is called a ldquomodified versionrdquo of the earlier work or a work ldquobased onrdquo the earlierworkA ldquocovered workrdquo means either the unmodified Program or a work based on the Pro-gramTo ldquopropagaterdquo a work means to do anything with it that without permission wouldmake you directly or secondarily liable for infringement under applicable copyright lawexcept executing it on a computer or modifying a private copy Propagation includescopying distribution (with or without modification) making available to the publicand in some countries other activities as wellTo ldquoconveyrdquo a work means any kind of propagation that enables other parties to makeor receive copies Mere interaction with a user through a computer network with notransfer of a copy is not conveyingAn interactive user interface displays ldquoAppropriate Legal Noticesrdquo to the extent that itincludes a convenient and prominently visible feature that (1) displays an appropriatecopyright notice and (2) tells the user that there is no warranty for the work (exceptto the extent that warranties are provided) that licensees may convey the work underthis License and how to view a copy of this License If the interface presents a listof user commands or options such as a menu a prominent item in the list meets thiscriterion

1 Source CodeThe ldquosource coderdquo for a work means the preferred form of the work for making modi-fications to it ldquoObject coderdquo means any non-source form of a workA ldquoStandard Interfacerdquo means an interface that either is an official standard definedby a recognized standards body or in the case of interfaces specified for a particularprogramming language one that is widely used among developers working in thatlanguageThe ldquoSystem Librariesrdquo of an executable work include anything other than the work asa whole that (a) is included in the normal form of packaging a Major Component butwhich is not part of that Major Component and (b) serves only to enable use of thework with that Major Component or to implement a Standard Interface for which animplementation is available to the public in source code form A ldquoMajor Componentrdquoin this context means a major essential component (kernel window system and soon) of the specific operating system (if any) on which the executable work runs or acompiler used to produce the work or an object code interpreter used to run it

106 OpenSS7 SS7 Stack

The ldquoCorresponding Sourcerdquo for a work in object code form means all the source codeneeded to generate install and (for an executable work) run the object code and tomodify the work including scripts to control those activities However it does notinclude the workrsquos System Libraries or general-purpose tools or generally availablefree programs which are used unmodified in performing those activities but which arenot part of the work For example Corresponding Source includes interface definitionfiles associated with source files for the work and the source code for shared librariesand dynamically linked subprograms that the work is specifically designed to requiresuch as by intimate data communication or control flow between those subprogramsand other parts of the workThe Corresponding Source need not include anything that users can regenerate auto-matically from other parts of the Corresponding SourceThe Corresponding Source for a work in source code form is that same work

2 Basic PermissionsAll rights granted under this License are granted for the term of copyright on theProgram and are irrevocable provided the stated conditions are met This License ex-plicitly affirms your unlimited permission to run the unmodified Program The outputfrom running a covered work is covered by this License only if the output given itscontent constitutes a covered work This License acknowledges your rights of fair useor other equivalent as provided by copyright lawYou may make run and propagate covered works that you do not convey withoutconditions so long as your license otherwise remains in force You may convey coveredworks to others for the sole purpose of having them make modifications exclusivelyfor you or provide you with facilities for running those works provided that youcomply with the terms of this License in conveying all material for which you do notcontrol copyright Those thus making or running the covered works for you must doso exclusively on your behalf under your direction and control on terms that prohibitthem from making any copies of your copyrighted material outside their relationshipwith youConveying under any other circumstances is permitted solely under the conditionsstated below Sublicensing is not allowed section 10 makes it unnecessary

3 Protecting Usersrsquo Legal Rights From Anti-Circumvention LawNo covered work shall be deemed part of an effective technological measure underany applicable law fulfilling obligations under article 11 of the WIPO copyright treatyadopted on 20 December 1996 or similar laws prohibiting or restricting circumventionof such measuresWhen you convey a covered work you waive any legal power to forbid circumvention oftechnological measures to the extent such circumvention is effected by exercising rightsunder this License with respect to the covered work and you disclaim any intentionto limit operation or modification of the work as a means of enforcing against theworkrsquos users your or third partiesrsquo legal rights to forbid circumvention of technologicalmeasures

4 Conveying Verbatim CopiesYou may convey verbatim copies of the Programrsquos source code as you receive it in anymedium provided that you conspicuously and appropriately publish on each copy an

Licenses 107

appropriate copyright notice keep intact all notices stating that this License and anynon-permissive terms added in accord with section 7 apply to the code keep intact allnotices of the absence of any warranty and give all recipients a copy of this Licensealong with the ProgramYou may charge any price or no price for each copy that you convey and you may offersupport or warranty protection for a fee

5 Conveying Modified Source VersionsYou may convey a work based on the Program or the modifications to produce it fromthe Program in the form of source code under the terms of section 4 provided thatyou also meet all of these conditionsa The work must carry prominent notices stating that you modified it and giving a

relevant dateb The work must carry prominent notices stating that it is released under this Li-

cense and any conditions added under section 7 This requirement modifies therequirement in section 4 to ldquokeep intact all noticesrdquo

c You must license the entire work as a whole under this License to anyone whocomes into possession of a copy This License will therefore apply along with anyapplicable section 7 additional terms to the whole of the work and all its partsregardless of how they are packaged This License gives no permission to licensethe work in any other way but it does not invalidate such permission if you haveseparately received it

d If the work has interactive user interfaces each must display Appropriate LegalNotices however if the Program has interactive interfaces that do not displayAppropriate Legal Notices your work need not make them do so

A compilation of a covered work with other separate and independent works whichare not by their nature extensions of the covered work and which are not combinedwith it such as to form a larger program in or on a volume of a storage or distributionmedium is called an ldquoaggregaterdquo if the compilation and its resulting copyright arenot used to limit the access or legal rights of the compilationrsquos users beyond what theindividual works permit Inclusion of a covered work in an aggregate does not causethis License to apply to the other parts of the aggregate

6 Conveying Non-Source FormsYou may convey a covered work in object code form under the terms of sections 4 and5 provided that you also convey the machine-readable Corresponding Source underthe terms of this License in one of these waysa Convey the object code in or embodied in a physical product (including a phys-

ical distribution medium) accompanied by the Corresponding Source fixed on adurable physical medium customarily used for software interchange

b Convey the object code in or embodied in a physical product (including a physi-cal distribution medium) accompanied by a written offer valid for at least threeyears and valid for as long as you offer spare parts or customer support for thatproduct model to give anyone who possesses the object code either (1) a copy ofthe Corresponding Source for all the software in the product that is covered by thisLicense on a durable physical medium customarily used for software interchange

108 OpenSS7 SS7 Stack

for a price no more than your reasonable cost of physically performing this con-veying of source or (2) access to copy the Corresponding Source from a networkserver at no charge

c Convey individual copies of the object code with a copy of the written offer toprovide the Corresponding Source This alternative is allowed only occasionallyand noncommercially and only if you received the object code with such an offerin accord with subsection 6b

d Convey the object code by offering access from a designated place (gratis or fora charge) and offer equivalent access to the Corresponding Source in the sameway through the same place at no further charge You need not require recipientsto copy the Corresponding Source along with the object code If the place tocopy the object code is a network server the Corresponding Source may be ona different server (operated by you or a third party) that supports equivalentcopying facilities provided you maintain clear directions next to the object codesaying where to find the Corresponding Source Regardless of what server hoststhe Corresponding Source you remain obligated to ensure that it is available foras long as needed to satisfy these requirements

e Convey the object code using peer-to-peer transmission provided you inform otherpeers where the object code and Corresponding Source of the work are being offeredto the general public at no charge under subsection 6d

A separable portion of the object code whose source code is excluded from the Cor-responding Source as a System Library need not be included in conveying the objectcode workA ldquoUser Productrdquo is either (1) a ldquoconsumer productrdquo which means any tangible per-sonal property which is normally used for personal family or household purposes or(2) anything designed or sold for incorporation into a dwelling In determining whethera product is a consumer product doubtful cases shall be resolved in favor of coverageFor a particular product received by a particular user ldquonormally usedrdquo refers to atypical or common use of that class of product regardless of the status of the par-ticular user or of the way in which the particular user actually uses or expects or isexpected to use the product A product is a consumer product regardless of whetherthe product has substantial commercial industrial or non-consumer uses unless suchuses represent the only significant mode of use of the productldquoInstallation Informationrdquo for a User Product means any methods procedures autho-rization keys or other information required to install and execute modified versions of acovered work in that User Product from a modified version of its Corresponding SourceThe information must suffice to ensure that the continued functioning of the modifiedobject code is in no case prevented or interfered with solely because modification hasbeen madeIf you convey an object code work under this section in or with or specifically foruse in a User Product and the conveying occurs as part of a transaction in whichthe right of possession and use of the User Product is transferred to the recipient inperpetuity or for a fixed term (regardless of how the transaction is characterized)the Corresponding Source conveyed under this section must be accompanied by theInstallation Information But this requirement does not apply if neither you nor any

Licenses 109

third party retains the ability to install modified object code on the User Product (forexample the work has been installed in ROM)The requirement to provide Installation Information does not include a requirementto continue to provide support service warranty or updates for a work that has beenmodified or installed by the recipient or for the User Product in which it has beenmodified or installed Access to a network may be denied when the modification itselfmaterially and adversely affects the operation of the network or violates the rules andprotocols for communication across the networkCorresponding Source conveyed and Installation Information provided in accord withthis section must be in a format that is publicly documented (and with an implementa-tion available to the public in source code form) and must require no special passwordor key for unpacking reading or copying

7 Additional TermsldquoAdditional permissionsrdquo are terms that supplement the terms of this License by mak-ing exceptions from one or more of its conditions Additional permissions that areapplicable to the entire Program shall be treated as though they were included in thisLicense to the extent that they are valid under applicable law If additional permis-sions apply only to part of the Program that part may be used separately under thosepermissions but the entire Program remains governed by this License without regardto the additional permissionsWhen you convey a copy of a covered work you may at your option remove anyadditional permissions from that copy or from any part of it (Additional permissionsmay be written to require their own removal in certain cases when you modify thework) You may place additional permissions on material added by you to a coveredwork for which you have or can give appropriate copyright permissionNotwithstanding any other provision of this License for material you add to a coveredwork you may (if authorized by the copyright holders of that material) supplementthe terms of this License with termsa Disclaiming warranty or limiting liability differently from the terms of sections 15

and 16 of this License orb Requiring preservation of specified reasonable legal notices or author attributions

in that material or in the Appropriate Legal Notices displayed by works containingit or

c Prohibiting misrepresentation of the origin of that material or requiring that mod-ified versions of such material be marked in reasonable ways as different from theoriginal version or

d Limiting the use for publicity purposes of names of licensors or authors of thematerial or

e Declining to grant rights under trademark law for use of some trade names trade-marks or service marks or

f Requiring indemnification of licensors and authors of that material by anyone whoconveys the material (or modified versions of it) with contractual assumptionsof liability to the recipient for any liability that these contractual assumptionsdirectly impose on those licensors and authors

110 OpenSS7 SS7 Stack

All other non-permissive additional terms are considered ldquofurther restrictionsrdquo withinthe meaning of section 10 If the Program as you received it or any part of it con-tains a notice stating that it is governed by this License along with a term that is afurther restriction you may remove that term If a license document contains a furtherrestriction but permits relicensing or conveying under this License you may add to acovered work material governed by the terms of that license document provided thatthe further restriction does not survive such relicensing or conveyingIf you add terms to a covered work in accord with this section you must place in therelevant source files a statement of the additional terms that apply to those files or anotice indicating where to find the applicable termsAdditional terms permissive or non-permissive may be stated in the form of a sep-arately written license or stated as exceptions the above requirements apply eitherway

8 TerminationYou may not propagate or modify a covered work except as expressly provided un-der this License Any attempt otherwise to propagate or modify it is void and willautomatically terminate your rights under this License (including any patent licensesgranted under the third paragraph of section 11)However if you cease all violation of this License then your license from a particularcopyright holder is reinstated (a) provisionally unless and until the copyright holderexplicitly and finally terminates your license and (b) permanently if the copyrightholder fails to notify you of the violation by some reasonable means prior to 60 daysafter the cessationMoreover your license from a particular copyright holder is reinstated permanently ifthe copyright holder notifies you of the violation by some reasonable means this is thefirst time you have received notice of violation of this License (for any work) from thatcopyright holder and you cure the violation prior to 30 days after your receipt of thenoticeTermination of your rights under this section does not terminate the licenses of partieswho have received copies or rights from you under this License If your rights havebeen terminated and not permanently reinstated you do not qualify to receive newlicenses for the same material under section 10

9 Acceptance Not Required for Having CopiesYou are not required to accept this License in order to receive or run a copy of theProgram Ancillary propagation of a covered work occurring solely as a consequence ofusing peer-to-peer transmission to receive a copy likewise does not require acceptanceHowever nothing other than this License grants you permission to propagate or modifyany covered work These actions infringe copyright if you do not accept this LicenseTherefore by modifying or propagating a covered work you indicate your acceptanceof this License to do so

10 Automatic Licensing of Downstream RecipientsEach time you convey a covered work the recipient automatically receives a licensefrom the original licensors to run modify and propagate that work subject to thisLicense You are not responsible for enforcing compliance by third parties with thisLicense

Licenses 111

An ldquoentity transactionrdquo is a transaction transferring control of an organization orsubstantially all assets of one or subdividing an organization or merging organizationsIf propagation of a covered work results from an entity transaction each party to thattransaction who receives a copy of the work also receives whatever licenses to the workthe partyrsquos predecessor in interest had or could give under the previous paragraph plusa right to possession of the Corresponding Source of the work from the predecessor ininterest if the predecessor has it or can get it with reasonable effortsYou may not impose any further restrictions on the exercise of the rights granted oraffirmed under this License For example you may not impose a license fee royalty orother charge for exercise of rights granted under this License and you may not initiatelitigation (including a cross-claim or counterclaim in a lawsuit) alleging that any patentclaim is infringed by making using selling offering for sale or importing the Programor any portion of it

11 PatentsA ldquocontributorrdquo is a copyright holder who authorizes use under this License of theProgram or a work on which the Program is based The work thus licensed is calledthe contributorrsquos ldquocontributor versionrdquoA contributorrsquos ldquoessential patent claimsrdquo are all patent claims owned or controlled bythe contributor whether already acquired or hereafter acquired that would be infringedby some manner permitted by this License of making using or selling its contributorversion but do not include claims that would be infringed only as a consequence offurther modification of the contributor version For purposes of this definition ldquocon-trolrdquo includes the right to grant patent sublicenses in a manner consistent with therequirements of this LicenseEach contributor grants you a non-exclusive worldwide royalty-free patent licenseunder the contributorrsquos essential patent claims to make use sell offer for sale importand otherwise run modify and propagate the contents of its contributor versionIn the following three paragraphs a ldquopatent licenserdquo is any express agreement or com-mitment however denominated not to enforce a patent (such as an express permissionto practice a patent or covenant not to sue for patent infringement) To ldquograntrdquo sucha patent license to a party means to make such an agreement or commitment not toenforce a patent against the partyIf you convey a covered work knowingly relying on a patent license and the Corre-sponding Source of the work is not available for anyone to copy free of charge and underthe terms of this License through a publicly available network server or other readilyaccessible means then you must either (1) cause the Corresponding Source to be soavailable or (2) arrange to deprive yourself of the benefit of the patent license for thisparticular work or (3) arrange in a manner consistent with the requirements of thisLicense to extend the patent license to downstream recipients ldquoKnowingly relyingrdquomeans you have actual knowledge that but for the patent license your conveying thecovered work in a country or your recipientrsquos use of the covered work in a countrywould infringe one or more identifiable patents in that country that you have reasonto believe are validIf pursuant to or in connection with a single transaction or arrangement you conveyor propagate by procuring conveyance of a covered work and grant a patent license

112 OpenSS7 SS7 Stack

to some of the parties receiving the covered work authorizing them to use propagatemodify or convey a specific copy of the covered work then the patent license you grantis automatically extended to all recipients of the covered work and works based on it

A patent license is ldquodiscriminatoryrdquo if it does not include within the scope of its cover-age prohibits the exercise of or is conditioned on the non-exercise of one or more of therights that are specifically granted under this License You may not convey a coveredwork if you are a party to an arrangement with a third party that is in the business ofdistributing software under which you make payment to the third party based on theextent of your activity of conveying the work and under which the third party grantsto any of the parties who would receive the covered work from you a discriminatorypatent license (a) in connection with copies of the covered work conveyed by you (orcopies made from those copies) or (b) primarily for and in connection with specificproducts or compilations that contain the covered work unless you entered into thatarrangement or that patent license was granted prior to 28 March 2007

Nothing in this License shall be construed as excluding or limiting any implied license orother defenses to infringement that may otherwise be available to you under applicablepatent law

12 No Surrender of Othersrsquo Freedom

If conditions are imposed on you (whether by court order agreement or otherwise) thatcontradict the conditions of this License they do not excuse you from the conditionsof this License If you cannot convey a covered work so as to satisfy simultaneouslyyour obligations under this License and any other pertinent obligations then as aconsequence you may not convey it at all For example if you agree to terms thatobligate you to collect a royalty for further conveying from those to whom you conveythe Program the only way you could satisfy both those terms and this License wouldbe to refrain entirely from conveying the Program

13 Remote Network Interaction Use with the GNU General Public License

Notwithstanding any other provision of this License if you modify the Program yourmodified version must prominently offer all users interacting with it remotely througha network (if your version supports such interaction) an opportunity to receive theCorresponding Source of your version by providing access to the Corresponding Sourcefrom a network server at no charge through some standard or customary means offacilitating copying of software This Corresponding Source shall include the Corre-sponding Source for any work covered by version 3 of the GNU General Public Licensethat is incorporated pursuant to the following paragraph

Notwithstanding any other provision of this License you have permission to link orcombine any covered work with a work licensed under version 3 of the GNU GeneralPublic License into a single combined work and to convey the resulting work Theterms of this License will continue to apply to the part which is the covered work butthe work with which it is combined will remain governed by version 3 of the GNUGeneral Public License

14 Revised Versions of this License

The Free Software Foundation may publish revised andor new versions of the GNUAffero General Public License from time to time Such new versions will be similar

Licenses 113

in spirit to the present version but may differ in detail to address new problems orconcernsEach version is given a distinguishing version number If the Program specifies thata certain numbered version of the GNU Affero General Public License ldquoor any laterversionrdquo applies to it you have the option of following the terms and conditions ei-ther of that numbered version or of any later version published by the Free SoftwareFoundation If the Program does not specify a version number of the GNU Affero Gen-eral Public License you may choose any version ever published by the Free SoftwareFoundationIf the Program specifies that a proxy can decide which future versions of the GNU AfferoGeneral Public License can be used that proxyrsquos public statement of acceptance of aversion permanently authorizes you to choose that version for the ProgramLater license versions may give you additional or different permissions However noadditional obligations are imposed on any author or copyright holder as a result of yourchoosing to follow a later version

15 Disclaimer of WarrantyTHERE IS NO WARRANTY FOR THE PROGRAM TO THE EXTENT PER-MITTED BY APPLICABLE LAW EXCEPT WHEN OTHERWISE STATED INWRITING THE COPYRIGHT HOLDERS ANDOR OTHER PARTIES PROVIDETHE PROGRAM ldquoAS ISrdquo WITHOUT WARRANTY OF ANY KIND EITHER EX-PRESSED OR IMPLIED INCLUDING BUT NOT LIMITED TO THE IMPLIEDWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULARPURPOSE THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCEOF THE PROGRAM IS WITH YOU SHOULD THE PROGRAM PROVE DEFEC-TIVE YOU ASSUME THE COST OF ALL NECESSARY SERVICING REPAIR ORCORRECTION

16 Limitation of LiabilityIN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO INWRITING WILL ANY COPYRIGHT HOLDER OR ANY OTHER PARTY WHOMODIFIES ANDOR CONVEYS THE PROGRAM AS PERMITTED ABOVE BELIABLE TO YOU FOR DAMAGES INCLUDING ANY GENERAL SPECIAL IN-CIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE ORINABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TOLOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUS-TAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAMTO OPERATE WITH ANY OTHER PROGRAMS) EVEN IF SUCH HOLDER OROTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAM-AGES

17 Interpretation of Sections 15 and 16If the disclaimer of warranty and limitation of liability provided above cannot be givenlocal legal effect according to their terms reviewing courts shall apply local law thatmost closely approximates an absolute waiver of all civil liability in connection withthe Program unless a warranty or assumption of liability accompanies a copy of theProgram in return for a fee

END OF TERMS AND CONDITIONS

114 OpenSS7 SS7 Stack

How to Apply These Terms to Your New Programs

If you develop a new program and you want it to be of the greatest possible use to the publicthe best way to achieve this is to make it free software which everyone can redistribute andchange under these termsTo do so attach the following notices to the program It is safest to attach them to thestart of each source file to most effectively state the exclusion of warranty and each fileshould have at least the ldquocopyrightrdquo line and a pointer to where the full notice is found

one line to give the programrsquos name and a brief idea of what it does

Copyright (C) year name of author

This program is free software you can redistribute it andor modify

it under the terms of the GNU Affero General Public License as published by

the Free Software Foundation either version 3 of the License or (at

your option) any later version

This program is distributed in the hope that it will be useful but

WITHOUT ANY WARRANTY without even the implied warranty of

MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE See the GNU

Affero General Public License for more details

You should have received a copy of the GNU Affero General Public License

along with this program If not see httpwwwgnuorglicenses

Also add information on how to contact you by electronic and paper mailIf your software can interact with users remotely through a network you should also makesure that it provides a way for users to get its source For example if your program is aweb application its interface could display a ldquoSourcerdquo link that leads users to an archive ofthe code There are many ways you could offer source and different solutions will be betterfor different programs see section 13 for the specific requirementsYou should also get your employer (if you work as a programmer) or school if any to signa ldquocopyright disclaimerrdquo for the program if necessary For more information on this andhow to apply and follow the GNU AGPL see httpwwwgnuorglicenses

Licenses 115

GNU General Public License

GNU GENERAL PUBLIC LICENSEVersion 3 29 June 2007

Copyright ccopy 2007 Free Software Foundation Inc httpfsforg

Everyone is permitted to copy and distribute verbatim copies of thislicense document but changing it is not allowed

Preamble

The GNU General Public License is a free copyleft license for software and other kinds ofworks

The licenses for most software and other practical works are designed to take away yourfreedom to share and change the works By contrast the GNU General Public License isintended to guarantee your freedom to share and change all versions of a programndashto makesure it remains free software for all its users We the Free Software Foundation use theGNU General Public License for most of our software it applies also to any other workreleased this way by its authors You can apply it to your programs too

When we speak of free software we are referring to freedom not price Our General PublicLicenses are designed to make sure that you have the freedom to distribute copies of freesoftware (and charge for them if you wish) that you receive source code or can get it if youwant it that you can change the software or use pieces of it in new free programs and thatyou know you can do these things

To protect your rights we need to prevent others from denying you these rights or askingyou to surrender the rights Therefore you have certain responsibilities if you distributecopies of the software or if you modify it responsibilities to respect the freedom of others

For example if you distribute copies of such a program whether gratis or for a fee youmust pass on to the recipients the same freedoms that you received You must make surethat they too receive or can get the source code And you must show them these terms sothey know their rights

Developers that use the GNU GPL protect your rights with two steps (1) assert copyrighton the software and (2) offer you this License giving you legal permission to copy distributeandor modify it

For the developersrsquo and authorsrsquo protection the GPL clearly explains that there is nowarranty for this free software For both usersrsquo and authorsrsquo sake the GPL requires thatmodified versions be marked as changed so that their problems will not be attributederroneously to authors of previous versions

Some devices are designed to deny users access to install or run modified versions of thesoftware inside them although the manufacturer can do so This is fundamentally incom-patible with the aim of protecting usersrsquo freedom to change the software The systematicpattern of such abuse occurs in the area of products for individuals to use which is pre-cisely where it is most unacceptable Therefore we have designed this version of the GPLto prohibit the practice for those products If such problems arise substantially in other

116 OpenSS7 SS7 Stack

domains we stand ready to extend this provision to those domains in future versions of theGPL as needed to protect the freedom of users

Finally every program is threatened constantly by software patents States should not allowpatents to restrict development and use of software on general-purpose computers but inthose that do we wish to avoid the special danger that patents applied to a free programcould make it effectively proprietary To prevent this the GPL assures that patents cannotbe used to render the program non-free

The precise terms and conditions for copying distribution and modification follow

Terms and Conditions

0 DefinitionsldquoThis Licenserdquo refers to version 3 of the GNU General Public LicenseldquoCopyrightrdquo also means copyright-like laws that apply to other kinds of works such assemiconductor masksldquoThe Programrdquo refers to any copyrightable work licensed under this License Eachlicensee is addressed as ldquoyourdquo ldquoLicenseesrdquo and ldquorecipientsrdquo may be individuals ororganizationsTo ldquomodifyrdquo a work means to copy from or adapt all or part of the work in a fashionrequiring copyright permission other than the making of an exact copy The resultingwork is called a ldquomodified versionrdquo of the earlier work or a work ldquobased onrdquo the earlierworkA ldquocovered workrdquo means either the unmodified Program or a work based on the Pro-gramTo ldquopropagaterdquo a work means to do anything with it that without permission wouldmake you directly or secondarily liable for infringement under applicable copyright lawexcept executing it on a computer or modifying a private copy Propagation includescopying distribution (with or without modification) making available to the publicand in some countries other activities as wellTo ldquoconveyrdquo a work means any kind of propagation that enables other parties to makeor receive copies Mere interaction with a user through a computer network with notransfer of a copy is not conveyingAn interactive user interface displays ldquoAppropriate Legal Noticesrdquo to the extent that itincludes a convenient and prominently visible feature that (1) displays an appropriatecopyright notice and (2) tells the user that there is no warranty for the work (exceptto the extent that warranties are provided) that licensees may convey the work underthis License and how to view a copy of this License If the interface presents a listof user commands or options such as a menu a prominent item in the list meets thiscriterion

1 Source CodeThe ldquosource coderdquo for a work means the preferred form of the work for making modi-fications to it ldquoObject coderdquo means any non-source form of a workA ldquoStandard Interfacerdquo means an interface that either is an official standard definedby a recognized standards body or in the case of interfaces specified for a particular

Licenses 117

programming language one that is widely used among developers working in thatlanguage

The ldquoSystem Librariesrdquo of an executable work include anything other than the work asa whole that (a) is included in the normal form of packaging a Major Component butwhich is not part of that Major Component and (b) serves only to enable use of thework with that Major Component or to implement a Standard Interface for which animplementation is available to the public in source code form A ldquoMajor Componentrdquoin this context means a major essential component (kernel window system and soon) of the specific operating system (if any) on which the executable work runs or acompiler used to produce the work or an object code interpreter used to run it

The ldquoCorresponding Sourcerdquo for a work in object code form means all the source codeneeded to generate install and (for an executable work) run the object code and tomodify the work including scripts to control those activities However it does notinclude the workrsquos System Libraries or general-purpose tools or generally availablefree programs which are used unmodified in performing those activities but which arenot part of the work For example Corresponding Source includes interface definitionfiles associated with source files for the work and the source code for shared librariesand dynamically linked subprograms that the work is specifically designed to requiresuch as by intimate data communication or control flow between those subprogramsand other parts of the work

The Corresponding Source need not include anything that users can regenerate auto-matically from other parts of the Corresponding Source

The Corresponding Source for a work in source code form is that same work

2 Basic Permissions

All rights granted under this License are granted for the term of copyright on theProgram and are irrevocable provided the stated conditions are met This License ex-plicitly affirms your unlimited permission to run the unmodified Program The outputfrom running a covered work is covered by this License only if the output given itscontent constitutes a covered work This License acknowledges your rights of fair useor other equivalent as provided by copyright law

You may make run and propagate covered works that you do not convey withoutconditions so long as your license otherwise remains in force You may convey coveredworks to others for the sole purpose of having them make modifications exclusivelyfor you or provide you with facilities for running those works provided that youcomply with the terms of this License in conveying all material for which you do notcontrol copyright Those thus making or running the covered works for you must doso exclusively on your behalf under your direction and control on terms that prohibitthem from making any copies of your copyrighted material outside their relationshipwith you

Conveying under any other circumstances is permitted solely under the conditionsstated below Sublicensing is not allowed section 10 makes it unnecessary

3 Protecting Usersrsquo Legal Rights From Anti-Circumvention Law

No covered work shall be deemed part of an effective technological measure underany applicable law fulfilling obligations under article 11 of the WIPO copyright treaty

118 OpenSS7 SS7 Stack

adopted on 20 December 1996 or similar laws prohibiting or restricting circumventionof such measures

When you convey a covered work you waive any legal power to forbid circumvention oftechnological measures to the extent such circumvention is effected by exercising rightsunder this License with respect to the covered work and you disclaim any intentionto limit operation or modification of the work as a means of enforcing against theworkrsquos users your or third partiesrsquo legal rights to forbid circumvention of technologicalmeasures

4 Conveying Verbatim Copies

You may convey verbatim copies of the Programrsquos source code as you receive it in anymedium provided that you conspicuously and appropriately publish on each copy anappropriate copyright notice keep intact all notices stating that this License and anynon-permissive terms added in accord with section 7 apply to the code keep intact allnotices of the absence of any warranty and give all recipients a copy of this Licensealong with the Program

You may charge any price or no price for each copy that you convey and you may offersupport or warranty protection for a fee

5 Conveying Modified Source Versions

You may convey a work based on the Program or the modifications to produce it fromthe Program in the form of source code under the terms of section 4 provided thatyou also meet all of these conditions

a The work must carry prominent notices stating that you modified it and giving arelevant date

b The work must carry prominent notices stating that it is released under this Li-cense and any conditions added under section 7 This requirement modifies therequirement in section 4 to ldquokeep intact all noticesrdquo

c You must license the entire work as a whole under this License to anyone whocomes into possession of a copy This License will therefore apply along with anyapplicable section 7 additional terms to the whole of the work and all its partsregardless of how they are packaged This License gives no permission to licensethe work in any other way but it does not invalidate such permission if you haveseparately received it

d If the work has interactive user interfaces each must display Appropriate LegalNotices however if the Program has interactive interfaces that do not displayAppropriate Legal Notices your work need not make them do so

A compilation of a covered work with other separate and independent works whichare not by their nature extensions of the covered work and which are not combinedwith it such as to form a larger program in or on a volume of a storage or distributionmedium is called an ldquoaggregaterdquo if the compilation and its resulting copyright arenot used to limit the access or legal rights of the compilationrsquos users beyond what theindividual works permit Inclusion of a covered work in an aggregate does not causethis License to apply to the other parts of the aggregate

6 Conveying Non-Source Forms

Licenses 119

You may convey a covered work in object code form under the terms of sections 4 and5 provided that you also convey the machine-readable Corresponding Source underthe terms of this License in one of these waysa Convey the object code in or embodied in a physical product (including a phys-

ical distribution medium) accompanied by the Corresponding Source fixed on adurable physical medium customarily used for software interchange

b Convey the object code in or embodied in a physical product (including a physi-cal distribution medium) accompanied by a written offer valid for at least threeyears and valid for as long as you offer spare parts or customer support for thatproduct model to give anyone who possesses the object code either (1) a copy ofthe Corresponding Source for all the software in the product that is covered by thisLicense on a durable physical medium customarily used for software interchangefor a price no more than your reasonable cost of physically performing this con-veying of source or (2) access to copy the Corresponding Source from a networkserver at no charge

c Convey individual copies of the object code with a copy of the written offer toprovide the Corresponding Source This alternative is allowed only occasionallyand noncommercially and only if you received the object code with such an offerin accord with subsection 6b

d Convey the object code by offering access from a designated place (gratis or fora charge) and offer equivalent access to the Corresponding Source in the sameway through the same place at no further charge You need not require recipientsto copy the Corresponding Source along with the object code If the place tocopy the object code is a network server the Corresponding Source may be ona different server (operated by you or a third party) that supports equivalentcopying facilities provided you maintain clear directions next to the object codesaying where to find the Corresponding Source Regardless of what server hoststhe Corresponding Source you remain obligated to ensure that it is available foras long as needed to satisfy these requirements

e Convey the object code using peer-to-peer transmission provided you inform otherpeers where the object code and Corresponding Source of the work are being offeredto the general public at no charge under subsection 6d

A separable portion of the object code whose source code is excluded from the Cor-responding Source as a System Library need not be included in conveying the objectcode workA ldquoUser Productrdquo is either (1) a ldquoconsumer productrdquo which means any tangible per-sonal property which is normally used for personal family or household purposes or(2) anything designed or sold for incorporation into a dwelling In determining whethera product is a consumer product doubtful cases shall be resolved in favor of coverageFor a particular product received by a particular user ldquonormally usedrdquo refers to atypical or common use of that class of product regardless of the status of the par-ticular user or of the way in which the particular user actually uses or expects or isexpected to use the product A product is a consumer product regardless of whetherthe product has substantial commercial industrial or non-consumer uses unless suchuses represent the only significant mode of use of the product

120 OpenSS7 SS7 Stack

ldquoInstallation Informationrdquo for a User Product means any methods procedures autho-rization keys or other information required to install and execute modified versions of acovered work in that User Product from a modified version of its Corresponding SourceThe information must suffice to ensure that the continued functioning of the modifiedobject code is in no case prevented or interfered with solely because modification hasbeen madeIf you convey an object code work under this section in or with or specifically foruse in a User Product and the conveying occurs as part of a transaction in whichthe right of possession and use of the User Product is transferred to the recipient inperpetuity or for a fixed term (regardless of how the transaction is characterized)the Corresponding Source conveyed under this section must be accompanied by theInstallation Information But this requirement does not apply if neither you nor anythird party retains the ability to install modified object code on the User Product (forexample the work has been installed in ROM)The requirement to provide Installation Information does not include a requirementto continue to provide support service warranty or updates for a work that has beenmodified or installed by the recipient or for the User Product in which it has beenmodified or installed Access to a network may be denied when the modification itselfmaterially and adversely affects the operation of the network or violates the rules andprotocols for communication across the networkCorresponding Source conveyed and Installation Information provided in accord withthis section must be in a format that is publicly documented (and with an implementa-tion available to the public in source code form) and must require no special passwordor key for unpacking reading or copying

7 Additional TermsldquoAdditional permissionsrdquo are terms that supplement the terms of this License by mak-ing exceptions from one or more of its conditions Additional permissions that areapplicable to the entire Program shall be treated as though they were included in thisLicense to the extent that they are valid under applicable law If additional permis-sions apply only to part of the Program that part may be used separately under thosepermissions but the entire Program remains governed by this License without regardto the additional permissionsWhen you convey a copy of a covered work you may at your option remove anyadditional permissions from that copy or from any part of it (Additional permissionsmay be written to require their own removal in certain cases when you modify thework) You may place additional permissions on material added by you to a coveredwork for which you have or can give appropriate copyright permissionNotwithstanding any other provision of this License for material you add to a coveredwork you may (if authorized by the copyright holders of that material) supplementthe terms of this License with termsa Disclaiming warranty or limiting liability differently from the terms of sections 15

and 16 of this License orb Requiring preservation of specified reasonable legal notices or author attributions

in that material or in the Appropriate Legal Notices displayed by works containingit or

Licenses 121

c Prohibiting misrepresentation of the origin of that material or requiring that mod-ified versions of such material be marked in reasonable ways as different from theoriginal version or

d Limiting the use for publicity purposes of names of licensors or authors of thematerial or

e Declining to grant rights under trademark law for use of some trade names trade-marks or service marks or

f Requiring indemnification of licensors and authors of that material by anyone whoconveys the material (or modified versions of it) with contractual assumptionsof liability to the recipient for any liability that these contractual assumptionsdirectly impose on those licensors and authors

All other non-permissive additional terms are considered ldquofurther restrictionsrdquo withinthe meaning of section 10 If the Program as you received it or any part of it con-tains a notice stating that it is governed by this License along with a term that is afurther restriction you may remove that term If a license document contains a furtherrestriction but permits relicensing or conveying under this License you may add to acovered work material governed by the terms of that license document provided thatthe further restriction does not survive such relicensing or conveying

If you add terms to a covered work in accord with this section you must place in therelevant source files a statement of the additional terms that apply to those files or anotice indicating where to find the applicable terms

Additional terms permissive or non-permissive may be stated in the form of a sep-arately written license or stated as exceptions the above requirements apply eitherway

8 Termination

You may not propagate or modify a covered work except as expressly provided un-der this License Any attempt otherwise to propagate or modify it is void and willautomatically terminate your rights under this License (including any patent licensesgranted under the third paragraph of section 11)

However if you cease all violation of this License then your license from a particularcopyright holder is reinstated (a) provisionally unless and until the copyright holderexplicitly and finally terminates your license and (b) permanently if the copyrightholder fails to notify you of the violation by some reasonable means prior to 60 daysafter the cessation

Moreover your license from a particular copyright holder is reinstated permanently ifthe copyright holder notifies you of the violation by some reasonable means this is thefirst time you have received notice of violation of this License (for any work) from thatcopyright holder and you cure the violation prior to 30 days after your receipt of thenotice

Termination of your rights under this section does not terminate the licenses of partieswho have received copies or rights from you under this License If your rights havebeen terminated and not permanently reinstated you do not qualify to receive newlicenses for the same material under section 10

122 OpenSS7 SS7 Stack

9 Acceptance Not Required for Having CopiesYou are not required to accept this License in order to receive or run a copy of theProgram Ancillary propagation of a covered work occurring solely as a consequence ofusing peer-to-peer transmission to receive a copy likewise does not require acceptanceHowever nothing other than this License grants you permission to propagate or modifyany covered work These actions infringe copyright if you do not accept this LicenseTherefore by modifying or propagating a covered work you indicate your acceptanceof this License to do so

10 Automatic Licensing of Downstream RecipientsEach time you convey a covered work the recipient automatically receives a licensefrom the original licensors to run modify and propagate that work subject to thisLicense You are not responsible for enforcing compliance by third parties with thisLicenseAn ldquoentity transactionrdquo is a transaction transferring control of an organization orsubstantially all assets of one or subdividing an organization or merging organizationsIf propagation of a covered work results from an entity transaction each party to thattransaction who receives a copy of the work also receives whatever licenses to the workthe partyrsquos predecessor in interest had or could give under the previous paragraph plusa right to possession of the Corresponding Source of the work from the predecessor ininterest if the predecessor has it or can get it with reasonable effortsYou may not impose any further restrictions on the exercise of the rights granted oraffirmed under this License For example you may not impose a license fee royalty orother charge for exercise of rights granted under this License and you may not initiatelitigation (including a cross-claim or counterclaim in a lawsuit) alleging that any patentclaim is infringed by making using selling offering for sale or importing the Programor any portion of it

11 PatentsA ldquocontributorrdquo is a copyright holder who authorizes use under this License of theProgram or a work on which the Program is based The work thus licensed is calledthe contributorrsquos ldquocontributor versionrdquoA contributorrsquos ldquoessential patent claimsrdquo are all patent claims owned or controlled bythe contributor whether already acquired or hereafter acquired that would be infringedby some manner permitted by this License of making using or selling its contributorversion but do not include claims that would be infringed only as a consequence offurther modification of the contributor version For purposes of this definition ldquocon-trolrdquo includes the right to grant patent sublicenses in a manner consistent with therequirements of this LicenseEach contributor grants you a non-exclusive worldwide royalty-free patent licenseunder the contributorrsquos essential patent claims to make use sell offer for sale importand otherwise run modify and propagate the contents of its contributor versionIn the following three paragraphs a ldquopatent licenserdquo is any express agreement or com-mitment however denominated not to enforce a patent (such as an express permissionto practice a patent or covenant not to sue for patent infringement) To ldquograntrdquo sucha patent license to a party means to make such an agreement or commitment not toenforce a patent against the party

Licenses 123

If you convey a covered work knowingly relying on a patent license and the Corre-sponding Source of the work is not available for anyone to copy free of charge and underthe terms of this License through a publicly available network server or other readilyaccessible means then you must either (1) cause the Corresponding Source to be soavailable or (2) arrange to deprive yourself of the benefit of the patent license for thisparticular work or (3) arrange in a manner consistent with the requirements of thisLicense to extend the patent license to downstream recipients ldquoKnowingly relyingrdquomeans you have actual knowledge that but for the patent license your conveying thecovered work in a country or your recipientrsquos use of the covered work in a countrywould infringe one or more identifiable patents in that country that you have reasonto believe are valid

If pursuant to or in connection with a single transaction or arrangement you conveyor propagate by procuring conveyance of a covered work and grant a patent licenseto some of the parties receiving the covered work authorizing them to use propagatemodify or convey a specific copy of the covered work then the patent license you grantis automatically extended to all recipients of the covered work and works based on it

A patent license is ldquodiscriminatoryrdquo if it does not include within the scope of its cover-age prohibits the exercise of or is conditioned on the non-exercise of one or more of therights that are specifically granted under this License You may not convey a coveredwork if you are a party to an arrangement with a third party that is in the business ofdistributing software under which you make payment to the third party based on theextent of your activity of conveying the work and under which the third party grantsto any of the parties who would receive the covered work from you a discriminatorypatent license (a) in connection with copies of the covered work conveyed by you (orcopies made from those copies) or (b) primarily for and in connection with specificproducts or compilations that contain the covered work unless you entered into thatarrangement or that patent license was granted prior to 28 March 2007

Nothing in this License shall be construed as excluding or limiting any implied license orother defenses to infringement that may otherwise be available to you under applicablepatent law

12 No Surrender of Othersrsquo Freedom

If conditions are imposed on you (whether by court order agreement or otherwise) thatcontradict the conditions of this License they do not excuse you from the conditionsof this License If you cannot convey a covered work so as to satisfy simultaneouslyyour obligations under this License and any other pertinent obligations then as aconsequence you may not convey it at all For example if you agree to terms thatobligate you to collect a royalty for further conveying from those to whom you conveythe Program the only way you could satisfy both those terms and this License wouldbe to refrain entirely from conveying the Program

13 Use with the GNU Affero General Public License

Notwithstanding any other provision of this License you have permission to link orcombine any covered work with a work licensed under version 3 of the GNU AfferoGeneral Public License into a single combined work and to convey the resulting workThe terms of this License will continue to apply to the part which is the covered work

124 OpenSS7 SS7 Stack

but the special requirements of the GNU Affero General Public License section 13concerning interaction through a network will apply to the combination as such

14 Revised Versions of this LicenseThe Free Software Foundation may publish revised andor new versions of the GNUGeneral Public License from time to time Such new versions will be similar in spiritto the present version but may differ in detail to address new problems or concernsEach version is given a distinguishing version number If the Program specifies thata certain numbered version of the GNU General Public License ldquoor any later versionrdquoapplies to it you have the option of following the terms and conditions either of thatnumbered version or of any later version published by the Free Software FoundationIf the Program does not specify a version number of the GNU General Public Licenseyou may choose any version ever published by the Free Software FoundationIf the Program specifies that a proxy can decide which future versions of the GNUGeneral Public License can be used that proxyrsquos public statement of acceptance of aversion permanently authorizes you to choose that version for the ProgramLater license versions may give you additional or different permissions However noadditional obligations are imposed on any author or copyright holder as a result of yourchoosing to follow a later version

15 Disclaimer of WarrantyTHERE IS NO WARRANTY FOR THE PROGRAM TO THE EXTENT PER-MITTED BY APPLICABLE LAW EXCEPT WHEN OTHERWISE STATED INWRITING THE COPYRIGHT HOLDERS ANDOR OTHER PARTIES PROVIDETHE PROGRAM ldquoAS ISrdquo WITHOUT WARRANTY OF ANY KIND EITHER EX-PRESSED OR IMPLIED INCLUDING BUT NOT LIMITED TO THE IMPLIEDWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULARPURPOSE THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCEOF THE PROGRAM IS WITH YOU SHOULD THE PROGRAM PROVE DEFEC-TIVE YOU ASSUME THE COST OF ALL NECESSARY SERVICING REPAIR ORCORRECTION

16 Limitation of LiabilityIN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO INWRITING WILL ANY COPYRIGHT HOLDER OR ANY OTHER PARTY WHOMODIFIES ANDOR CONVEYS THE PROGRAM AS PERMITTED ABOVE BELIABLE TO YOU FOR DAMAGES INCLUDING ANY GENERAL SPECIAL IN-CIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE ORINABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TOLOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUS-TAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAMTO OPERATE WITH ANY OTHER PROGRAMS) EVEN IF SUCH HOLDER OROTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAM-AGES

17 Interpretation of Sections 15 and 16If the disclaimer of warranty and limitation of liability provided above cannot be givenlocal legal effect according to their terms reviewing courts shall apply local law thatmost closely approximates an absolute waiver of all civil liability in connection with

Licenses 125

the Program unless a warranty or assumption of liability accompanies a copy of theProgram in return for a fee

END OF TERMS AND CONDITIONS

126 OpenSS7 SS7 Stack

How to Apply These Terms to Your New Programs

If you develop a new program and you want it to be of the greatest possible use to the publicthe best way to achieve this is to make it free software which everyone can redistribute andchange under these termsTo do so attach the following notices to the program It is safest to attach them to thestart of each source file to most effectively state the exclusion of warranty and each fileshould have at least the ldquocopyrightrdquo line and a pointer to where the full notice is found

one line to give the programrsquos name and a brief idea of what it does

Copyright (C) year name of author

This program is free software you can redistribute it andor modify

it under the terms of the GNU General Public License as published by

the Free Software Foundation either version 3 of the License or (at

your option) any later version

This program is distributed in the hope that it will be useful but

WITHOUT ANY WARRANTY without even the implied warranty of

MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE See the GNU

General Public License for more details

You should have received a copy of the GNU General Public License

along with this program If not see httpwwwgnuorglicenses

Also add information on how to contact you by electronic and paper mailIf the program does terminal interaction make it output a short notice like this when itstarts in an interactive mode

program Copyright (C) year name of author

This program comes with ABSOLUTELY NO WARRANTY for details type lsquoshow wrsquo

This is free software and you are welcome to redistribute it

under certain conditions type lsquoshow crsquo for details

The hypothetical commands lsquoshow wrsquo and lsquoshow crsquo should show the appropriate parts of theGeneral Public License Of course your programrsquos commands might be different for a GUIinterface you would use an ldquoabout boxrdquoYou should also get your employer (if you work as a programmer) or school if any to signa ldquocopyright disclaimerrdquo for the program if necessary For more information on this andhow to apply and follow the GNU GPL see httpwwwgnuorglicensesThe GNU General Public License does not permit incorporating your program into propri-etary programs If your program is a subroutine library you may consider it more usefulto permit linking proprietary applications with the library If this is what you want to douse the GNU Lesser General Public License instead of this License But first please readhttpwwwgnuorgphilosophywhy-not-lgplhtml

Licenses 127

GNU Lesser General Public License

GNU LESSER GENERAL PUBLIC LICENSEVersion 3 29 June 2007

Copyright ccopy 2007 Free Software Foundation Inc httpfsforg

Everyone is permitted to copy and distribute verbatim copies of thislicense document but changing it is not allowed

Terms and Conditions

This version of the GNU Lesser General Public License incorporates the terms and con-ditions of version 3 of the GNU General Public License supplemented by the additionalpermissions listed below0 Additional Definitions

As used herein ldquothis Licenserdquo refers to version 3 of the GNU Lesser General PublicLicense and the ldquoGNU GPLrdquo refers to version 3 of the GNU General Public LicenseldquoThe Libraryrdquo refers to a covered work governed by this License other than an Appli-cation or a Combined Work as defined belowAn ldquoApplicationrdquo is any work that makes use of an interface provided by the Librarybut which is not otherwise based on the Library Defining a subclass of a class definedby the Library is deemed a mode of using an interface provided by the LibraryA ldquoCombined Workrdquo is a work produced by combining or linking an Application withthe Library The particular version of the Library with which the Combined Work wasmade is also called the ldquoLinked VersionrdquoThe ldquoMinimal Corresponding Sourcerdquo for a Combined Work means the CorrespondingSource for the Combined Work excluding any source code for portions of the CombinedWork that considered in isolation are based on the Application and not on the LinkedVersionThe ldquoCorresponding Application Coderdquo for a Combined Work means the object codeandor source code for the Application including any data and utility programs neededfor reproducing the Combined Work from the Application but excluding the SystemLibraries of the Combined Work

1 Exception to Section 3 of the GNU GPLYou may convey a covered work under sections 3 and 4 of this License without beingbound by section 3 of the GNU GPL

2 Conveying Modified VersionsIf you modify a copy of the Library and in your modifications a facility refers to afunction or data to be supplied by an Application that uses the facility (other than asan argument passed when the facility is invoked) then you may convey a copy of themodified versiona under this License provided that you make a good faith effort to ensure that in

the event an Application does not supply the function or data the facility stilloperates and performs whatever part of its purpose remains meaningful or

128 OpenSS7 SS7 Stack

b under the GNU GPL with none of the additional permissions of this Licenseapplicable to that copy

3 Object Code Incorporating Material from Library Header FilesThe object code form of an Application may incorporate material from a header file thatis part of the Library You may convey such object code under terms of your choiceprovided that if the incorporated material is not limited to numerical parameters datastructure layouts and accessors or small macros inline functions and templates (tenor fewer lines in length) you do both of the followinga Give prominent notice with each copy of the object code that the Library is used

in it and that the Library and its use are covered by this Licenseb Accompany the object code with a copy of the GNU GPL and this license docu-

ment4 Combined Works

You may convey a Combined Work under terms of your choice that taken togethereffectively do not restrict modification of the portions of the Library contained in theCombined Work and reverse engineering for debugging such modifications if you alsodo each of the followinga Give prominent notice with each copy of the Combined Work that the Library is

used in it and that the Library and its use are covered by this Licenseb Accompany the Combined Work with a copy of the GNU GPL and this license

documentc For a Combined Work that displays copyright notices during execution include

the copyright notice for the Library among these notices as well as a referencedirecting the user to the copies of the GNU GPL and this license document

d Do one of the following0 Convey the Minimal Corresponding Source under the terms of this License

and the Corresponding Application Code in a form suitable for and underterms that permit the user to recombine or relink the Application with a mod-ified version of the Linked Version to produce a modified Combined Work inthe manner specified by section 6 of the GNU GPL for conveying Correspond-ing Source

1 Use a suitable shared library mechanism for linking with the Library Asuitable mechanism is one that (a) uses at run time a copy of the Libraryalready present on the userrsquos computer system and (b) will operate properlywith a modified version of the Library that is interface-compatible with theLinked Version

e Provide Installation Information but only if you would otherwise be required toprovide such information under section 6 of the GNU GPL and only to the extentthat such information is necessary to install and execute a modified version ofthe Combined Work produced by recombining or relinking the Application witha modified version of the Linked Version (If you use option 4d0 the InstallationInformation must accompany the Minimal Corresponding Source and Correspond-ing Application Code If you use option 4d1 you must provide the InstallationInformation in the manner specified by section 6 of the GNU GPL for conveyingCorresponding Source)

Licenses 129

5 Combined LibrariesYou may place library facilities that are a work based on the Library side by side ina single library together with other library facilities that are not Applications and arenot covered by this License and convey such a combined library under terms of yourchoice if you do both of the followinga Accompany the combined library with a copy of the same work based on the

Library uncombined with any other library facilities conveyed under the terms ofthis License

b Give prominent notice with the combined library that part of it is a work basedon the Library and explaining where to find the accompanying uncombined formof the same work

6 Revised Versions of the GNU Lesser General Public LicenseThe Free Software Foundation may publish revised andor new versions of the GNULesser General Public License from time to time Such new versions will be similarin spirit to the present version but may differ in detail to address new problems orconcernsEach version is given a distinguishing version number If the Library as you receivedit specifies that a certain numbered version of the GNU Lesser General Public Licenseldquoor any later versionrdquo applies to it you have the option of following the terms andconditions either of that published version or of any later version published by theFree Software Foundation If the Library as you received it does not specify a versionnumber of the GNU Lesser General Public License you may choose any version of theGNU Lesser General Public License ever published by the Free Software FoundationIf the Library as you received it specifies that a proxy can decide whether future versionsof the GNU Lesser General Public License shall apply that proxyrsquos public statementof acceptance of any version is permanent authorization for you to choose that versionfor the Library

END OF TERMS AND CONDITIONS

130 OpenSS7 SS7 Stack

GNU Free Documentation License

GNU FREE DOCUMENTATION LICENSEVersion 11 March 2000

Copyright ccopy 2000 Free Software Foundation Inc59 Temple Place Suite 330 Boston MA 02111-1307 USA

Everyone is permitted to copy and distribute verbatim copiesof this license document but changing it is not allowed

Preamble

The purpose of this License is to make a manual textbook or other written document freein the sense of freedom to assure everyone the effective freedom to copy and redistributeit with or without modifying it either commercially or noncommercially Secondarily thisLicense preserves for the author and publisher a way to get credit for their work while notbeing considered responsible for modifications made by others

This License is a kind of ldquocopyleftrdquo which means that derivative works of the documentmust themselves be free in the same sense It complements the GNU General Public Licensewhich is a copyleft license designed for free software

We have designed this License in order to use it for manuals for free software because freesoftware needs free documentation a free program should come with manuals providing thesame freedoms that the software does But this License is not limited to software manualsit can be used for any textual work regardless of subject matter or whether it is publishedas a printed book We recommend this License principally for works whose purpose isinstruction or reference

Terms and Conditions for Copying Distribution and Modification

1 APPLICABILITY AND DEFINITIONS

This License applies to any manual or other work that contains a notice placed bythe copyright holder saying it can be distributed under the terms of this License TheldquoDocumentrdquo below refers to any such manual or work Any member of the public isa licensee and is addressed as ldquoyourdquo

A ldquoModified Versionrdquo of the Document means any work containing the Document ora portion of it either copied verbatim or with modifications andor translated intoanother language

A ldquoSecondary Sectionrdquo is a named appendix or a front-matter section of the Documentthat deals exclusively with the relationship of the publishers or authors of the Documentto the Documentrsquos overall subject (or to related matters) and contains nothing thatcould fall directly within that overall subject (For example if the Document is in part atextbook of mathematics a Secondary Section may not explain any mathematics) Therelationship could be a matter of historical connection with the subject or with relatedmatters or of legal commercial philosophical ethical or political position regardingthem

Licenses 131

The ldquoInvariant Sectionsrdquo are certain Secondary Sections whose titles are designated asbeing those of Invariant Sections in the notice that says that the Document is releasedunder this LicenseThe ldquoCover Textsrdquo are certain short passages of text that are listed as Front-CoverTexts or Back-Cover Texts in the notice that says that the Document is released underthis LicenseA ldquoTransparentrdquo copy of the Document means a machine-readable copy representedin a format whose specification is available to the general public whose contents canbe viewed and edited directly and straightforwardly with generic text editors or (forimages composed of pixels) generic paint programs or (for drawings) some widely avail-able drawing editor and that is suitable for input to text formatters or for automatictranslation to a variety of formats suitable for input to text formatters A copy madein an otherwise Transparent file format whose markup has been designed to thwart ordiscourage subsequent modification by readers is not Transparent A copy that is notldquoTransparentrdquo is called ldquoOpaquerdquoExamples of suitable formats for Transparent copies include plain ascii withoutmarkup Texinfo input format LaTEX input format SGML or XML using apublicly available DTD and standard-conforming simple HTML designed for humanmodification Opaque formats include PostScript PDF proprietary formats that canbe read and edited only by proprietary word processors SGML or XML for which theDTD andor processing tools are not generally available and the machine-generatedHTML produced by some word processors for output purposes onlyThe ldquoTitle Pagerdquo means for a printed book the title page itself plus such followingpages as are needed to hold legibly the material this License requires to appear in thetitle page For works in formats which do not have any title page as such ldquoTitle Pagerdquomeans the text near the most prominent appearance of the workrsquos title preceding thebeginning of the body of the text

2 VERBATIM COPYINGYou may copy and distribute the Document in any medium either commercially ornoncommercially provided that this License the copyright notices and the licensenotice saying this License applies to the Document are reproduced in all copies andthat you add no other conditions whatsoever to those of this License You may not usetechnical measures to obstruct or control the reading or further copying of the copiesyou make or distribute However you may accept compensation in exchange for copiesIf you distribute a large enough number of copies you must also follow the conditionsin section 3You may also lend copies under the same conditions stated above and you may publiclydisplay copies

3 COPYING IN QUANTITYIf you publish printed copies of the Document numbering more than 100 and theDocumentrsquos license notice requires Cover Texts you must enclose the copies in coversthat carry clearly and legibly all these Cover Texts Front-Cover Texts on the frontcover and Back-Cover Texts on the back cover Both covers must also clearly andlegibly identify you as the publisher of these copies The front cover must present thefull title with all words of the title equally prominent and visible You may add other

132 OpenSS7 SS7 Stack

material on the covers in addition Copying with changes limited to the covers as longas they preserve the title of the Document and satisfy these conditions can be treatedas verbatim copying in other respectsIf the required texts for either cover are too voluminous to fit legibly you should putthe first ones listed (as many as fit reasonably) on the actual cover and continue therest onto adjacent pagesIf you publish or distribute Opaque copies of the Document numbering more than 100you must either include a machine-readable Transparent copy along with each Opaquecopy or state in or with each Opaque copy a publicly-accessible computer-networklocation containing a complete Transparent copy of the Document free of added ma-terial which the general network-using public has access to download anonymously atno charge using public-standard network protocols If you use the latter option youmust take reasonably prudent steps when you begin distribution of Opaque copiesin quantity to ensure that this Transparent copy will remain thus accessible at thestated location until at least one year after the last time you distribute an Opaquecopy (directly or through your agents or retailers) of that edition to the publicIt is requested but not required that you contact the authors of the Document wellbefore redistributing any large number of copies to give them a chance to provide youwith an updated version of the Document

4 MODIFICATIONSYou may copy and distribute a Modified Version of the Document under the conditionsof sections 2 and 3 above provided that you release the Modified Version under preciselythis License with the Modified Version filling the role of the Document thus licensingdistribution and modification of the Modified Version to whoever possesses a copy ofit In addition you must do these things in the Modified VersionA Use in the Title Page (and on the covers if any) a title distinct from that of the

Document and from those of previous versions (which should if there were anybe listed in the History section of the Document) You may use the same title asa previous version if the original publisher of that version gives permission

B List on the Title Page as authors one or more persons or entities responsible forauthorship of the modifications in the Modified Version together with at least fiveof the principal authors of the Document (all of its principal authors if it has lessthan five)

C State on the Title page the name of the publisher of the Modified Version as thepublisher

D Preserve all the copyright notices of the DocumentE Add an appropriate copyright notice for your modifications adjacent to the other

copyright noticesF Include immediately after the copyright notices a license notice giving the public

permission to use the Modified Version under the terms of this License in the formshown in the Addendum below

G Preserve in that license notice the full lists of Invariant Sections and required CoverTexts given in the Documentrsquos license notice

H Include an unaltered copy of this License

Licenses 133

I Preserve the section entitled ldquoHistoryrdquo and its title and add to it an item statingat least the title year new authors and publisher of the Modified Version asgiven on the Title Page If there is no section entitled ldquoHistoryrdquo in the Documentcreate one stating the title year authors and publisher of the Document as givenon its Title Page then add an item describing the Modified Version as stated inthe previous sentence

J Preserve the network location if any given in the Document for public access toa Transparent copy of the Document and likewise the network locations given inthe Document for previous versions it was based on These may be placed in theldquoHistoryrdquo section You may omit a network location for a work that was publishedat least four years before the Document itself or if the original publisher of theversion it refers to gives permission

K In any section entitled ldquoAcknowledgmentsrdquo or ldquoDedicationsrdquo preserve the sec-tionrsquos title and preserve in the section all the substance and tone of each of thecontributor acknowledgments andor dedications given therein

L Preserve all the Invariant Sections of the Document unaltered in their text andin their titles Section numbers or the equivalent are not considered part of thesection titles

M Delete any section entitled ldquoEndorsementsrdquo Such a section may not be includedin the Modified Version

N Do not retitle any existing section as ldquoEndorsementsrdquo or to conflict in title withany Invariant Section

If the Modified Version includes new front-matter sections or appendices that qualifyas Secondary Sections and contain no material copied from the Document you may atyour option designate some or all of these sections as invariant To do this add theirtitles to the list of Invariant Sections in the Modified Versionrsquos license notice Thesetitles must be distinct from any other section titlesYou may add a section entitled ldquoEndorsementsrdquo provided it contains nothing butendorsements of your Modified Version by various partiesmdashfor example statements ofpeer review or that the text has been approved by an organization as the authoritativedefinition of a standardYou may add a passage of up to five words as a Front-Cover Text and a passage of upto 25 words as a Back-Cover Text to the end of the list of Cover Texts in the ModifiedVersion Only one passage of Front-Cover Text and one of Back-Cover Text may beadded by (or through arrangements made by) any one entity If the Document alreadyincludes a cover text for the same cover previously added by you or by arrangementmade by the same entity you are acting on behalf of you may not add another butyou may replace the old one on explicit permission from the previous publisher thatadded the old oneThe author(s) and publisher(s) of the Document do not by this License give permissionto use their names for publicity for or to assert or imply endorsement of any ModifiedVersion

5 COMBINING DOCUMENTSYou may combine the Document with other documents released under this Licenseunder the terms defined in section 4 above for modified versions provided that you

134 OpenSS7 SS7 Stack

include in the combination all of the Invariant Sections of all of the original documentsunmodified and list them all as Invariant Sections of your combined work in its licensenoticeThe combined work need only contain one copy of this License and multiple identicalInvariant Sections may be replaced with a single copy If there are multiple InvariantSections with the same name but different contents make the title of each such sectionunique by adding at the end of it in parentheses the name of the original author orpublisher of that section if known or else a unique number Make the same adjustmentto the section titles in the list of Invariant Sections in the license notice of the combinedworkIn the combination you must combine any sections entitled ldquoHistoryrdquo in the variousoriginal documents forming one section entitled ldquoHistoryrdquo likewise combine any sec-tions entitled ldquoAcknowledgmentsrdquo and any sections entitled ldquoDedicationsrdquo You mustdelete all sections entitled ldquoEndorsementsrdquo

6 COLLECTIONS OF DOCUMENTSYou may make a collection consisting of the Document and other documents releasedunder this License and replace the individual copies of this License in the variousdocuments with a single copy that is included in the collection provided that youfollow the rules of this License for verbatim copying of each of the documents in allother respectsYou may extract a single document from such a collection and distribute it individu-ally under this License provided you insert a copy of this License into the extracteddocument and follow this License in all other respects regarding verbatim copying ofthat document

7 AGGREGATION WITH INDEPENDENT WORKSA compilation of the Document or its derivatives with other separate and independentdocuments or works in or on a volume of a storage or distribution medium does notas a whole count as a Modified Version of the Document provided no compilationcopyright is claimed for the compilation Such a compilation is called an ldquoaggregaterdquoand this License does not apply to the other self-contained works thus compiled withthe Document on account of their being thus compiled if they are not themselvesderivative works of the DocumentIf the Cover Text requirement of section 3 is applicable to these copies of the Documentthen if the Document is less than one quarter of the entire aggregate the DocumentrsquosCover Texts may be placed on covers that surround only the Document within theaggregate Otherwise they must appear on covers around the whole aggregate

8 TRANSLATIONTranslation is considered a kind of modification so you may distribute translationsof the Document under the terms of section 4 Replacing Invariant Sections withtranslations requires special permission from their copyright holders but you mayinclude translations of some or all Invariant Sections in addition to the original versionsof these Invariant Sections You may include a translation of this License provided thatyou also include the original English version of this License In case of a disagreementbetween the translation and the original English version of this License the originalEnglish version will prevail

Licenses 135

9 TERMINATIONYou may not copy modify sublicense or distribute the Document except as expresslyprovided for under this License Any other attempt to copy modify sublicense ordistribute the Document is void and will automatically terminate your rights underthis License However parties who have received copies or rights from you under thisLicense will not have their licenses terminated so long as such parties remain in fullcompliance

10 FUTURE REVISIONS OF THIS LICENSEThe Free Software Foundation may publish new revised versions of the GNU FreeDocumentation License from time to time Such new versions will be similar in spiritto the present version but may differ in detail to address new problems or concernsSee httpwwwgnuorgcopyleftEach version of the License is given a distinguishing version number If the Documentspecifies that a particular numbered version of this License ldquoor any later versionrdquoapplies to it you have the option of following the terms and conditions either of thatspecified version or of any later version that has been published (not as a draft) bythe Free Software Foundation If the Document does not specify a version number ofthis License you may choose any version ever published (not as a draft) by the FreeSoftware Foundation

END OF TERMS AND CONDITIONS

136 OpenSS7 SS7 Stack

How to use this License for your documents

To use this License in a document you have written include a copy of the License in thedocument and put the following copyright and license notices just after the title page

Copyright (C) year your name

Permission is granted to copy distribute andor modify this document

under the terms of the GNU Free Documentation License Version 11

or any later version published by the Free Software Foundation

with the Invariant Sections being list their titles with the

Front-Cover Texts being list and with the Back-Cover Texts being list

A copy of the license is included in the section entitled lsquolsquoGNU

Free Documentation Licensersquorsquo

If you have no Invariant Sections write ldquowith no Invariant Sectionsrdquo instead of saying whichones are invariant If you have no Front-Cover Texts write ldquono Front-Cover Textsrdquo insteadof ldquoFront-Cover Texts being listrdquo likewise for Back-Cover TextsIf your document contains nontrivial examples of program code we recommend releasingthese examples in parallel under your choice of free software license such as the GNUGeneral Public License to permit their use in free software

Indices 137

Indices

Index of Concepts

Aapplications 19apt 48 51Architectures 36authors 5

Bbinary debs 54 63 80binary rpms 51 62 79 80bug reports automatic generation 99bug reports generating 98bug reports stand along generation 100bugs 43bugs history 44bugs known 44bugs reporting 97building 77building source dscs 78building source srpm 77building tar ball 78

Ccheckout cvs 59compatibility 34configuration 61configure environment variables 74configure options 67configuring binary debs 63configuring binary rpms 62configuring source dscs 67configuring source srpm 63configuring tar ball 67conformance 31contributors 5conventions 16credits 4cvs 59

Ddefinitions 16device 28device drivers 28downloading 49downloading apt 51downloading binary rpms 51downloading debian debs 54downloading debian dscs 57downloading source srpm 57

downloading tar ball 58downloading yum 49drivers 28

Ggenerating bug reports 98 100generating bug reports automatically 99generating problem reports 98generating problem reports automatically 99generating problem reports stand alone 100GNULinux Distributions 34

Hhistory 46history bugs 44

Iindices 137installation 47installing 79installing binary debs 80installing binary rpms 79installing tar ball 80introduction 15

KKernel 36known bugs 44known problems 101

Llicense AGPL 104license FDL 130license GNU Affero General Public License 104license GNU Free Documentation License 130license GNU General Public License 115license GPL 115license Lesser General Public License 127license LGPL 127licenses 103licensing 1Linux Fast-STREAMS 37Linux STREAMS 37loading 81

138 OpenSS7 SS7 Stack

Mmaintainer 5manual abstract 1manual audience 1manual disclaimer 4manual intent 1manual notice 1manual objective 1manual revisions 2maturity 42

Oobjective 17organization 15overview 15

Ppost-installation checks 96pre-installation checks 93prerequisites 33problem reports 97problems known 101

Qquick start guide 9

Rreference 19release notes 37release strss7-09a-1 42release strss7-09a-2 41release strss7-09a-3 41release strss7-09a-4 41release strss7-09a5 40release strss7-09a6 39release strss7-09a7 38release strss7-09a8 37releases 33removing 80removing binary debs 80removing binary rpms 80removing source dscs 81removing source srpm 81

removing tar ball 81reporting bugs 97repositories 47repositories apt 48repositories yum 47

Sschedule 45source dscs 57 67 78 81source rpms 57 63 77 81sponsors 4ss7 protocol stack 20strss7-dev-09a8-172i686rpm 62strss7-devel-09a8-172i686rpm 62strss7-doc-09a8-172i686rpm 62strss7-LiS-core-2420-287-09a8-172i686rpm

62strss7-LiS-info-2420-287-09a8-172i686rpm

62strss7-LiS-lib-09a8-172i686rpm 62strss7-LiS-util-09a8-172i686rpm 63strss7-source-09a8-172i686rpm 63strss7-streams-core-2420-287-09a8-172i686-

rpm 62strss7-streams-info-2420-287-09a8-172i686-

rpm 62strss7-streams-lib-09a8-172i686rpm 62strss7-streams-util-09a8-172i686rpm 63

Ttar ball 58 67 78 80 81test suites 93test suites running 97troubleshooting 93

Wweb resources 6

Xx400p t400p t100p e400p e100p te405p te410p 29

Yyum 47 49

Indices 139

Index of Data Types

Aapt-get(8) 38

Y

yum(8) 38

140 OpenSS7 SS7 Stack

Index of Functions and Macros

(Index is nonexistent)

Indices 141

Index of Variables and Constants

AAUTOM4TE 77AUTOTEST 77

BBZIP2 75BZIP2_CMD 75

CCHKCONFIG 75

DDEB_BUILD_ARCH 75DEB_BUILD_GNU_CPU 76DEB_BUILD_GNU_SYSTEM 76DEB_BUILD_GNU_TYPE 76DEB_HOST_ARCH 76DEB_HOST_GNU_CPU 76DEB_HOST_GNU_SYSTEM 76DEB_HOST_GNU_TYPE 76DEPMOD 76DESTDIR 76DPKG 75DPKG_BUILDPACKAGE 75DPKG_SOURCE 75

GGENKSYMS 77GNUPGHOME 74GNUPGUSER 74GPG 74GPGPASSWD 74GZIP 75GZIP_CMD 75

IIRQF_DISABLED 37IRQF_SHARED 37

KKGENKSYMS 77

LLDCONFIG 76LSMOD 76LSOF 76

MMAKEWHATIS 75MODPOST_CACHE 77MODPROBE 76MODULE_VERSION 38

NNM 77

OOBJDUMP 77

PPACKAGE_KVERSION 64PIC 75

RREFER 74RPM 75RPMBUILD 75

SSA_INTERRUPT 37SA_SHIRQ 37SOELIM 74

TTBL 74

142 OpenSS7 SS7 Stack

Index of Files and Programs

libmodules2420-287streams 82

Indices 143

Index of Configuration Options

332bit-libs 68

Aarch 69autotest 68

Bbase-major 74

Cchecks 65 68compress-manpages 68cooked-manpages 65 71

Ddeb-epoch 72deb-release 72deb-topdir 72devel 66 69devfs 70docs 66 69

Ggpg-home 71gpg-user 70

Iindep 69initscripts 68

Kk-archdir 73k-build 72k-config 73

k-debug 65 70k-inline 66 70k-linkage 72k-machdir 73k-modules 72k-modversions 66 70k-optimize 65 73k-release 64 72k-safe 66 70k-sysmap 73k-test 65 70

Llfs 67 74lis 67 73

Mmodules 67 69

Ppkg-distdir 71pkg-epoch 71pkg-release 71public 65 68

Rrpm-epoch 71rpm-extra 71rpm-release 71rpm-topdir 71

Sstrconf-master 74

Ttools 66 69

144 OpenSS7 SS7 Stack

Index of Makefile Targets

Aall 82 83

Ccheck 83check-clean 86checklog 88clean 85compilelog 88csig 92

Ddebs 91dist 85distlog 88distcheck 85distchecklog 88distclean 85doxy 92dsc 91

Fforced-release 87forced-release-sign 87

Iinstall 82 83install-mans 86install-strip 82 83installlog 88installcheck 84installchecklog 88

Mmaintainer-clean 86

mans 86mostlyclean 85

Ppr 89 99

Rrebuild 91rebuildlog 88release 87release-archives 89release-clean 87release-clean-archives 90release-sign 87release-sign-archives 90release-signlog 89releaselog 88remove 84removelog 88resign 91resignlog 88retest 84rpms 90

Ssend-pr 89sign 90sigs 91srpm 90srpm-sign 90srpmlog 88

Uuninstall 84uninstall-mans 86uninstalllog 88

Indices 145

Index of Authors

Bidulock Brian 5

146 OpenSS7 SS7 Stack

Index of Manual Pages Referenced

Aapt(8) 9 47 51autoconf(1) 9 52 55 58 60 61 67 79 84autom4te(1) 77automake(1) 60 65 66 67 69 70 80 81 83

84 85 86 87 88autoreconf(1) 83

Bbzip2(1) 75

Cchkconfig(8) 75cvs(1) 9 59

Ddepmod(8) 76devfsd(1) 66devfsd(8) 70doxygen(1) 92dpkg(1) 47 49 58 61 69 71 75 84dpkg(8) 80 81dpkg-buildpackage(1) 75dpkg-source(1) 75

Eethereal(1) 46

Ggcc(1) 11genksyms(8) 60 77gettext(1) 67git(1) 9gpg(1) 70grefer(1) 60 65 71groff(1) 60 65 71gzip(1) 75

Iinit_install(8) 75init_remove(8) 75

Lldconfig(8) 76libtool(1) 67lsmod(8) 76lsof(1) 76

Mmake(1) 61 68makewhatis(8) 75modpost(1) 77modprobe(8) 76

Nnm(1) 77

Oobjdump(1) 77

Ppcap(3) 46pic(1) 65 71 75

Rrefer(1) 65 71 74rpm(1) 47 49 51 58 61 69 71 75 77 79 80

84 87 90rpm(8) 63 79rpmbuild(1) 64 75

Ssoelim(1) 65 71 74STREAMS(9) 1

Ttar(1) 58 85tbl(1) 65 71 74tee(1) 87texinfo(1) 66 69

Wwget(1) 47 58wireshark(1) 46

Yyast(8) 47yum(8) 9 47 49 51

Zzypper(8) 47 49

  • Preface
    • Notice
    • Abstract
      • Objective
      • Intent
      • Audience
        • Revisions
          • Version Control
          • ISO 9000 Compliance
            • Disclaimer
              • US Government Restricted Rights
                • Acknowledgements
                  • Sponsors
                  • Contributors
                    • Authors
                    • Maintainer
                    • Web Resources
                      • Quick Start Guide
                        • OpenSS7 SS7 Stack
                          • Release
                          • Prerequisites
                          • Installation
                          • Brief Installation Instructions
                          • Detailed Installation Instructions
                              • Introduction
                                • Overview
                                • Organization of this Manual
                                • Conventions and Definitions
                                  • Objective
                                  • Reference
                                    • Applications
                                    • SS7 Protocol Stack
                                      • Signalling Data Link (SDL)
                                      • Signalling Data Terminal (SDT)
                                      • Signalling Link (SL)
                                      • Message Transfer Part (MTP)
                                      • Signalling Connection Control Part (SCCP)
                                      • Transaction Capabilities Application Part (TCAP)
                                      • Base Station System Application Part (BSSAP)
                                        • Device Drivers
                                          • Digium Drivers
                                          • SeaLevel ACB56 Drivers
                                              • Conformance
                                              • Releases
                                                • Prerequisites
                                                • Compatibility
                                                  • GNULinux Distributions
                                                  • Kernel
                                                  • Architectures
                                                  • Linux STREAMS
                                                  • Linux Fast-STREAMS
                                                    • Release Notes
                                                      • Major changes for release strss7-09a8
                                                      • Major changes for release strss7-09a7
                                                      • Major changes for release strss7-09a6
                                                      • Major changes for release strss7-09a5
                                                      • Major changes for release strss7-09a-4
                                                      • Major changes for release strss7-09a-3
                                                      • Major changes for release strss7-09a-2
                                                      • Initial release strss7-09a-1
                                                        • Maturity
                                                          • Pre-Alpha Releases
                                                          • Alpha Releases
                                                          • Beta Releases
                                                          • Gamma Releases
                                                          • Production Releases
                                                          • Unstable Releases
                                                            • Bugs
                                                              • Defect Notices
                                                              • Known Defects
                                                              • Defect History
                                                                • Schedule
                                                                • History
                                                                  • Installation
                                                                    • Repositories
                                                                      • Repositories for YUM
                                                                      • Repositories for APT
                                                                        • Downloading
                                                                          • Downloading with YUM
                                                                          • Downloading with APT
                                                                          • Downloading the Binary RPM
                                                                          • Downloading the Debian DEB
                                                                          • Downloading the Source RPM
                                                                          • Downloading the Debian DSC
                                                                          • Downloading the Tar Ball
                                                                          • Downloading from CVS
                                                                            • Configuration
                                                                              • Configuring the Binary RPM
                                                                              • Configuring the Debian DEB
                                                                              • Configuring the Source RPM
                                                                              • Configuring the Debian DSC
                                                                              • Configuring the Tar Ball
                                                                                • Configure Options
                                                                                • Environment Variables
                                                                                • Build
                                                                                    • Building
                                                                                      • Building from the Source RPM
                                                                                      • Building from the Debian DSC
                                                                                      • Building from the Tar Ball
                                                                                        • Native Build
                                                                                        • Cross-Build
                                                                                            • Installing
                                                                                              • Installing the Binary RPM
                                                                                              • Installing the Debian DEB
                                                                                              • Installing the Tar Ball
                                                                                                • Removing
                                                                                                  • Removing the Binary RPM
                                                                                                  • Removing the Debian DEB
                                                                                                  • Removing the Source RPM
                                                                                                  • Removing the Debian DSC
                                                                                                  • Removing the Tar Ball
                                                                                                    • Loading
                                                                                                      • Normal Module Loading
                                                                                                        • Linux Fast-STREAMS Module Loading
                                                                                                        • Linux STREAMS Module Loading
                                                                                                            • Maintenance
                                                                                                              • Makefile Targets
                                                                                                                • User Targets
                                                                                                                • Maintainer Targets
                                                                                                                • Clean Targets
                                                                                                                • Manual Page Targets
                                                                                                                • Release Targets
                                                                                                                • Logging Targets
                                                                                                                • Problem Report Targets
                                                                                                                • Release Archive Targets
                                                                                                                • RPM Build Targets
                                                                                                                • Debian Build Targets
                                                                                                                • Documentation Targets
                                                                                                                  • Troubleshooting
                                                                                                                    • Test Suites
                                                                                                                      • Pre-installation Checks
                                                                                                                        • Pre-Installation System Checks
                                                                                                                        • Pre-Installation Maintenance Checks
                                                                                                                        • Specific Pre-Installation Checks
                                                                                                                          • Post-installation Checks
                                                                                                                            • Running Test Suites
                                                                                                                                • Problem Reports
                                                                                                                                  • Problem Report Guidelines
                                                                                                                                  • Generating Problem Reports
                                                                                                                                  • Automatic Problem Reports
                                                                                                                                  • Stand Alone Problem Reports
                                                                                                                                    • Known Problems
                                                                                                                                      • Licenses
                                                                                                                                        • GNU Affero General Public License
                                                                                                                                          • Preamble
                                                                                                                                          • How to Apply These Terms to Your New Programs
                                                                                                                                            • GNU General Public License
                                                                                                                                              • Preamble
                                                                                                                                              • How to Apply These Terms to Your New Programs
                                                                                                                                                • GNU Lesser General Public License
                                                                                                                                                  • Terms and Conditions
                                                                                                                                                    • GNU Free Documentation License
                                                                                                                                                      • Preamble
                                                                                                                                                      • Terms and Conditions for Copying Distribution and Modification
                                                                                                                                                      • How to use this License for your documents
                                                                                                                                                          • Indices
                                                                                                                                                            • Index of Concepts
                                                                                                                                                            • Index of Data Types
                                                                                                                                                            • Index of Functions and Macros
                                                                                                                                                            • Index of Variables and Constants
                                                                                                                                                            • Index of Files and Programs
                                                                                                                                                            • Index of Configuration Options
                                                                                                                                                            • Index of Makefile Targets
                                                                                                                                                            • Index of Authors
                                                                                                                                                            • Index of Manual Pages Referenced
Page 2: OpenSS7 SS7 Stack Installation and Reference Manual · 2008. 10. 31. · vi OpenSS7 SS7 Stack 6.8.1.5 Release Targets:::::86 6.8.1.6 Logging Targets::::: 87 6.8.1.7 Problem Report

Copyright ccopy 2001-2008 OpenSS7 Corporation lthttpwwwopenss7comgtCopyright ccopy 1997-2000 Brian F G Bidulock ltbidulockopenss7orggtAll Rights Reserved

Published by OpenSS7 Corporation1469 Jefferys CrescentEdmonton Alberta T6L 6T1Canada

This is texinfo edition 8 of the OpenSS7 SS7 Stack manual and is consistent with strss709a This manual was developed under the OpenSS7 Project and was funded in part byOpenSS7 CorporationPermission is granted to make and distribute verbatim copies of this manual provided thecopyright notice and this permission notice are preserved on all copiesPermission is granted to copy and distribute modified versions of this manual under the con-ditions for verbatim copying provided that the entire resulting derived work is distributedunder the terms of a permission notice identical to this onePermission is granted to copy and distribute translations of this manual into another lan-guage under the same conditions as for modified versions

i

Short Contents

Preface 1

Quick Start Guide 9

1 Introduction 15

2 Objective 17

3 Reference 19

4 Conformance 31

5 Releases 33

6 Installation 47

7 Troubleshooting 93

Licenses 103

Indices 137

iii

Table of Contents

Preface 1Notice 1Abstract 1

Objective 1Intent 1Audience 1

Revisions 2Version Control 2ISO 9000 Compliance 4

Disclaimer 4US Government Restricted Rights 4

Acknowledgements 4Sponsors 4Contributors 5

Authors 5Maintainer 5Web Resources 6

Quick Start Guide 9OpenSS7 SS7 Stack 9

Release 9Prerequisites 10Installation 11Brief Installation Instructions 12Detailed Installation Instructions 13

1 Introduction 1511 Overview 1512 Organization of this Manual 1513 Conventions and Definitions 16

2 Objective 17

3 Reference 1931 Applications 1932 SS7 Protocol Stack 20

321 Signalling Data Link (SDL) 21322 Signalling Data Terminal (SDT) 22323 Signalling Link (SL) 23324 Message Transfer Part (MTP) 24325 Signalling Connection Control Part (SCCP) 25326 Transaction Capabilities Application Part (TCAP) 26

iv OpenSS7 SS7 Stack

327 Base Station System Application Part (BSSAP) 2733 Device Drivers 28

331 Digium Drivers 29332 SeaLevel ACB56 Drivers 30

4 Conformance 31

5 Releases 3351 Prerequisites 3352 Compatibility 34

521 GNULinux Distributions 34522 Kernel 36523 Architectures 36524 Linux STREAMS 37525 Linux Fast-STREAMS 37

53 Release Notes 37Major changes for release strss7-09a8 37Major changes for release strss7-09a7 38Major changes for release strss7-09a6 39Major changes for release strss7-09a5 40Major changes for release strss7-09a-4 41Major changes for release strss7-09a-3 41Major changes for release strss7-09a-2 41Initial release strss7-09a-1 42

54 Maturity 42541 Pre-Alpha Releases 42542 Alpha Releases 42543 Beta Releases 42544 Gamma Releases 42545 Production Releases 43546 Unstable Releases 43

55 Bugs 43551 Defect Notices 43552 Known Defects 44553 Defect History 44

56 Schedule 4557 History 46

v

6 Installation 4761 Repositories 47

611 Repositories for YUM 47612 Repositories for APT 48

62 Downloading 49621 Downloading with YUM 49622 Downloading with APT 51623 Downloading the Binary RPM 51624 Downloading the Debian DEB 54625 Downloading the Source RPM 57626 Downloading the Debian DSC 57627 Downloading the Tar Ball 58628 Downloading from CVS 59

63 Configuration 61631 Configuring the Binary RPM 62632 Configuring the Debian DEB 63633 Configuring the Source RPM 63634 Configuring the Debian DSC 67635 Configuring the Tar Ball 67

6351 Configure Options 676352 Environment Variables 746353 Build 77

64 Building 77641 Building from the Source RPM 77642 Building from the Debian DSC 78643 Building from the Tar Ball 78

6431 Native Build 796432 Cross-Build 79

65 Installing 79651 Installing the Binary RPM 79652 Installing the Debian DEB 80653 Installing the Tar Ball 80

66 Removing 80661 Removing the Binary RPM 80662 Removing the Debian DEB 80663 Removing the Source RPM 81664 Removing the Debian DSC 81665 Removing the Tar Ball 81

67 Loading 81671 Normal Module Loading 81

6711 Linux Fast-STREAMS Module Loading 826712 Linux STREAMS Module Loading 82

68 Maintenance 82681 Makefile Targets 83

6811 User Targets 836812 Maintainer Targets 856813 Clean Targets 856814 Manual Page Targets 86

vi OpenSS7 SS7 Stack

6815 Release Targets 866816 Logging Targets 876817 Problem Report Targets 896818 Release Archive Targets 896819 RPM Build Targets 9068110 Debian Build Targets 9168111 Documentation Targets 92

7 Troubleshooting 9371 Test Suites 93

711 Pre-installation Checks 937111 Pre-Installation System Checks 937112 Pre-Installation Maintenance Checks 947113 Specific Pre-Installation Checks 94

712 Post-installation Checks 967121 Running Test Suites 97

72 Problem Reports 97721 Problem Report Guidelines 98722 Generating Problem Reports 98723 Automatic Problem Reports 99724 Stand Alone Problem Reports 100

73 Known Problems 101

Licenses 103GNU Affero General Public License 104

Preamble 104How to Apply These Terms to Your New Programs 114

GNU General Public License 115Preamble 115How to Apply These Terms to Your New Programs 126

GNU Lesser General Public License 127Terms and Conditions 127

GNU Free Documentation License 130Preamble 130Terms and Conditions for Copying Distribution and Modification

130How to use this License for your documents 136

Indices 137Index of Concepts 137Index of Data Types 139Index of Functions and Macros 140Index of Variables and Constants 141Index of Files and Programs 142Index of Configuration Options 143Index of Makefile Targets 144Index of Authors 145Index of Manual Pages Referenced 146

Preface 1

Preface

Notice

This package is released and distributed under the AGPL (see [GNU Affero General PublicLicense] page 104) Please note however that there are different licensing terms for themanual pages and some of the documentation (derived from OpenGroup1 publications andother sources) Consult the permission notices contained in the documentation for moreinformationThis manual is released under the FDL (see [GNU Free Documentation License] page 130)with no sections invariant

Abstract

This manual provides a Installation and Reference Manual for OpenSS7 SS7 Stack

Objective

The objective of this manual is to provide a guide for the STREAMS programmer whendeveloping STREAMS modules drivers and application programs for OpenSS7 SS7 StackThis guide provides information to developers on the use of the STREAMS mechanism atuser and kernel levelsSTREAMS was incorporated in UNIX System V Release 3 to augment the character in-putoutput (IO) mechanism and to support development of communication servicesSTREAMS provides developers with integral functions a set of utility routines and facilitiesthat expedite software design and implementation

Intent

The intent of this manual is to act as an introductory guide to the STREAMS programmerIt is intended to be read alone and is not intended to replace or supplement the OpenSS7 SS7Stack manual pages For a reference for writing code the manual pages (see STREAMS(9))provide a better reference to the programmer Although this describes the features of theOpenSS7 SS7 Stack package OpenSS7 Corporation is under no obligation to provide anysoftware system or feature listed herein

Audience

This manual is intended for a highly technical audience The reader should already befamiliar with Linux kernel programming the Linux file system character devices driverinput and output interrupts software interrupt handling scheduling process contextsmultiprocessor locks etcThe guide is intended for network and systems programmers who use the STREAMSmechanism at user and kernel levels for Linux and UNIX system communication servicesReaders of the guide are expected to possess prior knowledge of the Linux and UNIX systemprogramming networking and data communication

1 Formerly XOpen and UNIX International

2 OpenSS7 SS7 Stack

Revisions

Take care that you are working with a current version of this manual you will not benotified of updates To ensure that you are working with a current version contact theAuthor or check The OpenSS7 Project website for a current versionA current version of this manual is normally distributed with the OpenSS7 SS7 Stackpackage strss7-09a82

Version Controlstrss7texiv

Revision 09227 2008-09-20 110426 brian

- added package patchlevel

Revision 09226 2008-08-03 060328 brian

- protected agains texinfo commands in log entries

Revision 09225 20080727 084858 brian

- no invariant sections more libtool ignores

Revision 09224 2008-04-29 071035 brian

- updating headers for release

Revision 09223 2008-04-25 115046 brian

- updates to AGPLv3

Revision 09222 20070815 051816 brian

- GPLv3 updates

Revision 09221 20070812 064407 brian

- updated licenses in manuals

Revision 09220 20070803 133451 brian

- manual updates put ss7 modules in public release

Revision 09219 20070228 063035 brian

- updates and corrections ifdef instead of if

Revision 09218 20061002 113129 brian

- changes to get master builds working for RPM and DEB

- added outside licenses to package documentation

- added LICENSE automated release file

- copy MANUAL to source directory

- add and remove devices in -dev debian subpackages

- get debian rules working better

- release library version files

- added notes to debian changelog

- corrections for cooked manual pages in spec files

- added release documentation to spec and rules files

- copyright header updates

- moved controlling tty checks in stream head

- missing some defines for LiS build in various source files

- added OSI headers to striso package

- added includes and manual page paths to acincludes for various packages

- added sunrpc uidlpi uinpi and uitpi licenses to documentation and release

files

2 httpwwwopenss7orgtarballsstrss7-09a8tarbz2

Preface 3

- moved pragma weak statements ahead of declarations

- changes for master build of RPMS and DEBS with LiS

Revision 09217 20060828 104655 brian

- correction

Revision 09216 20060828 103246 brian

- updated references

Revision 09215 20060827 122638 brian

- finalizing auto release files

Revision 09214 20060826 091650 brian

- better release file generation

Revision 09213 20060823 110028 brian

- added preface corrections and updates for release

Revision 09212 20060822 124409 brian

- documentation updates

Revision 09211 20060322 100200 brian

- added makefile target index

Revision 09210 20060303 120609 brian

- 3264-bit compatibility

Revision 0929 20050708 131556 brian

- updates to documentation

Revision 0928 20050624 133859 brian

- added troubleshooting section to manuals

Revision 0927 20050514 083346 brian

- copyright header correction

Revision 0926 20050412 092906 brian

- corrections

Revision 0925 20050411 204840 brian

- documentation updates and corrections

Revision 0924 20050315 005650 brian

- Updated version numbering in texinfo files

Revision 0923 20050315 005147 brian

- Updated version numbering in texinfo files

Revision 0922 20050217 200011 brian

- Fixes for texi documentation

Revision 0921 20050126 082418 brian

- Changed name of texinfo file

Revision 09 20050126 082418 brian

file strss7texi was initially added on branch OpenSS7-0_9_2

4 OpenSS7 SS7 Stack

ISO 9000 Compliance

Only the TEX texinfo or roff source for this manual is controlled An opaque (printedpostscript or portable document format) version of this manual is an UNCONTROLLEDVERSION

Disclaimer

OpenSS7 Corporation disclaims all warranties with regard to this documentation includingall implied warranties of merchantability fitness for a particular purpose non-infringementor title that the contents of the manual are suitable for any purpose or that the implemen-tation of such contents will not infringe on any third party patents copyrights trademarksor other rights In no event shall OpenSS7 Corporation be liable for any direct indirectspecial or consequential damages or any damages whatsoever resulting from loss of usedata or profits whether in an action of contract negligence or other tortious action arisingout of or in connection with any use of this manual or the performance or implementationof the contents thereof

OpenSS7 Corporation reserves the right to revise this software and documentation for anyreason including but not limited to conformity with standards promulgated by variousagencies utilization of advances in the state of the technical arts or the reflection of changesin the design of any techniques or procedures embodied described or referred to hereinOpenSS7 Corporation is under no obligation to provide any feature listed herein

US Government Restricted Rights

If you are licensing this Software on behalf of the US Government (Government) thefollowing provisions apply to you If the Software is supplied by the Department of Defense(DoD) it is classified as Commercial Computer Software under paragraph 252227-7014of the DoD Supplement to the Federal Acquisition Regulations (DFARS) (or any successorregulations) and the Government is acquiring only the license rights granted herein (thelicense rights customarily provided to non-Government users) If the Software is suppliedto any unit or agency of the Government other than DoD it is classified as RestrictedComputer Software and the Governmentrsquos rights in the Software are defined in paragraph52227-19 of the Federal Acquisition Regulations (FAR) (or any successor regulations) orin the cases of NASA in paragraph 1852227-86 of the NASA Supplement to the FAR (orany successor regulations)

Acknowledgements

As with most open source projects this project would not have been possible withoutthe valiant efforts and productive software of the Free Software Foundation and the LinuxKernel Community

Sponsors

Funding for completion of the OpenSS7 OpenSS7 SS7 Stack package was provided in partby

bull OpenSS7 Corporation

Additional funding for The OpenSS7 Project was provided by

Preface 5

bull OpenSS7 Corporationbull Lockheed Martin Cobull Motorolabull HOB Internationalbull Comverse Ltdbull Sonus Networks Incbull France Telecombull SS8 Networks Incbull Nortel Networksbull Verisignbull eServGlobal (NZ) Pty Ltdbull NetCentrex S Abull SysMaster Corporationbull GeoLink SAbull AirNet Communicationsbull TECOREbull Tumsan Oybull Vodare Ltdbull Excel Telecommunications

Contributors

The primary contributor to the OpenSS7 OpenSS7 SS7 Stack package is Brian F G Bidu-lock The following is a list of significant contributors to The OpenSS7 Project

minus Per Berquistminus John Boydminus Chuck Wintersminus Peter Courtneyminus Tom Chandlerminus Gurol Ackmanminus Kutluk Testiciogluminus John Wenkerminus Others

Authors

The authors of the OpenSS7 OpenSS7 SS7 Stack package includeminus Brian Bidulock

See [Index of Authors] page 145 for a complete listing and cross-index of authors to sectionsof this manual

Maintainer

The maintainer of the OpenSS7 OpenSS7 SS7 Stack package isminus Brian Bidulock

Please send bug reports to bugsopenss7org using the lsquosend-prrsquo script included in thepackage only after reading the lsquoBUGSrsquo file in the release or See Section 72 [Problem Re-ports] page 97

6 OpenSS7 SS7 Stack

Web Resources

The OpenSS7 Project provides a website dedicated to the software packages released by theOpenSS7 Project

Bug Reports

Please send bug reports to bugsopenss7org using the lsquosend-prrsquo script included inthe OpenSS7 SS7 Stack package only after reading the lsquoBUGSrsquo file in the release or SeeSection 72 [Problem Reports] page 97 You can access the OpenSS7 GNATS databasedirectly via the web however the preferred method for sending new bug reports is viamail with the lsquosend-prrsquo script

Mailing Lists

The OpenSS7 Project provides a number of general discussion Mailing Lists for discussionconcerning the OpenSS7 OpenSS7 SS7 Stack package as well as other packages released byThe OpenSS7 ProjectThese are mailman mailing lists and so have convenient web interfaces for subscribers tocontrol their settings See httpwwwopenss7orgmailinglisthtmlThe mailing lists are as follows

lsquoopenss7rsquo The lsquoopenss7rsquo mailing list is for general enquiries information exchange andannouncements regarding the OpenSS7 Project This is our original mailinglist and takes the highest amount of traffic

lsquoopenss7-announcersquoThe lsquoopenss7-announcersquo mailing list is for announcements related to theOpenSS7 Project This list will accept announcements posted by subscribersSubscribe to this list if you are interested in announcements from theOpenSS7 Project subscribers and sponsors related to the OpenSS7 Projector STREAMS SS7 SIGTRAN or SCTP in general

lsquoopenss7-cvsrsquoThe lsquoopenss7-cvsrsquo mailing list is for automatic CVS log reporting You mustget permission of the owner to subscribe to this list Subscribers are not allowedto post to this list this is merely for distributing notification of changes to theCVS repositoryh

lsquoopenss7-developrsquoThe lsquoopenss7-developrsquo mailing list is for email exchange related to the de-velopment projects under the OpenSS7 Project This includes developmentrequests proposals requests for comment or proposal Subscribe to this listif you are interested in ongoing development details regarding the OpenSS7Project

lsquoopenss7-testrsquoThe lsquoopenss7-testrsquo mailing list is for email exchange related to the testingof code under the OpenSS7 Project This specifically relates to conformancetesting verification testing interoperability testing and beta testing Subscribeto this list if you are interested in participating in and receiving ongoing detailsof test activities under the OpenSS7 Project

Preface 7

lsquoopenss7-bugsrsquoThe lsquoopenss7-bugsrsquo mailing list is specifically tailored to bug tracking Themailing list takes a feed from the OpenSS7 GNATS bug tracking system andaccepts posting of responses to bug reports tracking and resolution Subscribeto this list if you are interested in receiving detailed OpenSS7 release code bugtracking information This list is not archived for historical information onproblem reports see our GNATS databases

lsquoopenss7-updatesrsquoThe lsquoopenss7-updatesrsquo mailing list provides updates on OpenSS7 Project codereleases and ongoing activities Subscribers are not allowed to post to this listthis list is for official OpenSS7 Project announcements only Subscribe to thislist if you are interested in receiving updates concerning official releases andactivities of the OpenSS7 Project

lsquoopenss7-streamsrsquoThe lsquoopenss7-streamsrsquo mailing list is for email exchange related to theSTREAMS development projects under the OpenSS7 Project This includesdevelopment requests proposals requests for comment or proposal Subscribeto this list if you are interested in ongoing development details regarding theOpenSS7 Project STREAMS components

lsquolinux-streamsrsquoThe lsquolinux-streamsrsquo mailing list is for mail exchange related to LinuxFast-STREAMS or Linux STREAMS This includes patches developmentrequests proposals requests for comment or proposal Subscribe to this list ifyou are interested in ongoing development details regarding the STREAMSfor Linux components This is the the new (September 2006) home of thelsquolinux-streamsrsquo list formerly of gsycesceturjces

Spam

To avoid spam being sent to the members of the OpenSS7 mailing list(s) we have blockedmail from non-subscribers Please subscribe to the mailing list before attempting to postto them (Attempts to post when not subscribed get bounced)As an additional measure against spam subscriber lists for all OpenSS7 mailing lists arenot accessible to non-subscribers for most lists subscriber lists are only accessible to thelist administrator This keeps your mailing address from being picked off our website bybulk mailers

Acceptable Use Policy

It is acceptable to post professional and courteous messages regarding the OpenSS7 packageor any general information or questions concerning STREAMS SS7 SIGTRAN SCTP ortelecommunications applications in general

Large Attachments

The mailing list is blocked from messages of greater than 40k If you have attachments(patches test programs etc) and you mail them to the list it will bounce to the listadministrator If you are interested in making your patches test programs test results or

8 OpenSS7 SS7 Stack

other large attachments available to the members of the mailing list state in the messagethat you would like them posted and the list administrator will place them in the mailarchives

Quick Start Guide 9

Quick Start Guide

OpenSS7 SS7 Stack

Package strss7-09a8 was released under AGPLv3 2008-10-31

The OpenSS7 SS7 Stack package includes a wide array of kernel modules SVR 42STREAMS drivers modules libraries utilities test programs daemons and developmentenvironment for the development and execution of Signalling System Number 7 (SS7)Signalling Transport (SIGTRAN) Integrated Services Digital Network (ISDN) and Voiceover IP (VoIP) protocol stack components and applications for the Linux Fast-STREAMSenvironment

However the current package has had ISDN components moved to the lsquostrisdnrsquo packageSIGTRAN components moved to the lsquosigtranrsquo package and VoIP components moved tothe lsquostrvoiprsquo package Only SS7 components remain in the lsquostrss7rsquo package

This distribution is only currently applicable to Linux 24 and 26 kernels and was tar-geted at ix86 x86_64 ppc and ppc64 architectures but should build and install for otherarchitectures as well

Release

This is the strss7-09a8 package released 2008-10-31 This lsquo09a8rsquo release and thelatest version can be obtained from the download area of The OpenSS7 Project websiteusing a command such as

$gt wget httpwwwopenss7orgtarballsstrss7-09a8tarbz2

The release is available as an autoconf(1) tarball lsquosrcrpmrsquo or lsquodscrsquo as a set of binarylsquorpmrsquos or lsquodebrsquos or as a yum(8) or apt(8) repository See the download page for theautoconf(1) tarballs lsquosrcrpmrsquos lsquodscrsquos or repository access instructions See the strss7package page for tarballs source and binary packages

Please see the lsquoNEWSrsquo file for release notes and history of user visible changes for the currentversion and the lsquoChangeLogrsquo file for a more detailed history of implementation changesThe lsquoTODOrsquo file lists features not yet implemented and other outstanding items

Please see the lsquoINSTALLrsquo lsquoINSTALL-strss7rsquo and lsquoREADME-makersquo files (or see Chapter 6[Installation] page 47) for installation instructions

When working from cvs(1) or git(1) please see the lsquoREADME-cvsrsquo file (or see Section 628[Downloading from CVS] page 59) An abbreviated installation procedure that works formost applications appears below

This release of the package is published strictly under Version 3 of the GNU Affero PublicLicense which can be found in the file lsquoCOPYINGrsquo Package specific licensing terms (if any)can be found in the file lsquoLICENSESrsquo Please respect these licensing arrangements If youare interested in different licensing terms please contact the copyright holder or OpenSS7Corporation ltsalesopenss7comgt

See lsquoREADME-alpharsquo (if it exists) for alpha release information

10 OpenSS7 SS7 Stack

Prerequisites

The quickest and easiest way to ensure that all prerequisites are met is to download andinstall this package from within the OpenSS7 Master Package openss7-092G insteadof separatelyPrerequisites for the OpenSS7 SS7 Stack package are as follows1 Linux distribution somewhat Linux Standards Base compliant with a 24 or 26 kernel

and the appropriate tool chain for compiling out-of-tree kernel modules Most recentLinux distributions are usable out of the box but some development packages must beinstalled For more information see Section 52 [Compatibility] page 34

minus A fairly LSB compliant GNULinux distribution1

minus Linux 24 kernel (2410 - 2427) orminus Linux 26 kernel (263 - 2626)minus glibc2 or betterminus GNU groff (for man pages)2

minus GNU texinfo (for info files)minus GNU bison and flex (for config programs)minus net-snmp (for SNMP agents)3

(Note If you acquired strss7 a part of the OpenSS7 Master Package then the dependencieslisted below will already have been met by unpacking the master package)2 OpenSS7 Linux Fast-STREAMS streams-09244

3 OpenSS7 STREAMS Compatibility Modules strcompat-09274 OpenSS7 STREAMS XNS strxns-09275 OpenSS7 STREAMS XTITLI strxnet-092126 OpenSS7 STREAM Network Services Library strnsl-0924 (Optional)7 OpenSS7 STREAMS Sockets strsock-0924 (Optional)8 OpenSS7 STREAMS INET strinet-09279 OpenSS7 STREAMS SCTP strsctp-0929

10 OpenSS7 STREAMS Channels strchan-092411 OpenSS7 STREAMS X25 strx25-092112 OpenSS7 STREAMS ISO striso-092413 OpenSS7 STREAMS ISDN strisdn-0924

When configuring and building multiple OpenSS7 Project release packages place all of thesource packages (unpacked tarballs) at the same directory level and all build directories atthe same directory level (eg all source packages under lsquousrsrcrsquo)When installing packages that install as kernel modules it is necessary to have the correctkernel development package installed For the following distributions use the followingcommands

1 See Section 521 [GNULinux Distributions] page 34 for more information2 If you are using a Debian release please make sure to install the groff extension package (lsquogroff_extrsquo) as

it contains the refer or grefer commands necessary for including references in the manual pages3 A wide range of net-snmp releases are supported from UCD-SNMP 425 through net-snmp 544 Although at one time this package supported LiS LiS is now deprecated and unsupported

Quick Start Guide 11

Ubuntu $gt apt-get install linux-headersDebian $gt apt-get install kernel-headersFedora $gt yum install kernel-devel

You also need the same version of gcc(1) compiler with which the kernel was built If it isnot the default add lsquoCC=kgccrsquo on the line after lsquoconfigurersquo for example

$gt strss7-09a8configure CC=rsquogcc-34rsquo

Installation

The following commands will download configure build check install validate uninstalland remove the package

$gt wget httpwwwopenss7orgtarballsstrss7-09a8tarbz2$gt tar -xjvf strss7-09a8tarbz2$gt mkdir build$gt pushd build$gt strss7-09a8configure --enable-autotest$gt make$gt make check$gt sudo make install$gt sudo make installcheck$gt sudo make uninstall$gt popd$gt sudo rm -rf build$gt rm -rf strss7-09a8$gt rm -f strss7-09a8tarbz2

If you have problems try building with the logging targets instead If the make of a loggingtarget fails an automatic problem report will be generated that can be mailed to TheOpenSS7 Project5 Installation steps using the logging targets proceed as follows

$gt wget httpwwwopenss7orgtarballsstrss7-09a8tarbz2$gt tar -xjvf strss7-09a8tarbz2$gt mkdir build$gt pushd build$gt strss7-09a8configure --enable-autotest$gt make compilelog$gt make checklog$gt sudo make installlog$gt sudo make installchecklog$gt sudo make uninstalllog$gt popd$gt sudo rm -rf build$gt rm -rf strss7-09a8$gt rm -f strss7-09a8tarbz2

See lsquoREADME-makersquo for additional specialized make targets

5 Please see Section 72 [Problem Reports] page 97 or the file lsquoPROBLEMSrsquo in the release directory for moreinformation on filing a proper Problem Report

12 OpenSS7 SS7 Stack

For custom applications see the lsquoINSTALLrsquo and lsquoINSTALL-strss7rsquo files or the see Chapter 6[Installation] page 47 as listed below If you encounter troubles see Chapter 7 [Trou-bleshooting] page 93 before issuing a bug report

Brief Installation Instructions

The OpenSS7 SS7 Stack package is available from the downloads area of The OpenSS7Project website using a command such as

$gt wget httpwwwopenss7orgtarballsstrss7-09a8tarbz2

Unpack the tarball using a command such as$gt tar -xjvf strss7-09a8tarbz2

The tarball will unpack into the relative subdirectory named after the package name strss7-09a8The package builds using the GNU autoconf utilities and the lsquoconfigurersquo script To buildthe package we recommend using a separate lsquobuildrsquo directory as follows

$gt mkdir build$gt cd build$gt strss7-09a8configure

In general the package configures and builds without adding any special options to thelsquoconfigurersquo script For general options to the lsquoconfigurersquo script see the GNU lsquoINSTALLrsquofile in the distribution

$gt less strss7-09a8INSTALL

For specific options to the lsquoconfigurersquo script see the lsquoINSTALL-strss7rsquo file in the distri-bution or simply execute the configure script with the lsquo--helprsquo option like so

$gt strss7-09a8configure --help

After configuring the package the package can be compiled simply by issuing the lsquomakersquocommand

$gt make

Some specialized makefile targets exists see the lsquoREADME-makersquo file in the distribution orsimply invoke the lsquohelprsquo target like so

$gt make help | less

After successfully building the package the package can be checked by invoking the lsquocheckrsquomake target like so

$gt make check

After successfully checking the package the package can be installed by invoking thelsquoinstallrsquo make target (as root) like so

$gt sudo make install

The test suites that ship with the package can be invoked after the package has been installedby invoking the lsquoinstallcheckrsquo target This target can either be invoked as root or as anormal user like so

$gt make installcheck

(Note you must add the lsquo--enable-autotestrsquo flag to lsquoconfigurersquo above for the test suitesto be invoked with lsquomake installcheckrsquo)The package can be cleanly removed by invoking the lsquouninstallrsquo target (as root)

Quick Start Guide 13

$gt sudo make uninstall

Then the build directory and tarball can be simply removed$gt cd $gt rm -rf build$gt rm -rf strss7-09a8$gt rm -f strss7-09a8tarbz2

Detailed Installation Instructions

More detailed installation instructions can be found in the Chapter 6 [Installation] page 47contained in the distribution in lsquotextrsquo lsquoinforsquo lsquohtmlrsquo and lsquopdfrsquo formats

$gt cd strss7-09a8$gt less docmanualstrss7txt$gt lynx docmanualstrss7html$gt info docmanualstrss7info$gt xpdf docmanualstrss7pdf

The lsquotextrsquo version of the manual is always available in the lsquoMANUALrsquo file in the releaseThe current manual is also always available online from The OpenSS7 Project website at

$gt lynx httpwwwopenss7orgstrss7_manualhtml

Chapter 1 Introduction 15

1 Introduction

This manual documents the design implementation installation operation and future de-velopment schedule of the OpenSS7 SS7 Stack package

11 Overview

This manual documents the design implementation installation operation and future de-velopment of the OpenSS7 SS7 Stack packageThe OpenSS7 SS7 Stack package is an SS7 SIGTRAN ISDN VoIP package for Linux thatcan be used with Linux Fast-STREAMS1 or Linux STREAMS2 It includes developmenttools header files and manual pages forbull Communications Device Interface (CDI)bull Data Link Provider Interface (DLPI)bull Network Provider Interface (NPI)bull Transport Provider Interface (TPI)bull Signalling Data Link Interface (SDLI)bull Signalling Data Terminal Interface (SDTI)bull Message Transfer Part Interface (MTPI)bull Call Control Interface (CCI)bull Transaction Interface (TRI)bull Transaction Component Interface (TCI) andbull Mobile Application Part Interface (MAPI)

Also it provides STREAMS drivers and modules for SS7 SIGTRAN ISDN and VoIPincludingbull

The OpenSS7 SS7 Stack package is essential to the development and support of SS7 andISDN networking and call control modules and drivers and provides a fundamental set ofSS7 header files and manual pages for such developmentThe OpenSS7 SS7 Stack does not provide the STREAMS components See the manualsreferenced above

12 Organization of this Manual

This manual is organized (loosely) into several sections as followsChapter 1 [Introduction] page 15 This introductionChapter 2 [Objective] page 17 Objective of the packageChapter 3 [Reference] page 19 Contents of the packageChapter 4 [Conformance] page 31 Conformance of the packageChapter 5 [Releases] page 33 Releases of the packageChapter 6 [Installation] page 47 Installation of the packageChapter 7 [Troubleshooting] page 93 Troubleshooting of the package

1 See Section ldquoAbout This Manualrdquo in Linux Fast-STREAMS (LfS) Reference Manual2 See Section ldquoAbout This Manualrdquo in Linux STREAMS (LiS) Reference Manual

16 OpenSS7 SS7 Stack

13 Conventions and Definitions

This manual uses texinfo typographic conventions

Chapter 2 Objective 17

2 Objective

Chapter 3 Reference 19

3 Reference

31 Applications

20 OpenSS7 SS7 Stack

32 SS7 Protocol Stack

The SS7 Protocol Stack consists of a number of components

Chapter 3 Reference 21

321 Signalling Data Link (SDL)

22 OpenSS7 SS7 Stack

322 Signalling Data Terminal (SDT)

Chapter 3 Reference 23

323 Signalling Link (SL)

24 OpenSS7 SS7 Stack

324 Message Transfer Part (MTP)

Chapter 3 Reference 25

325 Signalling Connection Control Part (SCCP)

26 OpenSS7 SS7 Stack

326 Transaction Capabilities Application Part (TCAP)

Chapter 3 Reference 27

327 Base Station System Application Part (BSSAP)

28 OpenSS7 SS7 Stack

33 Device Drivers

Chapter 3 Reference 29

331 Digium Drivers

30 OpenSS7 SS7 Stack

332 SeaLevel ACB56 Drivers

Chapter 4 Conformance 31

4 Conformance

Chapter 5 Releases 33

5 Releases

This is the OpenSS7 Release of the OpenSS7 SS7 Stack tools drivers and modules usedwith the Linux Fast-STREAMS or Linux STREAMS1 SVR 42 STREAMS releasesThe purpose of providing a separate release of this package was to separate the OpenSS7SS7 Stack tools headers drivers and modules from the Linux STREAMS2 package for usewith both Linux STREAMS3 and Linux Fast-STREAMS in preparation for replacement ofthe former by the laterThe following sections provide information on OpenSS7 SS7 Stack releases as well as com-patibility information of OpenSS7 release to the original GCOM releases of these modulesand drivers as well as Linux kernel compatibility

51 Prerequisites

The quickest and easiest way to ensure that all prerequisites are met is to download andinstall this package from within the OpenSS7 Master Package openss7-092G insteadof separatelyPrerequisites for the OpenSS7 SS7 Stack package are as follows1 Linux distribution somewhat Linux Standards Base compliant with a 24 or 26 kernel

and the appropriate tool chain for compiling out-of-tree kernel modules Most recentLinux distributions are usable out of the box but some development packages must beinstalled For more information see Section 52 [Compatibility] page 34

minus A fairly LSB compliant GNULinux distribution4

minus Linux 24 kernel (2410 - 2427) orminus Linux 26 kernel (263 - 2626)minus glibc2 or betterminus GNU groff (for man pages)5

minus GNU texinfo (for info files)minus GNU bison and flex (for config programs)minus net-snmp (for SNMP agents)6

(Note If you acquired strss7 a part of the OpenSS7 Master Package then the dependencieslisted below will already have been met by unpacking the master package)2 OpenSS7 Linux Fast-STREAMS streams-09247

3 OpenSS7 STREAMS Compatibility Modules strcompat-09274 OpenSS7 STREAMS XNS strxns-09275 OpenSS7 STREAMS XTITLI strxnet-09212

1 Linux STREAMS is buggy unsupported and deprecated Do not use it2 Linux STREAMS is buggy unsupported and deprecated Do not use it3 Linux STREAMS is buggy unsupported and deprecated Do not use it4 See Section 521 [GNULinux Distributions] page 34 for more information5 If you are using a Debian release please make sure to install the groff extension package (lsquogroff_extrsquo) as

it contains the refer or grefer commands necessary for including references in the manual pages6 A wide range of net-snmp releases are supported from UCD-SNMP 425 through net-snmp 547 Although at one time this package supported LiS LiS is now deprecated and unsupported

34 OpenSS7 SS7 Stack

6 OpenSS7 STREAM Network Services Library strnsl-0924 (Optional)7 OpenSS7 STREAMS Sockets strsock-0924 (Optional)8 OpenSS7 STREAMS INET strinet-09279 OpenSS7 STREAMS SCTP strsctp-0929

10 OpenSS7 STREAMS Channels strchan-092411 OpenSS7 STREAMS X25 strx25-092112 OpenSS7 STREAMS ISO striso-092413 OpenSS7 STREAMS ISDN strisdn-0924

If you need to rebuild the package from sources with modifications you will need a largerGNU tool chain as described in See Section 628 [Downloading from CVS] page 59

52 Compatibility

This section discusses compatibility with major prerequisites

521 GNULinux Distributions

OpenSS7 SS7 Stack is compatible with the following Linux distributions8

bull CentOS Enterprise Linux 34 (centos34) TBDbull CentOS Enterprise Linux 40 (centos4) TBDbull CentOS Enterprise Linux 492 (centos49) TBDbull CentOS Enterprise Linux 50 (centos5)bull CentOS Enterprise Linux 51 (centos51)bull CentOS Enterprise Linux 52 (centos52)bull Debian 30r2 Woody (deb30) TBDbull Debian 31r0a Sarge (deb31) TBDbull Debian 40r1 Etch (deb40)bull Debian 40r2 Etch (deb40)bull Debian 40r3 Etch (deb40)bull Fedora Core 1 (FC1) TBDbull Fedora Core 2 (FC2) TBDbull Fedora Core 3 (FC3) TBDbull Fedora Core 4 (FC4) TBDbull Fedora Core 5 (FC5) TBDbull Fedora Core 6 (FC6) TBDbull Fedora 7 (FC7)bull Fedora 8 (FC8)bull Fedora 9 (FC9)bull Gentoo 20061 (untested) TBD

8 Items marked as lsquoTBDrsquo are scheduled to have support deprecated That is in a future release the distributionsmarked lsquoTBDrsquo will not longer be validated before release

Chapter 5 Releases 35

bull Gentoo 20071 (untested) TBDbull Lineox 4026 (LEL4) TBDbull Lineox 4053 (LEL4) TBDbull Mandrakelinux 92 (MDK92) TBDbull Mandrakelinux 100 (MDK100) TBDbull Mandrakelinux 101 (MDK101) TBDbull Mandriva Linux LE2005 (MDK102) TBDbull Mandriva Linux LE2006 (MDK103) TBDbull Mandriva One (untested)bull RedHat Linux 72 (RH7)bull RedHat Linux 73 (RH7)bull RedHat Linux 80 (RH8) TBDbull RedHat Linux 9 (RH9) TBDbull RedHat Enterprise Linux 30 (EL3) TBDbull RedHat Enterprise Linux 4 (EL4)bull RedHat Enterprise Linux 5 (EL5)bull SuSE 80 Professional (SuSE80) TBDbull SuSE 91 Personal (SuSE91) TBDbull SuSE 92 Professional (SuSE92) TBDbull SuSE OpenSuSE (SuSEOSS) TBDbull SuSE 100 (SuSE100) TBDbull SuSE 101 (SuSE101) TBDbull SuSE 102 (SuSE102) TBDbull SuSE 103 (SuSE103) TBDbull SuSE 110 (SuSE110)bull SLES 9 (SLES9) TBDbull SLES 9 SP2 (SLES9) TBDbull SLES 9 SP3 (SLES9) TBDbull SLES 10 (SLES10)bull Ubuntu 510 (ubu510) TBDbull Ubuntu 603 LTS (ubu603) TBDbull Ubuntu 610 (ubu610) TBDbull Ubuntu 704 (ubu704) TBDbull Ubuntu 710 (ubu710)bull Ubuntu 804 (ubu804)bull WhiteBox Enterprise Linux 30 (WBEL3) TBDbull WhiteBox Enterprise Linux 4 (WBEL4) TBD

When installing from the tarball (see Section 653 [Installing the Tar Ball] page 80) thisdistribution is probably compatible with a much broader array of distributions than thoselisted above These are the distributions against which the current maintainer creates andtests builds

36 OpenSS7 SS7 Stack

522 Kernel

The OpenSS7 SS7 Stack package compiles as a Linux kernel module It is not necessaryto patch the Linux kernel to build or use the package9 Nor do you have to recompile yourkernel to build or use the package OpenSS7 packages use autoconf scripts to adapt thepackage source to your existing kernel The package builds and runs nicely against produc-tion kernels from the distributions listed above Rather than relying on kernel versions theautoconf scripts interrogate the kernel for specific features and variants to better adaptto distribution production kernels that have had patches applied over the official kernelorgsources

The OpenSS7 SS7 Stack package is compatible with 24 kernel series after 2410 and hasbeen tested up to and including 2427 It has been tested from 263 up to and including2626 (with Fedora 9 openSUSE 110 and Ubuntu 804 patchsets) Please note that yourmileage may vary if you use a kernel more recent than 26264 it is difficult to anticipatechanges that kernel developers will make in the future Many kernels in the 26 seriesnow vary widely by release version and if you encounter problems try a kernel within thesupported series

UP validation testing for kernels is performed on all supported architectures SMP valida-tion testing was initially performed on UP machines as well as on an Intel 30GHz PentiumIV 630 with HyperThreading enabled (2x) Because HyperThreading is not as independentas multiple CPUs SMP validation testing was limited Current releases have been testedon dual 18GHz Xeon HP servers (2x) as well as dual quad-core SunFire (8x) servers

It should be noted that while the packages will configure build and install against XENkernels that problems running validation test suites against XEN kernels has been reportedXEN kernels are explicitly not supported This may change at some point in the future ifsomeone really requires running OpenSS7 under a XEN kernel

523 Architectures

The OpenSS7 SS7 Stack package compiles and installs on a wide range of architecturesAlthough it is believed that the package will work on all architectures supported by theLinux kernel being used validation testing has only been performed with the followingarchitectures

bull ix86

bull x86 64

bull ppc (MPC 860)

bull ppc64

32-bit compatibility validation testing is performed on all 64-bit architectures supporting32-bit compatibility If you would like to validate an OpenSS7 package on a specific machinearchitecture you are welcome to sponsor the project with a test machine

9 At a later date it is possible to move this package into the kernel however with continued resistance toSTREAMS from within the Linux developer community this is currently unlikely

Chapter 5 Releases 37

524 Linux STREAMS

The OpenSS7 SS7 Stack package is currently compatible with Linux STREAMS10 howeverto use the OpenSS7 SS7 Stack package with LiS requires use of the OpenSS7 release packagesof LiS The OpenSS7 SS7 Stack package is compatible with the OpenSS7 LiS-2187 releasethat is available from the The OpenSS7 Project Downloads Page But do not use LiS itis buggy unsupported and deprecated Use Linux Fast-STREAMS instead

525 Linux Fast-STREAMS

The OpenSS7 SS7 Stack package is currently compatible with Linux Fast-STREAMS (LfS)The OpenSS7 SS7 Stack package is compatible with the OpenSS7 streams-0924 releasethat is available from the The OpenSS7 Project Downloads Page

53 Release Notes

The sections that follow provide information on OpenSS7 releases of the OpenSS7 SS7 Stackpackage

Major changes for release strss7-09a8

The OpenSS7 SS7 Stack package contains a wide array of SS7 drivers and components forLinux Fast-STREAMS This is the public release package which has most of the componentsremoved Subscribers and sponsors of the OpenSS7 Project have access to the full array ofcomponents

This is the eighth release of the OpenSS7 SS7 Stack strss7 package that contains SS7(Signalling System No 7) signalling stack components for Linux Fast-STREAMS Thepackage contains the necessary header files manual pages and other documentation for SS7components in a separate autoconf tarball

The release includes maintenance support for recent distributions and tool chain but alsoincludes some performance and feature upgrades and inspection bug fixes It deprecatesprevious releases Please upgrade before reporting bugs on previous releases

This release is primarily a maintenance release

Major features since the last public release are as follows

- Minor documentation corrections- Kernel module license made explicit GPL v2 And then changed back to GPL- License upgrade to AGPL Version 3- Modifications to build under Fedora lsquo26225-49rsquo kernel These changes also sup-

port lsquo26229-91fc7rsquo kernel Use IRQF_DISABLED and IRQF_SHARED instead ofdeprecated SA_INTERRUPT and SA_SHIRQ Use pci_register_driver instead of pci_module_init

- Ability to strap out major documentation build and installation primarily for embeddedtargets

- Improvements to common build process for embedded and cross-compile targets- Modifications to build under Fedora lsquo2625-45fc9rsquo and lsquo26265-45fc9rsquo kernels

10 Linux STREAMS is buggy unsupported and deprecated Do not use it

38 OpenSS7 SS7 Stack

- Updated tool chain to lsquom4-1412rsquo lsquoautoconf-263rsquo and lsquotexinfo-413rsquo- Conversion of RPM spec files to common approach for major subpackages- Updated references database for manual pages and roff documents- Build system now builds yum(8) repositories for RPMs and apt-get(8) repositories

for DEBs Installation documentation has been updated to include details of repositoryinstall sourcesref

- Added MODULE_VERSION to all modules and drivers- Corrections for recent RHAS4 kernels defining irq handler t with 3 argument function

template- Added sdl-pmod and sdt-pmod STREAMS modules and manual pages These

two STREAMS modules simluate an SDT and SDL interface connection using aSTREAMS-based pipe for testing purposes

- Added MTPI specification texinfo (info html pdf) document- Added CNAM project document The CNAM projects provides a locally attached

TCAP CNAM database front-end that performs SS7 stack functions local to the switch-ing office and queries a back-end CNAM database using IP over the Internet

- Added SDLI SDTI and SLI specifications texinfo (info html pdf) document- Added manual pages for LMI and all LMI primitives- Added manual pages for SDLI and all SDLI primitives- Added manual pages for SDTI and all SDTI primitives- Added manual pages for SLI and all SLI primitives

This is a public beta release of the package it deprecates previous releases Please upgradeto the current release before reporting bugs Please see lsquoREADME-alpharsquo in the release orSection 54 [Maturity] page 42

As with other OpenSS7 releases this release configures compiles installs and builds RPMsand DEBs for a wide range of Linux 24 and 26 RPM- and DPKG-based distributions andcan be used on production kernels without patching or recompiling the kernel

This package is publicly released under the GNU Affero General Public License Version 3The release is available as an autoconf tarball SRPM DSC and set of binary RPMs andDEBs See the downloads page for the autoconf tarballs SRPMs and DSCs For tarballsSRPMs DSCs and binary RPMs and DEBs see the strss7 package page

See httpwwwopenss7orgcodefilesstrss7-09a8ChangeLog andhttpwwwopenss7orgcodefilesstrss7-09a8NEWS in the release formore information Also see the lsquostrss7pdfrsquo manual in the release (also in htmlhttpwwwopenss7orgstrss7_manualhtml)

For the news release see httpwwwopenss7orgrel20081029_5html

Major changes for release strss7-09a7

The OpenSS7 SS7 Stack package contains a wide array of SS7 drivers and components forLinux Fast-STREAMS This is the public release package which has most of the componentsremoved Subscribers and sponsors of the OpenSS7 Project have access to the full array ofcomponents

Chapter 5 Releases 39

This is the seventh release of the OpenSS7 SS7 Stack strss7 package that contains SS7(Signalling System No 7) signalling stack components for Linux Fast-STREAMS Thepackage contains the necessary header files manual pages and other documentation for SS7components in a separate autoconf tarball

This release is primarily to support recent compilers kernels and distributions

Major features since the last public release are as follows

- Support build on openSUSE 102

- Support build on Fedora 7 with 2621 kernel

- Support build on CentOS 50 (RHEL5)

- Support build on Ubuntu 704

- Updated to gettext 0161

- Changes to support build on 2620-12307fc5 and 2620-12933fc6 kernel

- Supports build on Fedora Core 6

- Support for recent distributions and tool chains

Major changes for release strss7-09a6

The OpenSS7 SS7 Stack package contains a wide array of SS7 drivers and components forLinux Fast-STREAMS This is the public release package which has most of the componentsremoved Subscribers and sponsors of the OpenSS7 Project have access to the full array ofcomponents

This is the sixth release of the OpenSS7 SS7 Stack strss7 package that contains SS7 (Sig-nalling System No 7) signalling stack components for Linux Fast-STREAMS The packagecontains the necessary header files manual pages and other documentation for SS7 compo-nents in a separate autoconf tarball

This release is primarily to support recent compilers kernels and distributions

Major features since the last public release are as follows

- Corrected support for the DS2152213522155221542135221555 chips present inolder V400P cards (See httpwwwopenss7orgcodefilesstrss7-09a8BUGSin the release for more information)

- Support for the DS2156 chip present in recent V401PE cards (Seehttpwwwopenss7orgcodefilesstrss7-09a8BUGS in the releasefor more information)

- Corrections for timer bugs in the X400P-SS7 driver (See httpwwwopenss7orgcodefilesstrss7-09a8BUGSin the release for more information)

- Improvements to the common build environment with better support for standalonepackage builds on 24 kernels

- Support for autoconf 261 automake 110 and gettext 016

- Support for Ubuntu 610 distribution and bug fixes for i386 kernels

- The package now looks for other subpackages with a version number as unpacked byseparate tarball

40 OpenSS7 SS7 Stack

Major changes for release strss7-09a5

The OpenSS7 SS7 Stack package contains a wide array of SS7 SIGTRAN ISDN and VoIPdrivers and components for Linux Fast-STREAMS This is the public release package whichhas most of the components removed Subscribers and sponsors of the OpenSS7 Projecthave access to the full array of components

This is the fifth release of the OpenSS7 SS7 Stack strss7 package that contains SS7 (Sig-nalling System No 7) SIGTRAN (SIGnalling TRANsport) ISDN (Integrated ServicesDigital Network) and VoIP (Void over Internet Protocol) signalling stack components forLinux Fast-STREAMS The package contains the necessary header files manual pages andother documentation for SS7SIGTRANISDNVoIP components in a separate autoconftarball

This release is primarily to support recent compilers kernels and distributions and toupgrade the X400P-SS7 driver with support for the Varion V401P (Tormenta III) cardsAlso this is the first release that has ISDN SIGTRAN and VoIP components moved toseparate packages (but will still build all components)

- The X400P-SS7 driver has been upgraded to support the Varion V401P (Tormenta III)card This driver passes all validation test suites and is production grade The driverstill supports the older cards Also an autoconf style validation test suite was addedand the lsquotest-x400prsquo test case executable upgraded

- Support for most recent 2618 kernels (including Fedora Core 5 with inode diet patch-set)

- The package will now build doxygen(1) html documentation with the rsquodoxyrsquo maketarget See rsquomake helprsquo or README-make in the distribution for more information

- Now builds 32-bit compatibility libraries and tests them against 64-bit kernel modulesand drivers The lsquomake installcheckrsquo target will now automatically test both 64-bitnative and 32-bit compatibility versions one after the other on 64-bit platforms

- Added versions to all library symbols

- Many documentation updates for all OpenSS7 packages Automated release file gener-ation making for vastly improved and timely text documentation present in the releasedirectory

- Dropped support for LiS

- Package will now support extended ranges of minor devices on 26 kernels under LinuxFast-STREAMS only

- Better detection of SUSE distributions release numbers and SLES distributions sup-port for additional SuSE distributions on ix86 as well as x86_64 Added distributionsupport includes SLES 9 SLES 9 SP2 SLES 9 SP3 SLES 10 SuSE 101

- Improved compiler flag generation and optimizations for recent gcc compilers and someidiosyncratic behaviour for some distributions (primarily SUSE)

- Optimized compilation is now available also for user level programs in addition to kernelprograms Added new lsquo--with-optimizersquo option to configure to accomplish this

- Automated release file generation making for vastly improved and timely text docu-mentation present in the release directory

Chapter 5 Releases 41

- Added --disable-devel configure option to suppress building and installing devel-opment environment This feature is for embedded or pure runtime targets that do notneed the development environment (static libraries manual pages documentation)

- Added send-pr script for automatic problem report generation

Major changes for release strss7-09a-4

This release is primarily to support additional compilers (gcc 402) architectures (x86 64SMP 32-bit compatibility) recent Linux distributions (EL4 SuSE 10 LE2006 OpenSuSE)and kernels (2615)

- Changes necessary for LP64 compatible builds Changes to support 32-bit ioctlcompatibility for LP64 architectures Binary compatibility should not have beendisrupted At the same time as the ioctl32 changes TRANSPARENT ioctl supportfor most of the IO controls for the ldl(4) driver has been added

- Changes to satisfy gcc 402 compiler

- Corrections for and testing of 64-bit clean compile and test runs on x86 64 architectureSome bug corrections resulting from gcc 402 compiler warnings

- Corrected build flags for Gentoo and 2615 kernels as reported on mailing list

- Initial corrections for and testing of SMP operation on Intel 630 Hyper-Threaded SMPon x86 64 This package should now run well on N-way Xeons even with Hyper-Threading enabled

- Corrections and validation of 32-bit compatibility over 64-bit on x86 64 Should applywell to other 64-bit architectures as well

This is a public alpha release of the package

Major changes for release strss7-09a-3

This is primarily a bug fixes release and corrections resulting from testing This isa major bug fix release The previous release was largely untested This release hasbeen verified (conformance test suite passes) for operation with Linux Fast-STREAMS(lsquostreams-07a4rsquo)

With this release version numbers were changed to reflect an upstream version only tobe consistent with other OpenSS7 package releases All RPM release numbers will belsquo-1$(PACKAGE_RPMEXTRA)rsquo and all Debian release numbers will be lsquo_0rsquo If you wish toapply patches and release the package please bump up the release number and apply asuitable release suffix for your organization We leave Debian release number lsquo_1rsquo reservedfor your use so you can still bundle the source in the lsquodscrsquo file

Major changes for this release include build against Linux 26 kernels and popular distri-butions based on the 26 kernel as well as wider distribution support The package alsosupports both lsquoLiS-2181rsquo as well as lsquostreams-07arsquo on both kernels

Not publicly released

Major changes for release strss7-09a-2

Not publicly released

42 OpenSS7 SS7 Stack

Initial release strss7-09a-1

Initial autoconfRPM packaging of the strss7 releaseNot publicly released

54 Maturity

The OpenSS7 Project adheres to the following release philosophybull pre-alpha releasebull alpha releasebull beta releasebull gamma releasebull production releasebull unstable release

541 Pre-Alpha Releases

Pre-alpha releases are releases that have received no testing whatsoever Code in the releaseis not even known to configure or compile The purpose of a pre-alpha release is to makecode and documentation available for inspection only and to solicit comments on the designapproach or other characteristics of the software packagePre-alpha release packages ship containing warnings recommending that the user not evenexecute the contained code

542 Alpha Releases

Alpha releases are releases that have received little to no testing or that have been testedand contains known bugs or defects that make the package unsuitable even for testing Thepurpose for an alpha release are the same as for the pre-alpha release with the additionalpurpose that it is an early release of partially functional code that has problems that anexternal developer might be willing to fix themselves and contribute back to the projectAlpha release packages ship containing warnings that executing the code can crash machinesand might possibly do damage to systems upon which it is executed

543 Beta Releases

Beta releases are releases that have received some testing but the testing to date is notexhaustive Beta release packages do not ship with known defects All known defectsare resolved before distribution however as exhaustive testing has not been performedunknown defects may exist The purpose for a beta release is to provide a baseline for otherorganizations to participate in the rigorous testing of the packageBeta release packages ship containing warnings that the package has not been exhaustivelytested and that the package may cause systems to crash Suitability of software in thiscategory for production use is not advised by the project however as always is at thediscretion of the user of the software

544 Gamma Releases

Gamma releases are releases that have received exhaustive testing within the project butexternal testing has been minimal Gamma release packages do not ship with known defects

Chapter 5 Releases 43

As exhaustive internal testing has been performed unknown defects should be few Pleaseremember that there is NO WARRANTY on public release packagesGamma release packages typically resolve problems in previous beta releases and mightnot have had full regression testing performed Suitability of software in this categoryfor production use is at the discretion of the user of the software The OpenSS7 Projectrecommends that the complete validation test suites provided with the package be performedand pass on target systems before considering production use

545 Production Releases

Production releases are releases that have received exhaustive testing within the projectand validated on specific distributions and architectures Production release packages donot ship with known defects Please remember that there is NO WARRANTY on publicrelease packagesProduction packages ship containing a list of validated distributions and architectures Fullregression testing of any maintenance changes is performed Suitability of software in thiscategory for production use on the specified target distributions and architectures is at thediscretion of the user It should not be necessary to preform validation tests on the set ofsupported target systems before considering production use

546 Unstable Releases

Unstable releases are releases that have received extensive testing within the project andvalidated on a a wide range of distributions and architectures however is has tested un-stable and found to be suffering from critical problems and issues that cannot be resolvedMaintenance of the package has proved impossible Unstable release packages ship withknown defects (and loud warnings) Suitability of software in this category for productionuse is at the discretion of the user of the software The OpenSS7 Project recommendsthat the problems and issues be closely examined before this software is used even in anon-production environment Each failing test scenario should be completely avoided bythe application OpenSS7 beta software is more stable that software in this category

55 Bugs

551 Defect Notices

OpenSS7 SS7 Stack has unknown defects This is an alpha release Some defects couldbe harmful No validation testing whatsoever has been performed by the OpenSS7 Projecton this software The software might fail to configure or compile on some systems TheOpenSS7 Project recommends that you do not use this software for purposes other thandeveloment or evaluation and then only with great care Use at your own risk Rememberthat there is NO WARRANTY11

This software is alpha software As such it can likely crash your kernel Installation of thesoftware can irreparably mangle your header files or Linux distribution in such a way asto make it unusable Crashes could lock your system and rebooting the system might notrepair the problem You can possibly lose all the data on your system Because this software

11 See sections Disclaimer of Warranty and Limitation of Liability under [GNU Affero General Public License]page 104

44 OpenSS7 SS7 Stack

can crash your kernel the resulting unstable system could destroy computer hardware orperipherals making them unusable You could void the warranty on any system on whichyou run this software YOU HAVE BEEN WARNED

552 Known Defects

With the exception of packages not originally created by the OpenSS7 Project the OpenSS7Project software does not ship with known bugs in any release stage except pre-alphaOpenSS7 SS7 Stack had no known bugs at the time of release

553 Defect History

This section contains historical bugs that were encountered during development and theirresolutions This list serves two purposes1 It captures bugs encountered between releases during development that could possibly

reoccur (and the Moon is made of blue cheese) It therefore provides a place for usersto look if they encounter a problem

2 It provides a low overhead bug list between releases for developers to use as a lsquoTODOrsquolist

Bugs

006 2008-08-17T034223+0000The xnet library was discovered to contain a thread-safety bug caused by newerbehaviour of pthread once() causing the library to core dump when used onrecent implementations of pthreads (nptl)The xnet library is no longer normally compiled as part of the lsquostrss7rsquo packagefixed in strss7-09a8

005 2007-07-21T171502-0600It was discovered that recent kernel on RHAS4 are defining irq handler t buthave the old 3 argument function template for irq handlers The detectionlogic assumed that if irq hander t existed that the newer 2 argument functiontemplate for irq handlers were in effect This caused builds to fail on theseRHAS4 kernelsfixed in strss7-09a8rc1A check was added to the configure script to test whether the irq handler t hasthe newer 2 argument template

004 2007-03-13T233637-0600 (x400p-ss75766)Older chips were not being recognized correctly either Reflected device tableand a few missing break statements was the causefixed in strss7-09a6

003 2007-03-13T024038-0600 (x400p-ss75766)It appears that V401PE cards were almost loading (configuring mappingdownloading firmware) but were failing to configure at the final stage of theprocess (matching device id to board type) The device id for the 2155 is sup-posed to be b4 regardless of E1 or T1 but I just guess that the card is reporting

Chapter 5 Releases 45

34 instead of b4 for E1 (it might be the firmware setting or unsetting the highbit as was done for the other devices) I changed the sl x400pc driver to printerror messages when loading if such mismatches occur and set the device idsto accept 0x3X as an E1 2155 device and 0bX as a T1J1 2155 device (eventhough they are all the same)As it turns out the V401PE cards have a DS2156 chip instead of a DS2155chip The only difference is the lack of Tx fixed gain control (register 0x7d)and the DS2156 supports a UTOPIA II bus that is not used on the V401PEI changed the driver to recognize the DS2156 and skip register 0x7d when itexists The DS2156 chip will work for both V401T (D33D) and V401E (D44D)cardsfixed in strss7-09a6

002 2007-03-08T210547-0700Timers were message up (using HZ instead of milliseconds) on the X400P driverThis did not affect architectures with 1000 HZ or 1024 HZ tick clocks but 100HZ systems objectfixed in strss7-09a6

001 2007-03-05T155814-0700For some reason the package was always building and installing the lsquolibxnetrsquotexinfo document which was keeping the RPM from installing after thelsquostrxnetrsquo package This was fixed in lsquodocmanualMakefileamrsquo with theaddition of a lsquoWITH_XNETrsquo conditionalfixed in strss7-09a6

56 Schedule

Current Plan

The current plan includes the public production release of SCCP ISUP and TCAP com-ponents MTP3 has not yet been publicly released and is not currently scheduled (Imple-menting the AS-side of M3UA is taking precedence) The first public production releases ofSCCP ISUP and TCAP are planned for the end of July 2007 This will be followed by laband limitied field trial testing with a lead customer in August and production deploymentin the lead customerrsquos network in 1Q2008 Expect that over the next 8 months releases ofthis package will include major new development and validation testing as well as includingSCCP ISUP and TCAP components that have nor heretofore been publicly released

Things to Do

There is a great long list of these but here is a crack at the first onesminus Compile entire (private) package against Linux Fast-STREAMSminus Convert test programs into conformance test suites under GNU autotest This should

be straight forward matterminus Start retesting SIGTRAN components against SCTP and Linux Fast-STREAMS start-

ing with M2PAminus Start retesting SS7 Device Drivers under Linux Fast-STREAMS starting with X400P

46 OpenSS7 SS7 Stack

minus Start retesting SS7 Stack components (MTP2 MTP3 SCCP ISUP TCAP) underLinux Fast-STREAMS

minus Package a public release It has been way too long since a public release of this packageThe package has almost a million lines of code in it most of which the public has neverseen

minus Complete the SL-MUX driver and utility programsminus Complete the libslpcap library (pcap(3)) for live capture of SS7 link SDUs using

ethereal(1) or wireshark(1)

57 History

For the latest developments with regard to history of changes please see the lsquoChangeLogrsquofile in the release package

Chapter 6 Installation 47

6 Installation

61 Repositories

The OpenSS7 SS7 Stack package release can be accessed from the repositories of TheOpenSS7 Project For rpm(1) based systems the package is available in a yum(8) reposi-tory based on lsquorepomdrsquo XML and may also be accessed using zypper(8) or yast(8) Fordpkg(1) based systems the package is available in a apt(8) repository

By far the easiest (most repeatable and manageable) form for installing and using OpenSS7packages is to install packages from the yum(8) or apt(8) repositories If your distributiondoes not support yum(8) zypper(8) yast(8) or apt(8) then it is still possible to installthe RPMs or DEBs from the repositories using rpm(1) dpkg(1) or by using wget(1) andthen installing them from RPM or DEB using rpm(1) or dpkg(1) locally

If binaries are not available for your distribution or specific kernel but your distributionsupports rpm(1) or dpkg(1) the next best method for installing and using OpenSS7 pack-ages is to download and rebuild the source RPMs or DSCs from the repository This canalso be performed with yum(8) zypper(8) yast(8) apt(8) or directly using wget(1)rpm(1) or dpkg(1)

If your architecture does not support rpm(1) or dpkg(1) at all or you have special needs(such as cross-compiling for embedded targets) the final resort method is to downloadconfigure build and install from tarball In this later case the easiest way to build andinstall OpenSS7 packages from tarball is to use the tarball for the OpenSS7 Master Packageopenss7-092G

611 Repositories for YUM

To install or upgrade from the OpenSS7 lsquorepomdrsquo repositories you will need a file inyour lsquoetcyumrepodrsquo directory This file can be obtained directly from the OpenSS7repository like so

$gt REPOS=httpwwwopenss7orgreposrpms$gt wget $REPOScentos52x86_64repodataopenss7repo$gt sudo cp -f openss7repo etcyumrepod$gt sudo yum makecache

This example assumes the the distribution is lsquocentosrsquo and the distribution releaseis lsquo52rsquo and the architecture requires is lsquox86_64rsquo Another example would belsquo$REPOSi686suse110i686repodataopenss7reporsquo for using yum(8) with SUSE

Once the repository is set up OpenSS7 includes a number of virtual package definitionsthat eas the installation and removal of kernel modules libraries and utilities Downloadingconfiguring building and installation for a single-kernel distribution is as easy as

$gt sudo yum install strss7

Removing the package is as easy as

$gt sudo yum remove strss7

If you have difficulty downloading the lsquoopenss7reporsquo file edit the following informationinto the file and place it into the lsquoetcyumrepodopenss7reporsquo file

48 OpenSS7 SS7 Stack

-| [openss7]-| enabled = 1-| name = OpenSS7 Repository-| baseurl = httpwwwopenss7orgreposrpmscentos52x86_64-| gpgcheck = 1-| gpgkey = httpwwwopenss7orgpubkeyasc

Note that it is also possible to point to these repositories as an additional installation sourcewhen installing CentOS RedHat Fedora or others You will have an additional STREAMScategory from which to choose installation packagesSome additional installation real or virtual package names and the installations they ac-complish are as follows

lsquostrss7rsquoThis package can be used to install or remove the entire OpenSS7 SS7 Stackpackage When installing kernel modules will be installed automatically forthe highest version kernel on your system When removing all correspondingkernel modules will also be removed

lsquostrss7-develrsquoThis package can be used to install or remove the development components ofthe OpenSS7 SS7 Stack package When installing lsquostrss7rsquo and appropriatekernel module and kernel module development and debug packages will alsobe installed When removing the development package and all kernel moduledevelopment and debug packages will also be removed

lsquostrss7-2420-287rsquoThis package can be used to install or remove the package for a specific kernelversion When installing the lsquostrss7rsquo package will also be installed if necessaryWhen removing the last kernel module package the lsquostrss7rsquo package will alsobe removedNote that the version lsquo2420-287rsquo is just an example Use the version re-turned by lsquo$(uname -r)rsquo for the kernel for which you wish to install or removethe packages

lsquostrss7-2420-287-develrsquoThis package can be used to install or remove the development and debugpackages for a specific kernel version When installing the lsquostrss7rsquo andlsquostrss7-develrsquo packages will also be installed if necessary When removingthe development and debug for kernel modules for the last kernel thelsquostrss7-develrsquo package will also be removedNote that the version lsquo2420-287rsquo is just an example Use the version re-turned by lsquo$(uname -r)rsquo for the kernel for which you wish to install or removethe packages

For assistance with specific RPMs see Section 623 [Downloading the Binary RPM]page 51

612 Repositories for APT

For assistance with specific DEBs see Section 624 [Downloading the Debian DEB] page 54

Chapter 6 Installation 49

62 Downloading

The OpenSS7 SS7 Stack package releases can be downloaded from the downloads page ofThe OpenSS7 Project The package is available as a binary RPM (for popular architectures)a source RPM Debian binary DEB and source DSC or as a tar ball If you are using abrowsable viewer you can obtain the OpenSS7 release of strss7 from the links in thesections that followBy far the easiest (most repeatable and manageable) form for installing and using OpenSS7packages is to download and install individual packages from binary RPM or DEB If binaryRPMs or DEBs are not available for your distribution but your distribution supportsrpm(1) or dpkg(1) the next best method for installing and using OpenSS7 packages is todownload and rebuild the source RPMs or DSCsIf your architecture does not support rpm(1) or dpkg(1) at all or you have special needs(such as cross-compiling for embedded targets) the final resort method is to downloadconfigure build and install from tarball In this later case the easiest way to build andinstall OpenSS7 packages from tarball is to use the tarball for the OpenSS7 Master Packageopenss7-092G

621 Downloading with YUM

OpenSS7 repositories support yum(8) and zypper(8) in repomd XML format as well asYaST and YaST2 formatsOpenSS7 includes virtual packages that ease the installation and removal of kernel moduleslibraries and utilities Downloading configuration building and installation for a signle-kernel distribution installation is as easy as sudo yum install strss7

This and additional packages for installation are detailed as follows

lsquostrss7rsquo Install this package if you need the runtime lsquostrss7rsquo package sudo yum install strss7

This will install the lsquostrss7rsquo lsquostrss7-librsquo and lsquostrss7-KVERSIONrsquo RPMswhere lsquoKVERSIONrsquo is the highest version number kernel on your systemRemove this package if you need to remove all vestages of the lsquostrss7rsquo package

sudo yum remove strss7

This will remove the lsquostrss7rsquo lsquostrss7-librsquo lsquostrss7-develrsquolsquostrss7-KVERSIONrsquo and lsquostrss7-devel-KVERSIONrsquo RPMs for allkernels on your system

lsquostrss7-develrsquoInstall this package if you need the development lsquostrss7rsquo package

sudo yum install strss7-devel

This will install the lsquostrss7rsquo lsquostrss7-librsquo lsquostrss7-develrsquolsquostrss7-KVERSIONrsquo and lsquostrss7-devel-KVERSIONrsquo RPMs wherelsquoKVERSIONrsquo is the highest version number kernel on your systemRemove this package if you do not need development capabilities for thelsquostrss7rsquo package for any kernel

50 OpenSS7 SS7 Stack

sudo yum remove strss7-devel

This will remove the lsquostrss7-develrsquo and lsquostrss7-devel-KVERSIONrsquo RPMs forall kernels on your system

lsquostrss7-2420-287rsquoInstall this package if you need the runtime lsquostrss7rsquo for kernel versionlsquo2420-287rsquo The value lsquo2420-287rsquo is just an example For the runningkernel you can install the runtime lsquostrss7rsquo components with

sudo yum install strss7-$(uname -r)

This will install the lsquostrss7rsquo lsquostrss7-librsquo and lsquostrss7-2420-287rsquo RPMswhere lsquo2420-287rsquo is the kernel version specified

Remove this package if you no longer need the runtime lsquostrss7rsquo for kernelversion lsquo2420-287rsquo The value lsquo2420-287rsquo is just an example For therunning kernel you can remove the runtime lsquostrss7rsquo components with

sudo yum remove strss7-$(uname -r)

This will remove the lsquostrss7-2420-287rsquo and lsquostrss7-devel-2420-287rsquoRPMs where lsquo2420-287rsquo is the kernel version specified Also if this is thelast kernel for which lsquostrss7rsquo was installed the lsquostrss7rsquo lsquostrss7-librsquo andlsquostrss7-develrsquo RPMs will also be removed

Note that this is a virtual package name the actual RPMs installed or removedfrom the system is a kernel module package whose precise name will dependupon the system being used

lsquostrss7-devel-2420-287rsquoInstall this package if you need the development lsquostrss7rsquo package for kernelversion lsquo2420-287rsquo The value lsquo2420-287rsquo is just an example For therunning kernel you can install the kernel development lsquostrss7rsquo componentswith

sudo yum install strss7-devel-$(uname -r)

This will install the lsquostrss7rsquo lsquostrss7-librsquo lsquostrss7-develrsquolsquostrss7-2420-287rsquo and lsquostrss7-devel-2420-287rsquo RPMswhere lsquo2420-287rsquo is the kernel version specified

Remove this package if you no longer need the development capabilities for thelsquostrss7rsquo package for kernel version lsquo2420-287rsquo The value lsquo2420-287rsquo isjust an example For the running kernel you can remove the kernel developmentlsquostrss7rsquo components with

sudo yum remove strss7-devel-$(uname -r)

This will remove the lsquostrss7-devel-2420-287rsquo RPMs wherelsquo2420-287rsquo is the kernel version specified Also if this is the last kernel forwhich lsquostrss7rsquo was installed the lsquostrss7-develrsquo RPMs will also be removed

Note that this is a virtual package name the actual RPMs installed or removedfrom the system is a kernel module package whose precise name will dependupon the system being used

Chapter 6 Installation 51

lsquostrss7-librsquoThis package is an auxillary package that should be removed and inserted au-tomatically by yum(8) In rare instances you might need to remove or installthis package explicitly

622 Downloading with APT

OpenSS7 repositries support apt(8) repositorie digests and signatures

623 Downloading the Binary RPM

To install from binary RPM you will need several of the RPM for a complete installationBinary RPM fall into several categories To download and install a complete packagerequires the appropriate RPM from each of the several categories below as applicableSome release packages do not provide RPMs in each of the several categories

To install from Binary RPM you will need all of the following kernel independent packagesfor your architecture and one of the kernel-dependent packages from the next section

Independent RPM

Independent RPM are dependent on neither the Linux kernel version nor the STREAMSpackage For example the source package lsquostrss7-source-09a8-172noarchrpmrsquo isnot dependent on kernel nor STREAMS package

All of the following kernel and STREAMS independent RPM are required for your architec-ture Binary RPMs listed here are for example only additional binary RPMs are availablefrom the downloads site If your architecture is not available you can build binary RPMfrom the source RPM (see see Section 641 [Building from the Source RPM] page 77)

Architecture Independent

strss7-dev-09a8-172noarchrpmThe lsquostrss7-devrsquo package contains the device definitions necessary to run ap-plications programs developed for OpenSS7 SS7 Stack1

strss7-doc-09a8-172noarchrpmThe lsquostrss7-docrsquo package contains this manual in plain text postscript lsquopdfrsquoand lsquohtmlrsquo forms along with the meta-information from the lsquostrss7rsquo packageIt also contains all of the manual pages necessary for developing OpenSS7 SS7Stack applications and OpenSS7 SS7 Stack STREAMS modules or drivers

strss7-init-09a8-172noarchrpmThe lsquostrss7-initrsquo package contains the init scripts and provides thelsquopostinstrsquo scripts necessary to create kernel module preloads and modulesdefinitions for all kernel module lsquocorersquo subpackages

1 Not all distributions support the lsquodevrsquo RPM macro a case in point is the SuSE 80 distribution whichuses an older version of rpm(1) Distributions that do not support the lsquodevrsquo macro will build devices asa lsquopostrsquo operation Note also that not all release packages contain devices Only packages that provideSTREAMS character device drivers need devices and then only when the lsquospecfsrsquo or lsquodevfsdrsquo is not beingused

52 OpenSS7 SS7 Stack

strss7-source-09a8-172noarchrpmThe lsquostrss7-sourcersquo package contains the source code necessary for buildingthe OpenSS7 SS7 Stack release It includes the autoconf(1) configurationutilities necessary to create and distribute tarballs lsquorpmrsquo and lsquodebrsquolsquodscrsquo2

Architecture Dependent

strss7-devel-09a8-172i686rpmThe lsquostrss7-develrsquo package contains library archives for static compilationheader files to develop OpenSS7 SS7 Stack modules and drivers This alsoincludes the header files and static libraries required to compile OpenSS7 SS7Stack applications programs

strss7-lib-09a8-172i686rpmThe lsquostrss7-librsquo package contains the run-time shared libraries necessary torun application programs and utilities developed for the lsquostrss7rsquo package3

STREAMS-Dependent RPM

STREAMS-Dependent RPM are dependent upon the specific STREAMS package beingused either Linux STREAMS or Linux Fast-STREAMS Packages dependent uponLinux STREAMS will have lsquoLiSrsquo in the package name Packages dependent uponLinux Fast-STREAMS will have lsquostreamsrsquo in the package name Note that someSTREAMS-Dependent RPM are also Kernel-Dependent RPM as described below

One of the following STREAMS-Dependent packages is required for your architecture Ifyour architecture is not on the list you can build binary RPM from the source RPM (seesee Section 641 [Building from the Source RPM] page 77)

strss7-LiS-util-09a8-172i686rpmThe lsquostrss7-LiS-utilrsquo package provides administrative and configuration testutilities and commands associated with the OpenSS7 SS7 Stack package Be-cause this package must link a STREAMS-specific library it is a STREAMS-Dependent package Use the lsquostrss7-LiS-utilrsquo package if you have LiS in-stalled

strss7-streams-util-09a8-172i686rpmThe lsquostrss7-streams-utilrsquo package provides administrative and configura-tion test utilities and commands associated with the OpenSS7 SS7 Stack pack-age Because this package must link a STREAMS-specific library it is aSTREAMS-Dependent package Use the lsquostrss7-streams-utilrsquo package ifyou have streams installed

Kernel-Dependent RPM

Kernel-Dependent RPM are dependent on specific Linux Kernel Binary RPM releasesPackages are provided for popular released RedHat kernels Packages dependent upon Red-

2 Note that not all releases have source RPM packages Release packages that do not contain kernel modulesdo not generate a source RPM package

3 Note that not all release packages contain shared libraries and therefore not all release packages containthis package

Chapter 6 Installation 53

Hat or other kernel RPM will have the lsquo_kversionrsquo kernel package version in the packagenameOne of the following Kernel-Dependent packages is required for your architecture and kernelversion If your architecture or kernel version is not on the list you can build binary RPMfrom the source RPM (see see Section 641 [Building from the Source RPM] page 77)4

strss7-core-2420-287-09a8-172i686rpmThe lsquostrss7-corersquo package contains the loadable kernel modules that dependonly on the kernel This package is heavily tied to the kernel for which it wascompiled This particular package applies to kernel version lsquo2420-287rsquo5

strss7-info-2420-287-09a8-172i686rpmThe lsquostrss7-inforsquo package6 contains the module symbol version informationfor the lsquocorersquo subpackage above It is possible to load this subpackage andcompile modules that use the exported symbols without loading the actualkernel modules (from the lsquocorersquo subpackage above) This package is heavilytied to the kernel for which it was compiled This particular package applies tokernel version lsquo2420-287rsquo7

strss7-LiS-core-2420-287-09a8-172i686rpmThe lsquostrss7-LiS-corersquo package contains the kernel modules that providethe OpenSS7 SS7 Stack STREAMS modules and drivers This package isheavily tied to the STREAMS package and kernel for which it was compiledThis particular package applies to lsquoLiSrsquo (Linux STREAMS) on kernel versionlsquo2420-287rsquo8

strss7-streams-core-2420-287-09a8-172i686rpmThe lsquostrss7-streams-corersquo package contains the kernel modules that pro-vide the OpenSS7 SS7 Stack STREAMS modules and drivers This package isheavily tied to the STREAMS package and kernel for which it was compiledThis particular package applies to lsquostreamsrsquo (Linux Fast-STREAMS) on kernelversion lsquo2420-287rsquo9

strss7-LiS-info-2420-287-09a8-172i686rpmThe lsquostrss7-LiS-inforsquo package10 contains the module symbol version infor-mation for the lsquoLiS-corersquo subpackage above It is possible to load this sub-package and compile modules that use the exported symbols without loaded the

4 Note that on Mandrakelinux unlike other RPM kernel distributions kernel packages for the ix86 architec-tures are always placed in i586 architecture packages regardless of the true processor architecture of thekernel package lsquoconfigurersquo detects this and builds the appropriate packages

5 Note that the lsquo_kversionrsquo of lsquo2420-287rsquo is only an example Note also that only release packages thatcontain kernel modules will contain a lsquocorersquo subpackage

6 Note that only release packages that contain kernel modules and that export versioned symbols will containa lsquoinforsquo subpackage Also this subpackage is only applicable to 24 series kernels and is not necessary andnot built for 26 series kernels

7 Note that the lsquo_kversionrsquo of lsquo2420-287rsquo is only an example8 Note that the lsquo_kversionrsquo of lsquo2420-287rsquo is only an example9 Note that the lsquo_kversionrsquo of lsquo2420-287rsquo is only an example

10 Note that only release packages that contain kernel modules and that export versioned symbols will containa lsquoLiS-inforsquo subpackage

54 OpenSS7 SS7 Stack

actual kernel modules (from the lsquoLiS-corersquo subpackage above) This packageis heavily tied to the STREAMS package and kernel for which it was compiledThis particular package applies to lsquoLiSrsquo (Linux STREAMS) on kernel versionlsquo2420-287rsquo11

strss7-streams-info-2420-287-09a8-172i686rpmThe lsquostrss7-streams-inforsquo package12 contains the module symbol version in-formation for the lsquostreams-corersquo subpackage above It is possible to loadthis subpackage and compile modules that use the exported symbols withoutloaded the actual kernel modules (from the lsquostreams-corersquo subpackage above)This package is heavily tied to the STREAMS package and kernel for whichit was compiled This particular package applies to lsquostreamsrsquo (Linux Fast-STREAMS) on kernel version lsquo2420-287rsquo13

Configuration and Installation

To configure build and install the binary RPM See Section 631 [Configuring the BinaryRPM] page 62

624 Downloading the Debian DEB

To install from binary DEB you will need several of the DEB for a complete installationBinary DEB fall into several categories To download and install a complete package requiresthe appropriate DEB from each of the several categories below as applicable Some releasepackages do not provide DEBs in each of the several categories

To install from Binary DEB you will need all of the following kernel independent packagesfor your architecture and one of the kernel-dependent packages from the next section

Independent DEB

Independent DEB are dependent on neither the Linux kernel version nor the STREAMSpackage For example the source package lsquostrss7-source_09a8-0_i386debrsquo is notdependent on kernel nor STREAMS package

All of the following kernel and STREAMS independent DEB are required for your architec-ture Binary DEBs listed here are for example only additional binary DEBs are availablefrom the downloads site If your architecture is not available you can build binary DEBfrom the Debian DSC (see see Section 642 [Building from the Debian DSC] page 78)

Architecture Independent

strss7-dev 09a8-0 alldebThe lsquostrss7-devrsquo package contains the device definitions necessary to run ap-plications programs developed for OpenSS7 SS7 Stack14

11 Note that the lsquo_kversionrsquo of lsquo2420-287rsquo is only an example12 Note that only release packages that contain kernel modules and that export versioned symbols will contain

a lsquostreams-inforsquo subpackage13 Note that the lsquo_kversionrsquo of lsquo2420-287rsquo is only an example14 Note that not all release packages contain devices Only packages that provide STREAMS character device

drivers need devices and then only when the lsquospecfsrsquo or lsquodevfsdrsquo is not being used

Chapter 6 Installation 55

strss7-doc 09a8-0 alldebThe lsquostrss7-docrsquo package contains this manual in plain text postscript lsquopdfrsquoand lsquohtmlrsquo forms along with the meta-information from the lsquostrss7rsquo packageIt also contains all of the manual pages necessary for developing OpenSS7 SS7Stack applications and OpenSS7 SS7 Stack STREAMS modules or drivers

strss7-init 09a8-0 alldebThe lsquostrss7-initrsquo package contains the init scripts and provides the postinstscripts necessary to create kernel module preloads and modules definitions forall kernel module lsquocorersquo subpackages

strss7-source 09a8-0 alldebThe lsquostrss7-sourcersquo package contains the source code necessary for buildingthe OpenSS7 SS7 Stack release It includes the autoconf(1) configurationutilities necessary to create and distribute tarballs rpms and debdscs15

Architecture Dependent

strss7-devel 09a8-0 i386debThe lsquostrss7-develrsquo package contains library archives for static compilationheader files to develop OpenSS7 SS7 Stack modules and drivers This alsoincludes the header files and static libraries required to compile OpenSS7 SS7Stack applications programs

strss7-lib 09a8-0 i386debThe lsquostrss7-librsquo package contains the run-time shared libraries necessary torun application programs and utilities developed for the lsquostrss7rsquo package16

STREAMS-Dependent DEB

STREAMS-Dependent DEB are dependent upon the specific STREAMS package beingused either Linux STREAMS or Linux Fast-STREAMS Packages dependent uponLinux STREAMS will have lsquoLiSrsquo in the package name Packages dependent uponLinux Fast-STREAMS will have lsquostreamsrsquo in the package name Note that someSTREAMS-Dependent DEB are also Kernel-Dependent DEB as described below

One of the following STREAMS-Dependent packages is required for your architecture Ifyour architecture is not on the list you can build binary DEB from the Debian DSC (seesee Section 642 [Building from the Debian DSC] page 78)

strss7-LiS-util 09a8-0 i386debThe lsquostrss7-LiS-utilrsquo package provides administrative and configuration testutilities and commands associated with the OpenSS7 SS7 Stack package Be-cause this package must link a STREAMS-specific library it is a STREAMS-Dependent package Use the lsquostrss7-LiS-utilrsquo package if you have LiS in-stalled

15 Note that not all releases have source DEB packages Release packages that do not contain kernel modulesdo not generate a source DEB package

16 Note that not all release packages contain shared libraries and therefore not all release packages containthis package

56 OpenSS7 SS7 Stack

strss7-streams-util 09a8-0 i386debThe lsquostrss7-streams-utilrsquo package provides administrative and configura-tion test utilities and commands associated with the OpenSS7 SS7 Stack pack-age Because this package must link a STREAMS-specific library it is aSTREAMS-Dependent package Use the lsquostrss7-streams-utilrsquo package ifyou have streams installed

Kernel-Dependent DEB

Kernel-Dependent DEB are dependent on specific Linux Kernel Binary DEB releases Pack-ages are provided for popular released Debian kernels Packages dependent upon Debian orother kernel DEB will have the lsquo_kversionrsquo kernel package version in the package nameOne of the following Kernel-Dependent packages is required for your architecture and kernelversion If your architecture or kernel version is not on the list you can build binary DEBfrom the source DEB (see see Section 642 [Building from the Debian DSC] page 78)17

strss7-core-2420-287 09a8-0 i386debThe lsquostrss7-corersquo package contains the loadable kernel modules that dependonly on the kernel This package is heavily tied to the kernel for which it wascompiled This particular package applies to kernel version lsquo2420-287rsquo18

strss7-info-2420-287 09a8-0 i386debThe lsquostrss7-inforsquo package19 contains the module symbol version informationfor the lsquocorersquo subpackage above It is possible to load this subpackage andcompile modules that use the exported symbols without loading the actualkernel modules (from the lsquocorersquo subpackage above) This package is heavilytied to the kernel for which it was compiled This particular package applies tokernel version lsquo2420-287rsquo20

strss7-LiS-core-2420-287 09a8-0 i386debThe lsquostrss7-LiS-corersquo package contains the kernel modules that providethe OpenSS7 SS7 Stack STREAMS modules and drivers This package isheavily tied to the STREAMS package and kernel for which it was compiledThis particular package applies to lsquoLiSrsquo (Linux STREAMS) on kernel versionlsquo2420-287rsquo21

strss7-streams-core-2420-287 09a8-0 i386debThe lsquostrss7-streams-corersquo package contains the kernel modules that pro-vide the OpenSS7 SS7 Stack STREAMS modules and drivers This package isheavily tied to the STREAMS package and kernel for which it was compiled

17 Note that on Mandrakelinux unlike other DEB kernel distributions kernel packages for the ix86 architecturesare always placed in i586 architecture packages regardless of the true processor architecture of the kernelpackage lsquoconfigurersquo detects this and builds the appropriate packages

18 Note that the lsquo_kversionrsquo of lsquo2420-287rsquo is only an example Note also that only release packages thatcontain kernel modules will contain a lsquocorersquo subpackage

19 Note that only release packages that contain kernel modules and that export versioned symbols will containa lsquoinforsquo subpackage Also this subpackage is only applicable to 24 series kernels and is not necessary andnot built for 26 series kernels

20 Note that the lsquo_kversionrsquo of lsquo2420-287rsquo is only an example21 Note that the lsquo_kversionrsquo of lsquo2420-287rsquo is only an example

Chapter 6 Installation 57

This particular package applies to lsquostreamsrsquo (Linux Fast-STREAMS) on kernelversion lsquo2420-287rsquo22

strss7-LiS-info-2420-287 09a8-0 i386debThe lsquostrss7-LiS-inforsquo package23 contains the module symbol version infor-mation for the lsquoLiS-corersquo subpackage above It is possible to load this sub-package and compile modules that use the exported symbols without loaded theactual kernel modules (from the lsquoLiS-corersquo subpackage above) This packageis heavily tied to the STREAMS package and kernel for which it was compiledThis particular package applies to lsquoLiSrsquo (Linux STREAMS) on kernel versionlsquo2420-287rsquo24

strss7-streams-info-2420-287 09a8-0 i386debThe lsquostrss7-streams-inforsquo package25 contains the module symbol version in-formation for the lsquostreams-corersquo subpackage above It is possible to loadthis subpackage and compile modules that use the exported symbols withoutloaded the actual kernel modules (from the lsquostreams-corersquo subpackage above)This package is heavily tied to the STREAMS package and kernel for whichit was compiled This particular package applies to lsquostreamsrsquo (Linux Fast-STREAMS) on kernel version lsquo2420-287rsquo26

Configuration and Installation

To configure build and install the Debian DEB See Section 632 [Configuring the DebianDEB] page 63

625 Downloading the Source RPM

If you cannot obtain a binary RPM for your architecture or would like to roll you ownbinary RPM download the following source RPM

strss7-09a8-1srcrpmThis is the source RPM for the package From this source RPM it is possible tobuild binary RPM for any supported architecture and for any 24 or 26 kernelfor either Linux STREAMS or Linux Fast-STREAMS

Configuration

To configure the source RPM See Section 633 [Configuring the Source RPM] page 63

626 Downloading the Debian DSC

If you cannot obtain a binary DEB for your architecture or would like to roll your ownDEB download the following Debian DSC

22 Note that the lsquo_kversionrsquo of lsquo2420-287rsquo is only an example23 Note that only release packages that contain kernel modules and that export versioned symbols will contain

a lsquoLiS-inforsquo subpackage24 Note that the lsquo_kversionrsquo of lsquo2420-287rsquo is only an example25 Note that only release packages that contain kernel modules and that export versioned symbols will contain

a lsquostreams-inforsquo subpackage26 Note that the lsquo_kversionrsquo of lsquo2420-287rsquo is only an example

58 OpenSS7 SS7 Stack

strss7 09a8-0dscstrss7 09a8-0targz

This is the Debian DSC for the package From this Debian DSC it is possible tobuild binary DEB for any supported architecture and for any 24 or 26 kernelfor either Linux STREAMS or Linux Fast-STREAMS

Configuration

To configure the source RPM See Section 634 [Configuring the Debian DSC] page 67

627 Downloading the Tar Ball

For non-rpm(1) and non-dpkg(1) architectures download the tarball as follows

strss7-09a8targzstrss7-09a8tarbz2

These are the tar(1) balls for the release These tar(1) balls contain theautoconf(1) distribution which includes all the source necessary for buildingand installing the package These tarballs will even build Source RPM andBinary RPM on rpm(1) architectures and Debian DSC and DEB on dpkg(1)architectures

The tar ball may be downloaded easily with wget(1) as follows wget httpwwwopenss7orgstrss7-09a8tarbz2

or wget httpwwwopenss7orgstrss7-09a8targz

Note that you will need an OpenSS7 Project user name and password to download releasecandidates (which are only available to subscribers and sponsors of the OpenSS7 Project)

Unpacking the Archive

After downloading one of the tar balls unpack the archive using one of the following com-mands wget httpwwwopenss7orgstrss7-09a8targz tar -xzvf strss7-09a8targz

or wget httpwwwopenss7orgstrss7-09a8tarbz2 tar -xjvf strss7-09a8tarbz2

Either will create a subdirectory name lsquostrss7-09a8rsquo containing all of the files andsubdirectories for the strss7 package

Chapter 6 Installation 59

Configuration

To configure and install the tar ball See Section 635 [Configuring the Tar Ball] page 67

628 Downloading from CVS

If you are a subscriber or sponsor of The OpenSS7 Project with CVS archive access privilegesthen you can download release mid-release or release candidate versions of the lsquostrss7rsquopackage from the project CVS archiveThe OpenSS7 SS7 Stack package is located in the lsquostrss7rsquo module of lsquovarcvsrsquo Forrelease tag information see Chapter 5 [Releases] page 33To access the archive from the project CVS pserver use the following commands to checkout a version from the archive export CVSROOT=rsquo-dpserverusernamecvsopenss7com2401varcvsrsquo cvs loginPassword cvs co -r strss7_09a8 strss7 cvs logout

It is of course possible to check out by date or by other criteria For more informationsee cvs(1)

Preparing the CVS Working Directory

Although public releases of the lsquostrss7rsquo package do not require reconfiguration creating aconfigurable directory from the CVS archive requires tools not normally distributed withthe other releasesThe build host requires the following GNU toolsbull m4 1412

bull autoconf 263

bull automake 1101

bull libtool 224

bull gettext 017

bull flex 2533

bull bison 23

Most desktop development GNULinux distributions wil have these tools however somenon-development or server-style installations might not and they must be installed sepa-rately27

Also these tools can be acquired from the FSF website in the free software directory andalso at the following locationsbull m4-1412bull autoconf-263

27 Older version of bison (20) and the older version of flex (254a) are also suitable Where possible use themore recent bison 23 and flex 2533

60 OpenSS7 SS7 Stack

bull automake-1101bull libtool-224bull gettext-017bull flex-2533bull bison-23

It should be stressed that in particular the autoconf(1) and automake(1) must be atversion releases 263 and 1101 The versions normally distributed in some mainstreamGNULinux distributions are in fact much older than these versions28 GNU version ofthese packages configured and installed to default directories will install in lsquousrlocalrsquoallowing them to coexist with distribution installed versionsFor building documentation the build host also requires the following documentation toolsbull gs 651 or ghostscript 651 or newerbull tetex 30 or texlive 2007 or newerbull texinfo 413a or newerbull transfig 323d or newerbull imagemagick 538 or ImageMagick 538 or newerbull groff 1172 or newerbull gnuplot 37 or newerbull latex2html 162 or newer

Most desktop GNULinux distributions will have these tools however some server-styleinstallations (eg Ubuntu-server SLES 9 or Fedora 6 or 7) will not and they must beinstalled separately29

Note that texinfo 412 must not be used as it breaks the build processFor uncooked manual pages the entire groff(1) package is required on older Debian andUbuntu systems (the base package did not include grefer(1) which is used extensively byuncooked manual pages) The following will get what you need on older systems Debian apt-get install groff_extUbuntu apt-get install groff

On newer systems simply apt-get install groff

In addition the build host requires a complete tool chain for compiling for the target hostincluding kernel tools such as genksyms(8) and others

28 A notable exception is Debian and Fedora 7 Note that on Fedora 7 the gettext-devel package must beinstalled

29 In particular for CentOS Fedora 6 or 7 the tetex-latex and gnuplot packages must be loaded as wellNote also that the latex2html used to be part of the textex package (or subpackages) but is now oftenpackaged on its own Recent distributions such as SUSE 110 and Fedora 9 use the texlive package insteadof the tetex package

Chapter 6 Installation 61

If you wish to package lsquorpmsrsquo on an rpm(1) system or lsquodebsrsquo on a dpkg(1) system you willneed the appropriate tool chain Systems based on rpm(1) typically have the necessary toolchain available however dpkg(1) systems do not The following on a Debian or Ubuntusystem will get what you need apt-get install debhelper apt-get install fakeroot

To generate a configuration script and the necessary scriptlets required by the GNUautoconf(1) system execute the following commands on the working directory autoreconf -fiv strss7

where lsquostrss7rsquo is the name of the directory to where the working copy was checked outunder the previous step This command generates the lsquoconfigurersquo script and other missingpieces that are normally distributed with the release Tar Balls SRPMs and DSCs

Make sure that lsquoautoreconf --versionrsquo returns lsquo263rsquo Otherwise you may need to per-form something like the following PATH=usrlocalbin$PATH autoreconf -fiv strss7

After reconfiguring the directory the package can then be configured and built using thesame instructions as are used for the Tar Ball see Section 635 [Configuring the Tar Ball]page 67 and Section 643 [Building from the Tar Ball] page 78

Do note however that make(1) will rebuild the documentation that is normally releasedwith the package Additional tools may be necessary for building the documentationTo avoid building and installing the documentation use the lsquo--disable-develrsquo orlsquo--disable-docsrsquo option to configure described in Section 635 [Configuring the Tar Ball]page 67

When configuring the package in a working directory and while working a change-compile-test cycle that involves configuration macros or documentation I find it ofgreat advantage to invoke the GNU lsquoconfigurersquo options lsquo--enable-maintainer-modersquolsquo--enable-dependency-trackingrsquo and lsquo--disable-develrsquo The first of these threeoptions will add maintainer-specific targets to any generated lsquoMakefilersquo the second optionwill invoke automatic dependency tracking within the lsquoMakefilersquo so rebuilds after changesto macro source or documentation files will be automatically rebuilt and the last optionwill suppress rebuilding and reinstalling documentation manual pages and header filesHeader files will still be available under the lsquousrsrcrsquo directory

63 Configuration

62 OpenSS7 SS7 Stack

631 Configuring the Binary RPM

In general the binary RPM do not require any configuration however during installationit is possible to relocate some of the installation directories This allows some degree ofcustomization Relocations that are available on the binary RPM are as follows

lsquostrss7-LiS-core-2420-287-09a8-172i686rpmrsquolsquostrss7-streams-core-2420-287-09a8-172i686rpmrsquo

lsquolibmodules2420-287rsquoThis relocatable directory contains the kernel modules that providethe strss7 STREAMS core drivers and modules30

lsquostrss7-LiS-info-2420-287-09a8-172i686rpmrsquolsquostrss7-streams-info-2420-287-09a8-172i686rpmrsquo

lsquousrincludestrss72420-287rsquoThis relocatable directory contains the kernel module exportedsymbol information that allows other kernel modules to be com-piled against the correct version of the strss7 package31

lsquostrss7-dev-09a8-172i686rpmrsquo(not relocatable)

lsquostrss7-devel-09a8-172i686rpmrsquolsquousrlibrsquo

This relocatable directory contains strss7 libraries

lsquousrincludestrss7rsquoThis relocatable directory contains strss7 header files

lsquostrss7-doc-09a8-172i686rpmrsquolsquousrsharedocrsquo

This relocatable directory contains all package specific documenta-tion (including this manual) The subdirectory in this directory isthe lsquostrss7-09a8rsquo directory

lsquousrshareinforsquoThis relocatable directory contains info files (including the info ver-sion of this manual)

lsquousrsharemanrsquoThis relocatable directory contains manual pages

lsquostrss7-LiS-lib-09a8-172i686rpmrsquolsquostrss7-streams-lib-09a8-172i686rpmrsquo

lsquousrlibrsquoThis relocatable directory contains the run-time shared librariesnecessary to run applications programs and utilities developed forOpenSS7 SS7 Stack

30 Note that the lsquo_kversionrsquo of lsquo2420-287rsquo is only an example31 Note that the lsquo_kversionrsquo of lsquo2420-287rsquo is only an example Also note that the lsquoinforsquo subpackage is

only applicable to the 24 kernel series

Chapter 6 Installation 63

lsquousrsharelocalersquoThis relocatable directory contains the locale information for sharedlibrary files

lsquostrss7-source-09a8-172i686rpmrsquo

lsquousrsrcrsquoThis relocatable directory contains the source code

lsquostrss7-LiS-util-09a8-172i686rpmrsquolsquostrss7-streams-util-09a8-172i686rpmrsquo

lsquousrbinrsquoThis relocatable directory contains binary programs and utilities

lsquousrsbinrsquoThis relocatable directory contains system binary programs andutilities

lsquousrlibexecrsquoThis relocatable directory contains test programs

lsquoetcrsquo This relocatable directory contains init scripts and configurationinformation

Installation

To install the binary RPM See Section 651 [Installing the Binary RPM] page 79

632 Configuring the Debian DEB

In general the binary DEB do not require any configuration

Installation

To install the Debian DEB See Section 652 [Installing the Debian DEB] page 80

633 Configuring the Source RPM

When building from the source RPM (see Section 641 [Building from the Source RPM]page 77) the rebuild process uses a number of macros from the userrsquos lsquorpmmacrosrsquo file asdescribed in rpm(8)

Following is an example of the lsquo~rpmmacrosrsquo file that I use for rebuilding RPMS

64 OpenSS7 SS7 Stack

RPM macros for building rpms

vendor OpenSS7 Corporation

distribution OpenSS7

disturl httpwwwopenss7org

packager Brian Bidulock ltbidulockopenss7orggt

url httpwwwopenss7org

_signature gpg

_gpg_path homebriangnupg

_gpg_name openss7openss7org

_gpgbin usrbingpg

_source_payload w9bzdio

_binary_payload w9bzdio

_unpackaged_files_terminate_build 1

_missing_doc_files_terminate_build 1

_use_internal_dependency_generator 0

_repackage_all_erasures 0

_rollback_transaction_on_failure 0

configure2_5x configure

make make When building from the source RPM (see Section 641 [Building from the Source RPM]page 77) it is possible to pass a number of additional configuration options to therpmbuild(1) process

The additional configuration options are described below

Note that distributions that use older versions of rpm do not have the lsquo--withrsquo orlsquo--withoutrsquo options defined To achieve the same effect as

--with someparm=somearg

do

--define _with_someparm --with-someparm=somearg

This is a generic description of common rpmbuild(1) options Not all rpmbuild(1) optionsare applicable to all SRPMs Options that are kernel module specific are only applicable toSRPMs that build kernel modules STREAMS options are only applicable to SRPMs thatprovide or require STREAMS

--define _kversion $PACKAGE_KVERSIONSpecifies the kernel version other than the running kernel for which tobuild If _kversion is not defined when rebuilding the environmentvariable PACKAGE KVERSION is used If the environment variablePACKAGE KVERSION is not defined then the version of the runningkernel (ie discovered with lsquouname -rrsquo) is used as the target version forkernel-dependent packages This option can also be defined in an lsquorpmspecrsquofile using the macro name lsquo_kversionrsquo

Chapter 6 Installation 65

--with checks--without checks

Enable or disable preinstall checks Each packages supports a number ofpreinstall checks that can be performed by invoking the lsquocheckrsquo target withautomake(1) These currently consist of checking each kernel module forunresolved kernel symbols checking for documentation for exported kernelmodule symbols checking for documentation for exported library symbolschecking for standard options for build and installable programs checkingfor documentation for built and installable programs Normally these checksare only run in maintainer mode but can be enabled and disabled with thisoption

--with k-optimize=HOW--without k-optimize

Specify lsquoHOWrsquo optimization normal size speed or quick size compiles kernelmodules -Os speed compiles kernel modules -O3 and quick compiles kernelmodules -O0 The default is normal Use with care

--with cooked-manpages--without cooked-manpages

Some systems do not like grefer(1) references in manual pages32 This optionwill cook soelim(1) refer(1) tbl(1) and pic(1) commands from the man-ual pages and also strip groff(1) comments The default is to leave manualpages uncooked they are actually smaller that way

--with public--without public

Release public packages or private packages This option has no effect on thelsquostrss7rsquo package The default is to release public packages

--with k-debug--without k-debug

Specifies whether kernel debugging is to be performed on the build kernel mod-ules Mutually exclusive with test and safe below This has the effect ofremoving static and inline attributes from functions and invoking all debuggingmacros in the code The default is to not perform kernel debugging

--with k-test--without k-test

Specifies whether kernel testing is to be performed Mutually exclusive withdebug above and safe below This has the effect of removing static and inlineattributes from functions and invoking most debugging macros in the code Thedefault is to not perform kernel testing

32 In particular some Debian systems do not load the groff(1) extensions package and do not have grefer(1)

installed Although this is an oversight on the configuration of the particular Debian system we accomodatesuch misconfiguration with this feature

66 OpenSS7 SS7 Stack

--with k-safe--without k-safe

Specifies whether kernel saftey is to be performed Mutually exclusive withdebug and test above This has the effect of invoking some more pedanticassertion macros in the code The default is not to apply kernel safety

--with k-inline--without k-inline

Specifies whether kernel inline functions are to be placed inline This hasthe effect of adding the lsquo-finline-functionsrsquo flag to CFLAGS for compil-ing kernel modules Linux 24 kernels are normally compiled lsquo-O2rsquo whichdoes not respect the inline directive This compiles kernel modules withlsquo-finline-functionsrsquo to get closer to lsquo-O3rsquo optimization For better opti-mization controls See Section 635 [Configuring the Tar Ball] page 67

--with k-modversions--without k-modversions

Specifies whether kernel symbol versions are to be applied to symbols exportedby package kernel modules The default is to version exported module symbolsThis package does not export symbols so this option has no effect

--with devfs--without devfs

Specifies whether the build is for a device file system daemon enabled systemwith autoloading or not The default is to build for devfsd(1) autoloadingwhen CONFIG DEVFS FS is defined in the target kernel The lsquorebuildrsquo tar-get uses this option to signal to the RPM spec file that the lsquodevrsquo subpackageneed not be built This option does not appear when the package has no devices

--with devel--without devel

Specifies whether to build development environment packages such as those thatinclude header files static libraries manual pages and texinfo(1) documen-tation The default is to build development environment packages This optioncan be useful when building for an embedded target where only the runtimecomponents are desired

--with docs--without docs

Specifies whether to build and install major documentation such manual pagesand texinfo(1) documentation The default is to build and install documen-tation This option can be useful when building for an embedded target whereonly the runtime and static compile components are desired but not majordocumentation This option does not override the setting of --without devel

--with tools--without tools

Specifies whether user space packages are to be built The default is to builduser space packages This option can be useful when rebuilding for multiplearchitectures and target kernels The lsquorebuildrsquo automake(1) target uses this

Chapter 6 Installation 67

feature when rebuilding for all available architectures and kernels to rebuilduser packages once per architecture instead of once per kernel

--with modules--without modules

Specifies whether kernel modules packages are to be built The default is tobuild kernel module packages This option can be useful when rebuilding formultiple architectures and target kernels The lsquorebuildrsquo automake(1) targetuses this feature to rebuild for all available architectures and kernels

--with lis--without lis

Specifies that the package is to be rebuilt against Linux STREAMS The defaultis to automatically identify whether lsquoLiSrsquo or lsquostreamsrsquo is loaded on the buildsystem and build accordingly

--with lfs--without lfs

Specifies that the package is to be rebuilt against Linux Fast-STREAMS Thedefault is to automatically identify whether lsquoLiSrsquo or lsquostreamsrsquo is loaded on thebuild system and build accordingly

In general the default values of these options are sufficient for most purposes and no optionsneed be provided when rebuilding the Source RPMs

Build

To build from the source RPM See Section 641 [Building from the Source RPM] page 77

634 Configuring the Debian DSC

The Debian DSC can be configured by passing options in the environment variableBUILD DEBOPTIONS The options placed in this variable take the same form as thosepassed to the lsquoconfigurersquo script See Section 635 [Configuring the Tar Ball] page 67 Foran example See Section 642 [Building from the Debian DSC] page 78

Build

To build from the Debian DSC See Section 642 [Building from the Debian DSC] page 78

635 Configuring the Tar Ball

All of the normal GNU autoconf(1) configuration options and environment variables applyAdditional options and environment variables are provided to tailor or customize the buildand are described below

6351 Configure Options

This is a generic description of common lsquoconfigurersquo options that are in addition to thoseprovided by autoconf(1) automake(1) libtool(1) and gettext(1)Not all lsquoconfigurersquo options are applicable to all release packages Options that arekernel module specific are only applicable to release packages that build kernel modulesSTREAMS options are only applicable to release packages that provide or requireSTREAMS

68 OpenSS7 SS7 Stack

Following are the additional lsquoconfigurersquo options their meaning and use

--enable-checks--disable-checks

Enable or disable preinstall checks Each release package supports a numberof preinstall checks that can be performed by invoking the lsquocheckrsquo target withmake(1) These currently consist of checking each kernel module for unresolvedkernel symbols checking for documentation for exported kernel module sym-bols checking for documentation for exported library symbols checking forstandard options for build and installable programs checking for documenta-tion for built and installable programs Normally these checks are only run inmaintainer mode but can be enabled and disabled with this option

--enable-autotest--disable-autotest

Enable or disable pre- and post-installation testing Each release package sup-ports a number of autotest test suites that can be performed by invokingthe lsquoinstallcheckrsquo target with make(1) These currently consist of runninginstalled modules commands and binaries against a number of specific testcases Normally these checks are only run in maintainer mode but can beenabled and disabled with this option

--disable-compress-manpagesCompress manual pages with lsquogzip -9rsquo or lsquobzip2 -9rsquo or leave them uncom-pressed The default is to compress manual pages with lsquogzip -9rsquo or lsquobzip2 -9rsquoif a single compressed manual page exists in the target installation directory(lsquo--mandirrsquo) This disables automatic compression

--disable-publicDisable public release This option is not usable on public releases and only hasa usable effect on OpenSS7 SS7 Stack when the package is acquired from CVSIn particular the STREAMS SS7VoIPISDNSIGTRAN Stacks (strss7-09a8) release package has a large number of non-public components Speci-fying this option will cause the package to build and install all private releasecomponents in addition to the public release components This option affects allrelease packages Most release packages do not have private release components

--disable-initscriptsDisables the installation of init scripts The default is to configure and installinit scripts and their associated configuration filesAlthough the default is to install init scripts installation attempts to detect aSystem V init script configuration and if one is not found the init scripts areinstalled into the appropriate directories but the symbolic links to the run levelscript directories are not generated and the script is not invoked Therefore itis safe to leave this option unchanged even on distributions that do not supportSystem V init script layout

--disable-32bit-libsDisables the build and install of 32-bit compatibility libraries and test binarieson 64-bit systems that support 32-bit compatibility The default is to build

Chapter 6 Installation 69

and install 32-bit compatibility libraries and test binaries This option canbe usefule when configuring for an embedded target where only native sharedlibraries and binaries are desired

--disable-develDisables the installation of development environment components such asheader files static libraries manual pages and texinfo(1) documentationThe default is to install development environment components This optioncan be useful when configuring for an embedded target where only the runtimecomponents are desired or when performing a edit-compile-test cycle

--disable-docsDisables the build and installation of major documentation such manual pagesand texinfo(1) documentation The default is to build and install documen-tation This option can be useful when building for an embedded target whereonly the runtime and static compile components are desired but not major doc-umentation This option does not override the setting of lsquo--disable-develrsquo

--enable-toolsSpecifies whether user space programs and libraries are to be built and installedThe default is to build and install user space programs and libraries This optioncan be useful when rebuilding for multiple architectures and target kernelsparticularly under rpm(1) or dpkg(1) The lsquorebuildrsquo automake(1) target usesthis feature when rebuilding RPMs for all available architectures and kernelsto rebuild user packages once per architecture instead of once per kernel

--enable-modulesSpecifies whether kernel modules are to be built and installed The default is tobuild and install kernel modules This option can be useful when rebuilding formultiple architectures and target kernels particularly under rpm(1) or dpkg(1)The lsquorebuildrsquo automake(1) target uses this feature to rebuild for all availablearchitectures and kernels This option has no effect for release packages thatdo not provide kernel modules

--enable-archSpecifies whether architectural dependent package components are to be builtand installed This option can be useful when rebuilding for multiple architec-tures and target kernels particularly under dpkg(1) The default is to config-ure build and install architecture dependent package components This optionhas no effect for release packages that do not provide architecture dependentcomponents

--enable-indepSpecifies whether architecture independent package components are to be builtand installed This option can be useful when rebuilding for multiple architec-tures and target kernels particularly under dpkg(1) The default is to con-figure build and install architecture independent package components Thisoptions has no effect for release packages that do not provide architecture in-dependent components

70 OpenSS7 SS7 Stack

--enable-k-inlineEnable kernel inline functions Most Linux kernels build withoutlsquo-finline-functionsrsquo This option adds the lsquo-finline-functionsrsquo andlsquo-Winlinersquo flags to the compilation of kernel modules Use with care Thisoption has no effect for release packages that do not provide kernel modules

--enable-k-safeEnable kernel module run-time safety checks Specifies whether kernel safety isto be performed This option is mutually exclusive with lsquo--enable-k-testrsquo andlsquo--enable-k-debugrsquo below This has the effect of invoking some more pedanticassertion macros in the code The default is not to apply kernel safety Thisoption has no effect for release packages that have are no kernel modules

--enable-k-testEnable kernel module run-time testing Specifies whether kernel testing is to beperformed This option is mutually exclusive with lsquo--enable-k-safersquo aboveand lsquo--enable-k-debugrsquo below This has the effect of remove static andinline attributes from functions and invoking most non-performance affectingdebugging macros in the code The default is not to perform kernel testing Thisoption has no effect for release packages that do not provide kernel modules

--enable-k-debugEnable kernel module run-time debugging Specifies whether kernel debuggingis to be performed This option is mutually exclusive with lsquo--enable-k-safersquoand lsquo--enable-k-testrsquo above This has the effect of removing static andinline attributes from functions and invoking all debugging macros in thecode (including performance-affecting debug macros) The default is to notperform kernel debugging This option has no effect for release packages thatdo not provide kernel modules

--disable-k-modversionsDisable module versions on strss7 symbols Specifies whether kernel symbolversions are to be used on symbols exported from built strss7 modules Thedefault is to provide kernel symbol versions on all exported symbols Thisoption has no effect for release packages that do not provide kernel modules

--enable-devfs--disable-devfs

Specifies whether the build is for a device file system daemon enabled systemwith autoloading or not The default is to build for devfsd(8) autoload-ing when CONFIG DEVFS FS is defined in the target kernel The lsquoreuildrsquoautomake(1) target uses this option to signal to the RPM spec file that the lsquodevrsquosubpackage need not be built This option has no effect for release packagesthat do not provide devices

--with-gpg-user=GNUPGUSERSpecify the gpg(1) lsquoGNUPGUSERrsquo for signing RPMs and tarballs The defaultis the content of the environment variable GNUPGUSER If unspecified thegpg(1) program will normally use the user name of the account invoking thegpg(1) program For building source RPMs the RPM macro lsquo_gpg_namersquo willoverride this setting

Chapter 6 Installation 71

--with-gpg-home=GNUPGHOMESpecify the lsquoGNUPGHOMErsquo directory for signing RPMs and tarballs The defaultis the userrsquos lsquo~gpgrsquo directory For building source RPMs the RPM macrolsquo_gpg_pathrsquo will override this setting

--with-pkg-epoch=EPOCHSpecifies the epoch for the package This is neither used for rpm(1) nor dpkg(1)packages it applies to the tarball release as a whole The default is the contentsof the lsquopkgepochrsquo file in the release package source directory or if that file doesnot exist zero (0)

--with-pkg-release=RELEASESpecifies the release for the package This is neither used for rpm(1) nordpkg(1) packages it applies to the tarball release as a whole The defaultis the contents of the lsquopkgreleasersquo file in the release package source directoryor if that file does not exist one (1) This is the number after the last pointin the package version number

--with-pkg-distdir=DIRSpecifies the distribution directory for the package This is used by the main-tainer for building distributions of tarballs This is the directory into whicharchives are copied for distribution The default is the top build directory

--with-cooked-manpagesConvert manual pages to remove macro dependencies and grefer(1) refer-ences Some systems do not like grefer(1) references in manual pages33 Thisoption will cook soelim(1) refer(1) tbl(1) and pic(1) commands fromthe manual pages and also strip groff(1) comments The default is to leavemanual pages uncooked (they are actually smaller that way)

--with-rpm-epoch=PACKAGE_EPOCHSpecify the lsquoPACKAGE_EPOCHrsquo for the RPM spec file The default is to use theRPM epoch contained in the release package file lsquorpmepochrsquo

--with-rpm-release=PACKAGE_RPMRELEASESpecify the lsquoPACKAGE_RPMRELEASErsquo for the RPM lsquospecrsquo file The default is touse the RPM release contained in the release package file lsquorpmreleasersquo

--with-rpm-extra=PACKAGE_RPMEXTRASpecify the lsquoPACKAGE_RPMEXTRArsquo extra release information for the RPM specfile The default is to use the RPM extra release information contained in therelease package file lsquorpmextrarsquo Otherwise this value will be determined fromautomatic detection of the RPM distribution

--with-rpm-topdir=PACKAGE_RPMTOPDIRSpecify the lsquoPACKAGE_RPMTOPDIRrsquo top directory for RPMs If specified with anull lsquoPACKAGE_RPMTOPDIRrsquo the default directory for the RPM distribution willbe used If this option is not provided on the command line the top builddirectory will be used as the RPM top directory as well

33 In particular some Debian or Ubuntu systems do not load the groff(1) extensions package and do not havegrefer(1) installed Although this is an oversight on the configuration of the particular Debian or Ubuntusystem we accomodate such misconfiguration with this feature

72 OpenSS7 SS7 Stack

--with-deb-epoch=EPOCHSpecify the lsquoPACKAGE_DEBEPOCHrsquo for the DEB control file The default is to usethe DEB epoch contained in the release package file lsquodebepochrsquo

--with-deb-release=RELEASESpecify the lsquoPACKAGE_DEBRELEASErsquo for the DEB control file The default is touse the DEB release contained in the release package file lsquodebreleasersquo

--with-deb-topdir=DIRSpecify the lsquoPACKAGE_DEBTOPDIRrsquo top directory for DEBs If specified with anull lsquoPACKAGE_DEBTOPDIRrsquo the default directory for the DEB distribution willbe used If this option is not provided on the command line the top builddirectory will be used as the DEB top directory as well

--with-k-release=PACKAGE_KRELEASESpecify the lsquoPACKAGE_KRELEASErsquo release of the Linux kernel for which the buildis targeted When not cross compiling if this option is not set the build willbe targeted at the kernel running in the build environment (eg lsquouname -rrsquo)When cross-compiling this option must be specified or the configure script willgenerate an error and terminate

--with-k-linkage=PACKAGE_KLINKAGESpecify the lsquoPACKAGE_KLINKAGErsquo for kernel module linkage This can be one ofthe followingbull lsquoloadablersquo ndash loadable kernel modulesbull lsquolinkablersquo ndash linkable kernel objects

The default is to build loadable kernel modules

--with-k-modules=K-MODULES-DIRSpecify the lsquoK-MODULES-DIRrsquo directory to which kernel modules will be installedThe default is based on the option lsquo--with-k-releasersquo lsquo--with-k-prefixrsquoand lsquo--with-k-rootdirrsquo The default is lsquoDESTDIRrsquolsquoK-MODULES-DIRrsquo which istypically lsquoDESTDIRlibmodulesPACKAGE_KRELEASErsquo This directory is nor-mally located by the lsquoconfigurersquo script and need only be provided for specialcross-build environments or when requested by a lsquoconfigurersquo script error mes-sage

--with-k-build=K-BUILD-DIRSpecify the lsquoK-BUILD-DIRrsquo base kernel build directory in which configured kernelsource resides The default is lsquoDESTDIRK-MODULES-DIRbuildrsquo This direc-tory is normally located by the lsquoconfigurersquo script and need only be providedfor special cross-build environments or when requested by a lsquoconfigurersquo scripterror message

--with-k-source=K-SOURCE-DIRSpecify the lsquoK-SOURCE-DIRrsquo base kernel build directory in which configuredkernel source resides The default is lsquoDESTDIRK-MODULES-DIRsourcersquo Thisdirectory is normally located by the lsquoconfigurersquo script and need only be pro-vided for special cross-build environments or when requested by a lsquoconfigurersquoscript error message

Chapter 6 Installation 73

--with-k-modver=K-MODVER-FILESpecify the lsquoK-MODVER-FILErsquo kernel module versions file The default is lsquoK-BUILD-DIRModulesymversrsquo This file is normally located by the lsquoconfigurersquoscript and need only be provided for special cross-build environments or whenrequested by a lsquoconfigurersquo script error message

--with-k-sysmap=K-SYSMAP-FILESpecify the lsquoK-SYSMAP-FILErsquo kernel system map file The default is lsquoK-BUILD-DIRSystemmaprsquo This file is normally located by the lsquoconfigurersquo script andneed only be provided for special cross-build environments or when requestedby a lsquoconfigurersquo script error message

--with-k-archdir=K-ARCHDIRSpecify the lsquoK-ARCHDIRrsquo kernel source architecture specific directory The de-fault is lsquoDESTDIRK-SOURCE-DIRarchrsquo This directory is normally located bythe lsquoconfigurersquo script and need only be provided for special cross-build envi-ronments or when requested by a lsquoconfigurersquo script error message

--with-k-machdir=K-MACHDIRSpecify the lsquoK-MACHDIRrsquo kernel source machine specific directory The defaultis lsquoDESTDIRK-SOURCE-DIRtarget_cpu rsquo This directory is normally locatedby the lsquoconfigurersquo script and need only be provided for special cross-buildenvironments or when requested by a lsquoconfigurersquo script error message

--with-k-config=K-CONFIGSpecify the lsquoK-CONFIGrsquo kernel configuration file The default is lsquoBOOTconfig-K-RELEASE rsquo This configuration file is normally located by the lsquoconfigurersquoscript and need only be provided for special cross-build environments or whenrequested by a lsquoconfigurersquo script error message

--with-k-optimize=HOW--without-k-optimize

Specify lsquoHOWrsquo optimization normal size speed or quick size compiles kernelmodules -Os speed compiles kernel modules -O3 and quick compiles kernelmodules -O0 The default is normal Use with care The most common useof this option is to specify lsquo--with-k-optimize=speed --disable-k-safersquo tocompile for maximum performance Nevertheless even these setting are ricingand the resulting kernel modules will only be about 5 faster

--with-lis[=LIS-DIR]--without-lis

Specify the lsquoLIS-DIRrsquo directory in which to find LiS headers Also specifiesthat the build is to be made against Linux STREAMS The default is lsquousrincludeLiSrsquo if it exists lsquonorsquo otherwise This directory is normally located bythe lsquoconfigurersquo script and need only be provided for special cross-build envi-ronments or when requested by a lsquoconfigurersquo script error message This optionhas no effect on release packages that do not use the STREAMS subsystem

74 OpenSS7 SS7 Stack

--with-lfs[=LFS-DIR]--without-lfs

Specify the lsquoLFS-DIRrsquo directory in which to find LfS headers Also specifiesthat the build is to be made against Linux Fast-STREAMS The default islsquousrincludestreamsrsquo if it exists lsquonorsquo otherwise This directory is normallylocated by the lsquoconfigurersquo script and need only be provided for special cross-build environments or when requested by a lsquoconfigurersquo script error messageThis option has no effect on release packages that do not use the STREAMSsubsystem

--with-strconf-master=STRCONF_CONFIGSpecify the lsquoSTRCONF_CONFIGrsquo file name to which the configuration master fileis written The default is lsquoConfigmasterrsquo This option has no effect on releasepackages that do not use the STREAMS subsystem and the strconf scriptsThis option should not be specified when configuring the master package as thesetting for all add-on packages will conflict

--with-base-major=STRCONF_MAJBASEStart numbering for major devices at lsquoSTRCONF_MAJBASErsquo The default is lsquo230rsquoThis option has no effect on release packages that do not use the STREAMSsubsystem and the strconf scripts This option should not be specified whenconfiguring the master package as the setting for all add-on packages will con-flict

6352 Environment Variables

Following are additional environment variables to lsquoconfigurersquo their meaning and use

GPG GPG signature command This is used for signing distributions by the main-tainer By default lsquoconfigurersquo will search for this tool

GNUPGUSERGPG user name This is used for signing distributions by the maintainer

GNUPGHOMEGPG home directory This is used for signing distributions by the maintainer

GPGPASSWDGPG password for signing This is used for signing distributions by the main-tainer This environment variable is not maintained by the lsquoconfigurersquo scriptand should only be used on an isolated system

SOELIM Roff source elimination command soelim(1) This is only necessary when theoption lsquo--with-cooked-manpagesrsquo has been specified and lsquoconfigurersquo cannotfind the proper soelim(1) command By default lsquoconfigurersquo will search forthis tool

REFER Roff references command refer(1) This is only necessary when the optionlsquo--with-cooked-manpagesrsquo has been specified and lsquoconfigurersquo cannot find theproper refer(1) command By default lsquoconfigurersquo will search for this tool

TBL Roff table command tbl(1) This is only necessary when the optionlsquo--with-cooked-manpagesrsquo has been specified and lsquoconfigurersquo cannot findthe proper tbl(1) command By default lsquoconfigurersquo will search for this tool

Chapter 6 Installation 75

PIC Roff picture command pic(1) This is only necessary when the optionlsquo--with-cooked-manpagesrsquo has been specified and lsquoconfigurersquo cannot findthe proper pic(1) command By default lsquoconfigurersquo will search for this tool

GZIP Default compression options provided to GZIP_CMD

GZIP CMDManpages (and kernel modules) compression commands gzip(1) This is onlynecessary when the option lsquo--without-compressed-manpagesrsquo has not beenspecified and lsquoconfigurersquo cannot find the proper gzip(1) command By de-fault lsquoconfigurersquo will search for this tool

BZIP2 Default compression options provided to BZIP2_CMD

BZIP2 CMDManpages compression commands bzip2(1) This is only necessary whenthe option lsquo--without-compressed-manpagesrsquo has not been specifiedand lsquoconfigurersquo cannot find the proper bzip2(1) command By defaultlsquoconfigurersquo will search for this tool

MAKEWHATISManpages apropros database rebuild command makewhatis(8) By defaultlsquoconfigurersquo will search for this tool By default lsquoconfigurersquo will search forthis tool

CHKCONFIGChkconfig command chkconfig(8) This was used for installation of initscripts All packages now come with init_install(8) and init_remove(8)scripts used to install and remove init scripts on both RPM and Debian sys-tems

RPM Rpm command rpm(1) This is only necessary for RPM builds By defaultlsquoconfigurersquo will search for this tool

RPMBUILDBuild RPM command rpmbuild(1) This is only necessary for RPM buildsBy default lsquoconfigurersquo will search for this tool rpm(1) will be used insteadof rpmbuild(1) only if rpmbuild(1) cannot be found

DPKG Dpkg comand dpkg(1) This command is used for building Debian packagesBy default lsquoconfigurersquo will search for this tool

DPKG SOURCEDpkg-source command dpkg-source(1) This command is used for buildingDebian dsc packages By default lsquoconfigurersquo will search for this tool

DPKG BUILDPACKAGEDpkg-buildpackage command dpkg-buildpackage(1) This command is usedfor building Debian deb packages By default lsquoconfigurersquo will search for thistool

DEB BUILD ARCHDebian build architecture This variable is used for building Debian packagesThe default is the autoconf build architecture

76 OpenSS7 SS7 Stack

DEB BUILD GNU CPUDebian build cpu This variable is used for building Debian packages Thedefault is the autoconf build cpu

DEB BUILD GNU SYSTEMDebian build os This variable is used for building Debian packages The defaultis the autoconf build os

DEB BUILD GNU TYPEDebian build alias This variable is used for building Debian packages Thedefault is the autoconf build alias

DEB HOST ARCHDebian host architecture This variable is used for building Debian packagesThe default is the autoconf host architecture

DEB HOST GNU CPUDebian host cpu This variable is used for building Debian packages Thedefault is the autoconf host cpu

DEB HOST GNU SYSTEMDebian host os This variable is used for building Debian packages The defaultis the autoconf host os

DEB HOST GNU TYPEDebian host alias This variable is used for building Debian packages Thedefault is the autoconf host alias

LDCONFIGConfigure loader command ldconfig(8) Command used to configure theloader when libraries are installed By default lsquoconfigurersquo will search for thistool

DESTDIR Cross build root directory Specifies the root directory for build and installation

DEPMODBuild kernel module dependencies command depmod(8) This is used dur-ing installation of kernel modules to a running kernel to rebuild the modulesdependency database By default lsquoconfigurersquo will search for this tool

MODPROBEProbe kernel module dependencies command modprobe(8) This is used duringinstallation of kernel modules to a running kernel to remove old modules Bydefault lsquoconfigurersquo will search for this tool

LSMOD List kernel modules command lsmod(8) This is used during installation ofkernel modules to a running kernel to detect old modules for removal Bydefault lsquoconfigurersquo will search for this tool

LSOF List open files command lsof(1) This is used during installation of kernelmodules to a running kernel to detect old modules for removal Processes own-ing the old kernel modules will be killed and the module removed If the processrestarts the new module will be demand loaded By default lsquoconfigurersquo willsearch for this tool

Chapter 6 Installation 77

GENKSYMSGenerate kernel symbols command genksyms(8) This is used for generatingmodule symbol versions during build By default lsquoconfigurersquo will search forthis tool

KGENKSYMSLinux 26 generate kernel symbols command genksyms(8) This is used forgenerating module symbol version during build By default lsquoconfigurersquo willsearch for this tool

OBJDUMPObject dumping command objdump(1) This is used for listing informationabout object files By default lsquoconfigurersquo will search for this tool

NM Object symbol listing command nm(1) This is used for listing informationabout object files By default lsquoconfigurersquo will search for this tool

MODPOST CACHECache file for modpost(1) The version of the modpostsh script that ships witheach package can cache information to a cache file to speed multiple builds Thisenvironment variable is used to specify a cache file

AUTOM4TEAutom4te command autom4te(1) This is the executable used by autotestfor pre- and post-installation checks By default lsquoconfigurersquo will search forthis tool

AUTOTESTAutotest macro build command autom4te(1) This is the executable used byautotest for pre- and post-installation checks By default lsquoconfigurersquo willsearch for this tool

6353 Build

To build from the tar ball See Section 643 [Building from the Tar Ball] page 78

64 Building

641 Building from the Source RPM

If you have downloaded the necessary source RPM (see Section 625 [Downloading theSource RPM] page 57) then the following instructions will rebuild the binary RPMs onyour system Once the binary RPMs are rebuilt you may install them as described above(see Section 651 [Installing the Binary RPM] page 79)The source RPM is rebuilt to binary RPMs as follows wget httpwwwopenss7orgrpmsSRPMSstrss7-09a8-1srcrpm rpmbuild --rebuild -vv strss7-09a8-1srcrpm

The rebuild process can also recognize a number of options that can be used to tweak theresulting binaries See Section 633 [Configuring the Source RPM] page 63 These optionsare provided on the rpm(1) command line For example

78 OpenSS7 SS7 Stack rpmbuild --rebuild -vv --target athlon-redhat-linux

--define _kversion 2420-287 --with lfs -- strss7-09a8-1srcrpm

will rebuild binary RPM for the lsquo2420-287rsquo kernel for the lsquoathlonrsquo architecture againstthe Linux Fast-STREAMS STREAMS package34

Installation

To install the resulting binary RPM See Section 651 [Installing the Binary RPM] page 79

642 Building from the Debian DSC

If you have downloaded the necessary Debian DSC (see Section 626 [Downloading theDebian DSC] page 57) then the following instructions will rebuild the binary DEBs onyour system Once the binary DEBs are rebuilt you may install them as described above(see Section 652 [Installing the Debian DEB] page 80)The Debian DSC is rebuilt to binary DEBs as follows wget httpwwwopenss7orgdebianstrss7_09a8-0dsc wget httpwwwopenss7orgdebianstrss7_09a8-0targz dpkg-buildpackage -v strss7_09a8-0dsc

The rebuild process can also recognize a number of options that can be used to tweak theresulting binaries See Section 634 [Configuring the Debian DSC] page 67 These optionsare provided in the environment variable BUILD DPKGOPTIONS and have the same formas the options to lsquoconfigurersquo See Section 635 [Configuring the Tar Ball] page 67 Forexample BUILD_DEBOPTIONS=rsquo

--with-lfs--with-k-release=2420-287--host=athlon-debian-linux-gnursquo

dpkg-buildpackage -v strss7_09a8-0dsc

will rebuild binary DEB for the lsquo2420-287rsquo kernel for the lsquoathlonrsquo architecture againstthe Linux Fast-STREAMS STREAMS package35

Installation

To install the resulting binary DEB See Section 652 [Installing the Debian DEB] page 80

643 Building from the Tar Ball

If you have downloaded the tar ball (see Section 627 [Downloading the Tar Ball] page 58)then the following instructions will rebuild the package on your system (Note that thebuild process does not required root privilege)

34 Note that the lsquo_kversionrsquo of lsquo2420-287rsquo is only an example35 Note that the lsquo_kversionrsquo of lsquo2420-287rsquo is only an example

Chapter 6 Installation 79

6431 Native Build

Following is an example of a native build against the running kernel wget httpwwwopenss7orgstrss7-09a8tarbz2 tar -xjvf strss7-09a8tarbz2 pushd strss7-09a8 configure make popd 6432 Cross-Build

Following is an example for a cross-build The kernel release version must always be specifiedfor a cross-build36 If you are cross-building specify the root for the build with environmentvariable DESTDIR The cross-compile host must also be specified if different from thebuild host Either the compiler and other tools must be in the usual places where GNUautoconf(1) can find them or they must be specified with declarations such as lsquoCC=usrlibppc-linuxgccrsquo on the lsquoconfigurersquo command line wget httpwwwopenss7orgstrss7-09a8tarbz2 tar -xjvf strss7-09a8tarbz2 pushd strss7-09a8 configure DESTDIR=someotherroot --with-k-release=2418 --host sparc-linux make popd 65 Installing

651 Installing the Binary RPM

If you have downloaded the necessary binary RPMs (see Section 623 [Downloading the Bi-nary RPM] page 51) or have rebuilt binary RPMs using the source RPM (see Section 641[Building from the Source RPM] page 77) then the following instructions will install theRPMs on your system For additional information on rpm(1) see rpm(8) pushd RPMSi686 rpm -ihv strss7--09a8-172i686rpm

You must have the correct binary RPMs downloaded or built for this to be successfulSome of the packages are relocatable and can have final installation directories altered withthe lsquo--relocatersquo option to rpm(1) see rpm(8) For example the following will relocatethe documentation and info directories

36 Because it is a cross-build the kernel version on the build machine is unlikely to be the kernel version ofthe target machine except by coincidence

80 OpenSS7 SS7 Stack pushd RPMSi686 rpm -ihv

--relocate rsquousrsharedoc=usrlocalsharedocrsquo --relocate rsquousrshareinfo=usrlocalshareinforsquo -- strss7-doc-09a8-172i686rpm

The previous example will install the lsquostrss7-docrsquo package by will relocate the documen-tation an info directory contents to the lsquousrlocalrsquo version

652 Installing the Debian DEB

If you have downloaded the necessary Debian DEBs (see Section 624 [Downloading the De-bian DEB] page 54) or have rebuild binary DEBs using the Debian DSC (see Section 642[Building from the Debian DSC] page 78) then the following instructions will install theDEBs on your system For additional information see dpkg(8) pushd debian dpkg -iv strss7-_09a8-0_deb

You must have the correct lsquodebrsquo files downloaded or build for this to be successful

653 Installing the Tar Ball

After the build process (see Section 643 [Building from the Tar Ball] page 78) installationonly requires execution of one of two automake(1) targets

lsquomake installrsquoThe lsquoinstallrsquo automake(1) target will install all the components of the pack-age Root privilege is required to successfully invoke this target

lsquomake install-striprsquoThe lsquoinstall-striprsquo automake(1) target will install all the components of thepackage but will strip unnecessary information out of the objects and compressmanual pages Root privilege is required to successfully invoke this target

66 Removing

661 Removing the Binary RPM

To remove an installed version of the binary RPMs (whether obtained from the OpenSS7binary RPM releases or whether created by the source RPM) execute the following com-mand rpm -evv lsquorpm -qa | grep rsquo^strss7-rsquolsquo

For more information see rpm(1)

662 Removing the Debian DEB

To remove and installed version of the Debian DEB (whether obtained from the OpenSS7binary DEB releases or whether created by the Debian DSC) execute the following com-mand

Chapter 6 Installation 81 dpkg -ev lsquodpkg -l | grep rsquo^strss7-rsquolsquo

For more information see dpkg(8)

663 Removing the Source RPM

To remove all the installed binary RPM build from the source RPM see Section 661[Removing the Binary RPM] page 80 Then simply remove the binary RPM package filesand source RPM file A command such as find -name rsquostrss7-rpmrsquo -type f -print0 | xargs --null rm -f

should remove all lsquostrss7rsquo RPMs from your system

664 Removing the Debian DSC

To remove all the installed binary DEB build from the Debian DSC see Section 662[Removing the Debian DEB] page 80 Then simply remove the binary DEB package filesand Debian DSC file A command such as find ( -name rsquostrss7-debrsquo

-o -name rsquostrss7-dscrsquo -o -name rsquostrss7-tar ) -type f -print0 | xargs --null rm -f

should remove all lsquostrss7rsquo DEBs DSCs and TARs from your system

665 Removing the Tar Ball

To remove a version installed from tar ball change to the build directory where the packagewas built and use the lsquouninstallrsquo automake(1) target as follows cd usrsrcstrss7 make uninstall cd rm -fr strss7-09a8 rm -f strss7-09a8targz rm -f strss7-09a8tarbz2

If you have inadvertently removed the build directory and therefore no longer have aconfigured directory from which to execute lsquomake uninstallrsquo then perform all of the stepsfor configuration and installation (see Section 653 [Installing the Tar Ball] page 80) exceptthe final installation and then perform the steps above

67 Loading

671 Normal Module Loading

When OpenSS7 SS7 Stack installs modules and drivers belonging to release packages arenormally configured for demand loading The lsquoinstallrsquo and lsquoinstall-striprsquo automake(1)

82 OpenSS7 SS7 Stack

targets will make the necessary changes to the lsquoetcmodulesconfrsquo file and place the mod-ules in an appropriate place in lsquolibmodules2420-287strss7rsquo The lsquomake installrsquoprocess should have copied the kernel module files lsquostreams-orsquo to the directory lsquolibmodules2420-287strss7rsquo This means that to load any of these modules you cansimply execute for example lsquomodprobe stream-somedriver rsquo37

6711 Linux Fast-STREAMS Module Loading

The lsquostrss7rsquo demand load system supports both the old kerneld and the new kmod mech-anisms for demand loading kernel modules

The convention for lsquostrss7rsquo kernel loadable object files is

bull Their name start with streams-

bull They are placed in lsquolibmodules2420-287streamsrsquo where lsquo2420-287rsquo isan example kernel version

If your kernel has been built using the lsquokerneldrsquo daemon then lsquostrss7rsquo kernel moduleswill automatically load as soon as the STREAMS module is pushed or the driver is openedThe lsquomake installrsquo process makes the necessary changes to the lsquoetcmodulesconfrsquo fileAfter the install you will see lines like the following added to your lsquoetcmodulesconfrsquofile prune modulesstrss7if -f libmoduleslsquouname -rlsquomodulesstrss7include libmoduleslsquouname -rlsquomodulesstrss7endif

which will provide for demand loading of the modules if they have been built and installedfor the running kernel The lsquolibmoduleslsquouname -rlsquomodulesstrss7rsquo file looks likethis alias char-major-245 streams-some_driver

alias char-major-246 streams-other_driver Note that STREAMS modules are not listed in this file but will be loaded by name usinglsquokerneldrsquo if available

Linux Fast-STREAMS has a wider range of kernel module loading mechanisms than isprovided by the deprecated LiS For mechanisms used for kernel module loading underLinux Fast-STREAMS See Section ldquoToprdquo in Linux Fast-STREAMS Reference Manual

6712 Linux STREAMS Module Loading

LiS is deprecated and this section has been deleted

68 Maintenance

37 Note that the lsquo_kversionrsquo of lsquo2420-287rsquo is only an example

Chapter 6 Installation 83

681 Makefile Targets

automake(1) has many targets not all of which are obvious to the casual user In additionOpenSS7 automake(1) files have additional rules added to make maintaining and releasinga package somewhat easier This list of targets provides some help with what targets can beinvoked what they do and what they hope to achieve The available targets are as follows

6811 User Targets

The following are normal targets intended to be invoked by installers of the package Theyare concerned with compiling checking the compile installing checking the installationand removing the package

lsquo[all]rsquo This is also the default target It compiles the package and all release packagesselected by lsquoconfigurersquo This is performed after configuring the source withlsquoconfigurersquo A lsquoMakefilersquo stub is provided so that if the package has not hadautoreconf(1) run (such as when checked out from CVS the package willattempt to run lsquoautoreconf -fivrsquoAll OpenSS7 Project packages are configured without maintainer mode andwithout dependency tracking by default This speeds compilation of the packagefor one-time builds This also means that if you are developing using the sourcepackage (edit-compile-test cycle) changes made to source files will not causethe automatic rebuilding due to dependencies There are two ways to enabledependency tracking specify lsquo--enable-maintainer-modersquo to lsquoconfigurersquo orspecify lsquo--enable-dependency-trackingrsquo to lsquoconfigurersquo I use the formerduring my edit-compile-test cycleThis is a standard GNU automake(1) makefile target This target does notrequire root privilege

lsquocheckrsquo All OpenSS7 Project release packages provide check scripts for the check targetThis step is performed after compiling the package and will run all of the lsquocheckrsquoprograms against the compiled binaries Which checks are performed dependson whether lsquo--enable-maintainer-modersquo was specified to lsquoconfigurersquo If inmaintainer mode checks that assist with the release of the package will berun (such as checking that all manual pages load properly and that they haverequired sections) We recommend running the check stage before installingbecause it catches problems that might keep the installed package from func-tioning properlyAnother way to enable the greater set of checks without invoking maintainermode is to specify lsquo--enable-checksrsquo to lsquoconfigurersquo For more informationsee Section 711 [Pre-installation Checks] page 93This is a standard GNU automake(1) makefile target although the functionsperformed are customized for the OpenSS7 Project This target does not requireroot privilege

lsquoinstallrsquolsquoinstall-striprsquo

The lsquoinstallrsquo target installs the package by installing each release packageThis target also performs some actions similar to the pre- and post-install scripts

84 OpenSS7 SS7 Stack

used by packaging tools such as rpm(1) or dpkg(1) The lsquoinstall-striprsquotarget strips unnecessary symbols from executables and kernel modules beforeinstallingThis is a standard GNU automake(1) makefile target This target requiresroot privilege

lsquoinstallcheckrsquoAll OpenSS7 Project packages provide test scripts for the lsquoinstallcheckrsquo tar-get Test scripts are created and run using autotest (part of the autoconf(1)package) Which test suites are run and how extensive they are depends onwhether lsquo--enable-maintainer-modersquo was specified to lsquoconfigurersquo When inmaintainer mode all test suites will be run When not in maintainer modeonly a few post-install checks will be performed but the test suites themselveswill be installed in lsquousrlibexecstrss7rsquo38 for later useThis is a standard GNU automake(1) makefile target This target might re-quire root privilege Tests requiring root privilege will be skipped when run asa regular user Tests requiring regular account privileges will be skipped whenrun as root

lsquoretestrsquo To complement the lsquoinstallcheckrsquo target above all OpenSS7 Project pack-ages provide the lsquoretestrsquo target as a means to rerun failed conformance testsuite test cases The lsquoretestrsquo target is provided because some test cases in thetest suites have delicate timing considerations that allow them to fail sporadi-cally Invoking this target will retest the failed cases until no cases that are notexpected failures remainThis is an OpenSS7 Project specific makefile target As with lsquoinstallcheckrsquothis target might require root privilege Tests requiring root privilege will beskipped when run as a regular user Tests requiring regular account privilegeswill be skipped when run as root

lsquouninstallrsquoThis target will reverse the steps taken to install the package This target alsoperforms pre- and post- erase scripts used by packaging tools such as rpm ordpkg You need to have a configured build directory from which to execute thistarget however you do not need to have compiled any of the files in that builddirectory39

The lsquouninstallrsquo target unfortunately removes add-on packages in the sameorder in which they were installed This is not good for the OpenSS7 MasterPackage where the lsquoremoversquo target should be used insteadThis is a standard GNU automake(1) makefile target This target requiresroot privilege

lsquoremoversquo This target is like lsquouninstallrsquo with the exception that it removes add-on pack-ages in the reverse order that installation was performed40

38 lsquousrlibexecstrss7rsquo is just an example the actual location is lsquo$libexecdir$PACKAGErsquo which variesfrom distribution to distribution (as some distributions such as Mandriva do not have a libexec directory)

39 Therefore it is possible to download the package configure it and then uninstall it This is handy if youdo not have the sources used to build and install the package immediately available

40 This is useful from the OpenSS7 Master Package

Chapter 6 Installation 85

This is an OpenSS7 Project specific makefile target This target requires rootprivilege

6812 Maintainer Targets

The following targets are targets intended for use by maintainers of the package or those re-sponsible for release and packaging of a derivative work of the package Some of these targetsare only effective when maintainer mode has been invoked (lsquo--enable-maintainer-modersquospecified to lsquoconfigurersquo)

lsquodistrsquo Creates a distribution package (tarball) in the top level build direc-tory OpenSS7 Project packages distribute two archives a lsquogzip tarrsquoarchive and a lsquobzip tarrsquo archive These archives will have the namelsquostrss7-09a8targzrsquo and lsquostrss7-09a8tarbz2rsquo

This is a standard GNU automake(1) makefile target This target does notrequire root privilege

lsquodistcheckrsquoThis target is intended for use when releasing the package It creates the tar(1)archives above and then unpacks the tarball in a source directory configures in aseparate build directory compiles the package installs the package in a separateinstall directory tests the install package to ensure that some components workand finally uses the unpacked source tree to build another tarball If you haveadded or removed files from the package this is a good way to ensure thateverything is still stable for release

This is a standard GNU automake(1) makefile target This target does notrequire root privilege

6813 Clean Targets

lsquomostlycleanrsquoCleans out most of the files from the compile stage This target is helpful if youhave not enabled dependency tracking and need to recompile with changes

This is a standard GNU automake(1) makefile target This target does notrequire root privilege

lsquocleanrsquo Cleans all the files from the build directory generated during the lsquomake [all]rsquophase It does not however remove files from the directory left there from thelsquoconfigurersquo run Use the lsquodistcleanrsquo target to remove those too

This is a standard GNU automake(1) makefile target This target might re-quire root privilege if the lsquoinstallcheckrsquo target or the testsuite was invokedwith root privilege (leaving files belonging to root)

lsquodistcleanrsquoThis target cleans out the directories left behind by lsquodistcheckrsquo and removesall the lsquoconfigurersquo and generated files from the build directory This willeffectively remove all the files in the build directory with the except of filesthat belong to you or some other process

86 OpenSS7 SS7 Stack

This is a standard GNU automake(1) makefile target This target might re-quire root privilege if the lsquoinstallcheckrsquo target or the testsuite was invokedwith root privilege (leaving files belonging to root)

lsquomaintainer-cleanrsquoThis target not only removes files from the build directory it removes generatedfiles from the source directory as well Care should be taken when invoking thistarget because it removes files generated by the maintainer and distributed withthe archive that might require special tools to regenerate These special toolsmight only be available to the maintainer41 It also means that you probablyneed a full blown Linux system to rebuild the package For more informationsee Section 628 [Downloading from CVS] page 59This is a standard GNU automake(1) makefile target This target might re-quire root privilege if the lsquoinstallcheckrsquo target or the testsuite was invokedwith root privilege (leaving files belonging to root)

lsquocheck-cleanrsquoThis target removes log files left behind by the lsquocheckrsquo target By default thecheck scripts append to log files in the top level build directory This targetcan be used to clean out those log files before the next runThis is an OpenSS7 Project specific makefile target This target does not requireroot privilege

6814 Manual Page Targets

The following targets are used to build install and uninstall just the manual pages from thedistribution These targets are good for creating a distribution of just the manual pagesWhen building atop multiple packages these targets recurse down through each package

lsquomansrsquo Build all of the manual pages This involves performing parametersubstitution on manual pages and optionally cooking the manual pages iflsquo--with-cooked-manpagesrsquo was requested during configuration

lsquoinstall-mansrsquoInstalls the manual pages under DESTDIR Specify DESTDIR to place themanual pages wherever you see fit If DESTDIR is not specified on the com-mand line the manual pages will be installed in the normal installation direc-tory

lsquouninstall-mansrsquoUninstalls the manual pages from DESTDIR Specify DESTDIR to indicatewhere to remove the manual pages from If DESTDIR is not specified on thecommand line the manual pages will be removed from the normal installationdirectory

6815 Release Targets

The following are targets used to generate complete releases into the package distributiondirectory These are good for unattended and NFS builds which is what I use them for

41 Theoretically this is true however the OpenSS7 Project does not use any maintainer programs that are notgenerally available (ie open source)

Chapter 6 Installation 87

Also when building from atop multiple packages these targets also recurse down througheach package

lsquoreleasersquo Build all of the things necessary to generate a release On an rpm(1) systemthis is the distribution archives the source rpm and the architecture dependentand architecture independent binary rpms All items are placed in the packagedistribution directory that can be specified with the lsquo--with-pkg-distdir=DIRrsquooption to lsquoconfigurersquo

This is an OpenSS7 Project specific makefile target This target does not requireroot privilege

lsquoforced-releasersquoThe lsquoreleasersquo target will not regenerate any files that already exist in thepackage distribution directory This forced target will

This is an OpenSS7 Project specific makefile target This target does not requireroot privilege

lsquorelease-signrsquoYou will be prompted for a password unless to specify it to make with theGNUPGPASS variable For unattended or non-interactive builds with signingyou can do that as lsquomake GNUPGPASS=mypasswd release-signrsquo

This is an OpenSS7 Project specific makefile target This target does not requireroot privilege

lsquoforced-release-signrsquoThe lsquorelease-signrsquo target will not regenerate any files that already exist inthe package distribution directory This forced target will

This is an OpenSS7 Project specific makefile target This target does not requireroot privilege

lsquorelease-cleanrsquoThis target will remove all distribution files for the current package from thepackage distribution directory

This is an OpenSS7 Project specific makefile target This target does not requireroot privilege

6816 Logging Targets

For convenience to log the output of a number of targets to a file log targets are definedThe log file itself is used as the target to make but make invokes the target minus a lsquologrsquosuffix So for example to log the results of target lsquofoorsquo invoke the target lsquofoologrsquo Theonly target that this does not apply to is lsquocompilelogrsquo When you invoke the targetlsquocompilelogrsquo a simple automake(1) is invoked and logged to the file lsquocompilelogrsquo Thelsquofoologrsquo rule applies to all other targets This does not work for all targets just a selectedfew42 Following are the logging targets

42 Note that because logging targets invoke a pipe automake(1) does not return the correct return status(always returns success if the tee(1) operation is successful) Therefore these targets should not be invokedby scripts that need to use the return value from automake(1)

88 OpenSS7 SS7 Stack

Common Logging Targets

Common logging targets correspond to normal user automake(1) makefile targets as follows

lsquocompilelogrsquoThis is an OpenSS7 Project specific makefile target but it invokes the standardGNU automake(1) makefile target lsquo[all]rsquo

lsquochecklogrsquoThis is an OpenSS7 Project specific makefile target but it invokes the standardGNU automake(1) makefile target lsquocheckrsquo

lsquoinstalllogrsquoThis is an OpenSS7 Project specific makefile target but it invokes the standardGNU automake(1) makefile target lsquoinstallrsquo

lsquoinstallchecklogrsquoThis is an OpenSS7 Project specific makefile target but it invokes the standardGNU automake(1) makefile target lsquoinstallcheckrsquo

lsquouninstalllogrsquoThis is an OpenSS7 Project specific makefile target but it invokes the standardGNU automake(1) makefile target lsquouninstallrsquo

lsquoremovelogrsquoThis is an OpenSS7 Project specific makefile target that invokes the OpenSS7Project lsquoremoversquo target

Maintainer Logging Targets

Maintainer logging targets correspond to maintainer mode automake(1) makefile targetsas follows

lsquodistlogrsquoThis is an OpenSS7 Project specific makefile target but it invokes the standardGNU automake(1) makefile target lsquodistrsquo

lsquodistchecklogrsquoThis is an OpenSS7 Project specific makefile target but it invokes the standardGNU automake(1) makefile target lsquodistcheckrsquo

lsquosrpmlogrsquoThis is an OpenSS7 Project specific makefile target that invokes the OpenSS7Project lsquosrpmrsquo target

lsquorebuildlogrsquoThis is an OpenSS7 Project specific makefile target that invokes the OpenSS7Project lsquorebuildrsquo target

lsquoresignlogrsquoThis is an OpenSS7 Project specific makefile target that invokes the OpenSS7Project lsquoresignrsquo target

lsquoreleaselogrsquoThis is an OpenSS7 Project specific makefile target that invokes the OpenSS7Project lsquoreleasersquo target

Chapter 6 Installation 89

lsquorelease-signlogrsquoThis is an OpenSS7 Project specific makefile target that invokes the OpenSS7Project lsquorelease-signrsquo target

If you want to add one simply add it to LOGGING TARGETS in lsquoMakefileamrsquo

6817 Problem Report Targets

To ease problem report generation all logging targets will automatically generate a problemreport suitable for mailing in the file lsquotargetprrsquo for target lsquotargetlogrsquo This problemreport file is in the form of an email and can be sent using the included send-pr script orby invoking the lsquosend-prrsquo makefile targetThere are two additional problem report targets

lsquoprrsquo The lsquoprrsquo target is for independently generating a problem report outside of thebuild or installation process The target will automatically generate a problemreport skeleton suitable for editing and mailing in the file lsquoproblemprrsquo Thisproblem report file is in the form of an email and can be edited and sent directlyor sent using the included send-pr script or by invoking the lsquosend-prrsquo targetThis is an OpenSS7 Project specific makefile target This target does not requireroot privilege

lsquosend-prrsquo The lsquosend-prrsquo target is for finalizing and mailing a problem report generatedeither inside or outside the build and installation process The target will au-tomatically finalize and mail the lsquoproblemprrsquo problem report if it has changedsince the last time that lsquosend-prrsquo was invokedThis is an OpenSS7 Project specific makefile target This target does not requireroot privilege (unless the problem report file was generated as root)

6818 Release Archive Targets

The following targets are used to generate and clean distribution archive and signature filesWhereas the lsquodistrsquo target affects archives in the top build directory the lsquorelease-archiversquotargets affects archives in the package distribution directory (either the top build directoryor that specified with lsquo--with-pkg-distdir=DIRrsquo to lsquoconfigurersquo)You can change the directory to which packages are distributed by using thelsquo--with-pkg-distdir=DIRrsquo option to lsquoconfigurersquo The default directory is the top builddirectory

lsquorelease-archivesrsquoThis target creates the distribution archive files if they have not already beencreated This not only runs the lsquodistrsquo target but also copies the files to thedistribution directory which by default is the top build directoryThe files generated are namedlsquostrss7-09a8targzrsquo and lsquostrss7-09a8tarbz2rsquoYou can change this distribution directory with the lsquo--with-pkg-distdirrsquo op-tion to lsquoconfigurersquo See lsquoconfigure --helprsquo for more details on optionsThis is an OpenSS7 Project specific makefile target This target does not requireroot privilege

90 OpenSS7 SS7 Stack

lsquorelease-sign-archivesrsquoThis target is like lsquorelease-archivesrsquo except that it also signs the archivesusing a GPG detached signature You will be prompted for a password unlessyou pass the GNUPGPASS variable to make For automated or unattendedbuilds pass the GNUPGPASS variable like solsquomake GNUPGPASS=mypasswd release-sign-archivesrsquoSignature files will be namedlsquostrss7-09a8targzascrsquo and lsquostrss7-09a8tarbz2ascrsquoThese files will be moved to the package distribution directory with the plaintext archivesThis is an OpenSS7 Project specific makefile target This target does not requireroot privilege

lsquorelease-clean-archivesrsquoThis target will clean the release archives and signature files from the packagedistribution directoryThis is an OpenSS7 Project specific makefile target This target does not requireroot privilege

6819 RPM Build Targets

On rpm(1) systems or systems sporting rpm packaging tools the following targets are usedto generate rpm(1) release packages The epoch and release number can be controlled by thecontents of the lsquorpmepochrsquo and lsquorpmreleasersquo files or with the lsquo--with-rpm-epoch=EPOCHrsquoand lsquo--with-rpm-release=RELEASErsquo options to lsquoconfigurersquo See lsquoconfigure --helprsquo formore information on options We always use release number lsquo1rsquo You can use releasenumbers above lsquo1rsquo

lsquosrpmrsquo This target generates the source rpm for the package (without signing the sourcerpm) The source rpm will be named lsquostrss7-09a8-1srpmrsquoThis is an OpenSS7 Project specific makefile target This target does not requireroot privilege

lsquorpmsrsquo This target is responsible for generating all of the package binary rpms for thearchitecture The binary rpms will be namedlsquostrss7--09a8-1rpmrsquowhere the stars indicate the subpackage and the architecture Both the archi-tecture specific subpackages (binary objects) and the architecture independent(lsquonoarchrsquo) subpackages will be built unless the the former was disabled withthe option lsquo--disable-archrsquo or the later with the option lsquo--disable-indeprsquopassed to lsquoconfigurersquoThis is an OpenSS7 Project specific makefile target This target does not requireroot privilege

lsquosignrsquolsquosrpm-signrsquo

These two targets are the same When invoked they will add a signature tothe source rpm file provided that the file does not already have a signature

Chapter 6 Installation 91

You will be prompted for a password if a signature is required Automated orunattended builds can be achieved by using the emake expect script includedin lsquo$srcdirscriptsemakersquoThis is an OpenSS7 Project specific makefile target This target does not requireroot privilege

lsquorebuildrsquo This target accepts searches out a list of kernel names from thelsquo$DESTDIRlibmodulesrsquo directory and builds rpms for those kernels andfor each of a set of architectures given in the AM RPMTARGETS variable tomake This is convenience target for building a group of rpms on a given buildmachineThis is an OpenSS7 Project specific makefile target This target does not requireroot privilege

lsquoresignrsquo This target will search out and sign with a GPG signature the source rpm andall of the binary rpms for this package that can be found in the package distri-bution directory This target will prompt for a GPG password Automated orunattended builds can be achieved with the emake expect script located herelsquo$srcdirscriptsemakersquoThis is an OpenSS7 Project specific makefile target This target does not requireroot privilege

68110 Debian Build Targets

On Debian systems or systems sporting Debian packaging tools the following targets areused to generate Debian release packages The release number can be controlled by thecontents of the lsquodebreleasersquo file or with the lsquo--with-debrelease=RELEASENUMBERrsquo optionto lsquoconfigurersquo See lsquoconfigure --helprsquo for more information on options

lsquodscrsquo This target will build the Debian source change package (lsquodscrsquo file) Weuse release number lsquo0rsquo so that the entire tarball is included in the lsquodscrsquo fileYou can use release number lsquo1rsquo for the same purposes Release numbersabove lsquo1rsquo will not include the entire tarball The lsquodscrsquo file will be namedlsquostrss7_09a8-0dscrsquoThis is an OpenSS7 Project specific makefile target This target does not requireroot privilege

lsquosigsrsquo This target signs the lsquodebrsquo files You will be prompted for a password unlessto specify it to make with the GNUPGPASS variableThis is an OpenSS7 Project specific makefile target This target does not requireroot privilege

lsquodebsrsquo This target will build the Debian binary package (lsquodebrsquo file) from thelsquodscrsquo created above (This target will also create the lsquodscrsquo if it hasnot been created already) The subpackage lsquodebrsquo files will be namedlsquostrss7-_09a8-0_debrsquo where the stars indicate the subpackage and thearchitectureThis is an OpenSS7 Project specific makefile target This target does not requireroot privilege

92 OpenSS7 SS7 Stack

lsquocsigrsquo This target signs the lsquodscrsquo file You will be prompted for a password unlessto specify it to make with the GNUPGPASS variableThis is an OpenSS7 Project specific makefile target This target does not requireroot privilege

68111 Documentation Targets

On systems that have doxygen(1) documentation tool the following targets are used togenerate doxygen html documentation

lsquodoxyrsquo This target generates doxygen(1) documetnation from suitably marked sourcesFile containing the necessary documentation marks are discovered automat-ically by configure Doxygen documentation can be generated bus is notdistributed Documentation is cerated in the subdirectory lsquodochtmlrsquo

Chapter 7 Troubleshooting 93

7 Troubleshooting

71 Test Suites

711 Pre-installation Checks

Most OpenSS7 packages including the OpenSS7 SS7 Stack package ship withpre-installation checks integral to the build system Pre-installation checks include checkscripts that are shipped in the lsquoscriptsrsquo subdirectory as well as specialized make targetsthat perform the checks

When building and installing the package from RPM or DEB source packages (seeSection 641 [Building from the Source RPM] page 77 and Section 642 [Building fromthe Debian DSC] page 78) a fundamental set of post-compile pre-installation checksare performed prior to building binary packages This is performed automatically anddoes not require any special actions on the part of the user creating binary packages fromsource packages

When building and installing the package from tarball (see Section 643 [Building fromthe Tar Ball] page 78 and Section 653 [Installing the Tar Ball] page 80) however pre-installation checks are only performed if specifically invoked by the builder of the packagePre-installation checks are invoked after building the package and before installing thepackage Pre-installation checks are performed by invoking the lsquocheckrsquo or lsquochecklogrsquotarget to make when building the package as shown in Example 71 wget httpwwwopenss7orgstrss7-09a8tarbz2 tar -xjvf strss7-09a8tarbz2 pushd strss7-09a8 configure make make check lt------- invoke pre-installation checks popd

Example 71 Invoking Pre-Installation Checks Pre-installation checks fall into two categories System Checks and Maintenance Checks

7111 Pre-Installation System Checks

System Checks are post-compilation checks that can be performed before installing thepackage that check to ensure that the compiled objects function and will be successfully in-stalled When the lsquo--enable-maintainer-modersquo option has not been passed to configureonly System Checks will be performed

For example the steps shown in Example 72 will perform System checks

94 OpenSS7 SS7 Stack wget httpwwwopenss7orgstrss7-09a8tarbz2 tar -xjvf strss7-09a8tarbz2 pushd strss7-09a8 configure make make check lt------ invokes System pre-installation checks popd

Example 72 Invoking System Checks 7112 Pre-Installation Maintenance Checks

Maintenance Checks include all System Checks but also checks to ensure that thekernel modules applications programs header files development tools test programsdocumentation and manual pages conform to OpenSS7 standards When thelsquo--enable-maintainer-modersquo option has been passed to configure Maintenance Checkswill be performed

For example the steps shown in Example 73 will perform Maintenance checks wget httpwwwopenss7orgstrss7-09a8tarbz2 tar -xjvf strss7-09a8tarbz2 pushd strss7-09a8 configure --enable-maintainer-mode make make check lt------ invokes Maintenance pre-installation checks popd

Example 73 Invoking Maintenance Checks 7113 Specific Pre-Installation Checks

A number of check scripts are provided in the lsquoscriptsrsquo subdirectory of the distributionthat perform both System and Maintenance checks These are as follows

check_commandsThis check performs both System and Maintenance checksWhen performing System tests the following tests are performedUnless cross-compiling or unless a program is included in AM_INSTALLCHECK_STD_OPTIONS_EXEMPT every program in bin_PROGRAMS sbin_PROGRAMS andlibexec_PROGRAMS is tested to ensure that the lsquo--helprsquo lsquo--versionrsquo andlsquo--copyingrsquo options are accepted When cross-compiling is is not possible toexecute cross-compiled binaries and these checks are skipped in that caseScript executables on the other hand can be executed on the build host so un-less listed in AM_INSTALLCHECK_STD_OPTIONS_EXEMPT every program in dist_bit_SCRIPTS dist_sbin_SCRIPTS and pkglibexec_SCRIPTS are tested to en-sure that the lsquo--helprsquo lsquo--versionrsquo and lsquo--copyingrsquo options are acceptedWhen performing Maintenance tests check_commands also checks to ensurethat a manual page exists in section 1 for every executable binary or script

Chapter 7 Troubleshooting 95

that will be installed from bin_PROGRAMS and dist_bin_SCRIPTS It alsochecks to ensure that a manual page exists in section 8 for every executable bi-nary or script that will be installed from sbin_PROGRAMS dist_sbin_SCRIPTSlibexec_PROGRAMS and pkglibexec_SCRIPTS

check_declsThis check only performs Maintenance checksIt collects the results from the check_libs check_modules and check_headers check scripts and tests to ensure every declaration of a functionprototype or external variable contained in installed header files has acorresponding exported symbol from either a to be installed shared objectlibrary or a to be installed kernel module Declarations are exemptedfrom this requirement if their identifiers have been explicitly added to theEXPOSED_SYMBOL variable If WARN_EXCESS is set to lsquoyesrsquo then the checkscript will only warn when excess declarations exist (without a correspondingexported symbol) otherwise the check script will generate an error and thecheck will fail

check_headersThis check only performs Maintenance checksWhen performing Maintenance tests it identifies all of the declarations includedin to be installed header files It then checks to ensure that a manual pageexists in sections 2 3 7 or 9 as appropriate for the type of declaration Italso checks to see if a manual page source file exists in the source directoryfor a declaration that has not been included in the distribution Function orprototype declarations that do not have a manual page in sections 2 3 or9 will cause the check to fail Other declarations (lsquovariablersquo lsquoexternvarrsquolsquomacrorsquo lsquoenumeratersquo lsquoenumrsquo lsquostructrsquo lsquounionrsquo lsquotypedefrsquo lsquomemberrsquo etc) willonly warn if a manual page does not exist but will not fail the check

check_libsThis check only performs Maintenance checksWhen performing Maintenance tests it checks that each exported symbol ineach to be installed shared object library has a manual page in section 3 It alsochecks that each exported symbol has a lsquofunctionrsquo lsquoprototypersquo or lsquoexternvarrsquodeclaration in the to be installed header files A missing declaration or manualpage will cause this check to fail

check_mansThis check only performs Maintenance checksWhen performing Maintenance tests it checks that to be install manual pagescan be formatted for display without any errors or warnings from the buildhost man program It also checks that required headings exist for manual pagesaccording to the section in which the manual page will be installed It warnsif recommended headings are not included in the manual pages Because someRPM distributions have manual pages that might conflict with the packagemanual pages this check script also checks for conflicts with installed manualpages on the build host This check script also checks to ensure that all to be

96 OpenSS7 SS7 Stack

installed manual pages are used in some fashion that is they have a declarationor exported symbol or are the name of a kernel module or STREAMS moduleor driver possibly capitalizedNote that checking for conflicts with the build host should probably be includedin the System checks (because System checks are performed before the sourceRPM install scriptlet)

check_modulesThis check performs both System and Maintenance checksWhen performing System tests it checks each to be installed kernel moduleto ensure that all undefined symbols can be resolved to either the kernel oranother module It also checks whether an exported or externally declaredsymbol conflicts with an exported or externally declared symbol present in thekernel or another module1

When performing Maintenance tests this check script tests that each to beinstalled kernel module has a manual page in section 9 and that each exportedsymbol that does not begin with an underscore and that belongs to an exportedfunction or exported variable has a manual page in section 9 It also checks toensure that each exported symbol that does not begin with an underscore andthat belongs to an exported function or exported variable has a lsquofunctionrsquolsquoprototypersquo or lsquoexternvarrsquo declaration in the to be installed header files

check_streamsThis check performs only Maintenance checksWhen performing Maintenance tests it checks that for each configuredSTREAMS module or driver or device node that a manual page exists insection 4 or section 7 as appropriate

The output of the pre-installation tests are fairly self explanatory Each check script savessome output to lsquonamelogrsquo where name is the name of the check script as listed above Asummary of the results of the test are display to standard output and can also be capturedto the lsquochecklogrsquo file if the lsquochecklogrsquo target is used instead of the lsquocheckrsquo target tomakeBecause the check scripts proliferate lsquonamelogrsquo files throughout the build directory a lsquomakecheck-cleanrsquo make target has be provided to clean them out lsquomake check-cleanrsquo shouldbe run before each successive run of lsquomake checkrsquo

712 Post-installation Checks

Most OpenSS7 packages ship with a compatibility and conformance test suite built us-ing the lsquoautotestrsquo capabilities of lsquoautoconfrsquo These test suites act as a wrapper for thecompatibility and conformance test programs that are shipped with the packageUnlike the pre-installation checks the post-installation checks are always run completeThe only check that post-installation test scripts perform is to test whether they havebeen invoked with root privileges or not When invoked as root or as a plain user sometests might be skipped that require root privileges or that require plain user privileges tocomplete successfully

1 This particular check has caught some name space pollution that has occurred in the 2611 kernel

Chapter 7 Troubleshooting 97

7121 Running Test Suites

There are several ways of invoking the conformance test suites

1 The test suites can be run after installation of the package by invoking the lsquomakeinstallcheckrsquo or lsquomake installchecklogrsquo target Some packages require that rootprivileges be acquired before invoking the package

2 The test suites can be run from the distribution subdirectory after installation of thepackage by invoking the testsuite shell script directly

3 The test suites can be run standalone from the lsquolibexecrsquo (lsquousrlibexecrsquo) installationdirectory by invoking the testsuite shell script directly

Typical steps for invoking the test suites directly from make are shown in Example 74 wget httpwwwopenss7orgstrss7-09a8tarbz2 tar -xjvf strss7-09a8tarbz2 pushd strss7-09a8 configure make make check lt------ invokes System pre-installation checks make install sudo make installcheck lt------- invokes post-installation tests popd

Example 74 Invoking System Checks When performing post-installation checks for the purposes of generating a problem re-port the checks should always be performed from the build directory either with lsquomakeinstallcheckrsquo or by invoking testsuite directly from the lsquotestsrsquo subdirectory of thebuild directory This ensures that all of the information known to configure and pertinentto the configuration of the system for which a test case failed will be collected in the re-sulting lsquotestsuitelogrsquo file deposited upon test suite failure in the lsquotestsrsquo directory Thislsquotestsuitelogrsquo file can then be attached as part of the problem report and provides richdetails to maintainers of the package See also See Section 72 [Problem Reports] page 97below

Typical steps for invoking and installed testsuite standalone are shown in Example 75 [sudo] usrlibexecstrss7testsuite

Example 75 Invoking testsuite Directly When invoked directly testsuite will generate a lsquotestsuitelogrsquo file in the current di-rectory and a lsquotestsuitedirrsquo directory of failed tests cases and debugging scripts Forgenerating a problem report for failed test cases see Section 724 [Stand Alone ProblemReports] page 100

72 Problem Reports

98 OpenSS7 SS7 Stack

721 Problem Report Guidelines

Problem reports in the following categories should include a log file as indicated in the tablebelow

lsquoconfigurersquoA problem with the configuration process occurs that causes the lsquoconfigurersquocommand to fail The problem report must include the lsquoconfiglogrsquo file thatwas generated by configure

lsquomake compilelogrsquoA problem with the build process occurs that causes the lsquomakersquo commandto fail Perform lsquomake cleanrsquo and then lsquomake compilelogrsquo and attach thelsquoconfiglogrsquo and lsquocompilelogrsquo files to the problem report

lsquomake checklogrsquoA problem occurs with the lsquomake checkrsquo target that causes it to fail Performlsquomake check-clean checklogrsquo and attach the lsquoconfiglogrsquo lsquocompilelogrsquoand lsquochecklogrsquo files to the problem report

lsquosudo make installlogrsquoA problem occurs with lsquosudo make installrsquo that causes it to fail Performlsquosudo make uninstallrsquo and lsquosudo make installlogrsquo and attach thelsquoconfiglogrsquo lsquocompilelogrsquo lsquochecklogrsquo and lsquoinstalllogrsquo files to theproblem report

lsquo[sudo] make installchecklogrsquoA problem occurs with the lsquomake installcheckrsquo target that causesthe test suite to fail Attach the resulting lsquoteststestsuitelogrsquo andlsquoinstallchecklogrsquo file to the problem report There is no need to attach theother files as they are included in lsquoteststestsuitelogrsquo

lsquo[sudo] make uninstalllogrsquoA problem occurs with the lsquomake uninstallrsquo target that causes the test suiteto fail Perform lsquosudo make uninstalllogrsquo and attach the lsquoconfiglogrsquolsquocompilelogrsquo lsquochecklogrsquo lsquoinstalllogrsquo lsquoinstallchecklogrsquolsquoteststestsuitelogrsquo and lsquouninstalllogrsquo file to the problem report

lsquo[sudo] make removelogrsquoA problem occurs with the lsquomake removersquo target that causes the test suiteto fail Perform lsquosudo make removelogrsquo and attach the lsquoconfiglogrsquolsquocompilelogrsquo lsquochecklogrsquo lsquoinstalllogrsquo lsquoinstallchecklogrsquolsquoteststestsuitelogrsquo and lsquoremovelogrsquo file to the problem report

For other problems that occur during the use of the OpenSS7 SS7 Stack package pleasewrite a test case for the test suite that recreates the problem if one does not yet existand provide a test program patch with the problem report Also include whatever logfiles are generated by the kernel (cmn_err(9)) or by the strerr(8) or strace(1) facilities(strlog(9))

722 Generating Problem Reports

The OpenSS7 Project uses the GNU GNATS system for problem reporting Although thelsquosend-prrsquo tool from the GNU GNATS package can be used for bug reporting to the projectrsquos

Chapter 7 Troubleshooting 99

GNATS database using electronic mail it is not always convenient to download and installthe GNATS system to gain access to the lsquosend-prrsquo toolTherefore the OpenSS7 SS7 Stack package provides the lsquosend-prrsquo shell script that canbe used for problem reporting The lsquosend-prrsquo shell script can invoked directly and is awork-alike for the GNU lsquosend-prrsquo toolThe lsquosend-prrsquo tool takes the same flags and can be used in the same fashion howeverwhereas lsquosend-prrsquo is an interactive tool2 lsquosend-prrsquo is also able to perform batch process-ing Whereas lsquosend-prrsquo takes its field information from local databases or from using thelsquoquery-prrsquo C-language program to query a remote database the lsquosend-prrsquo tool has thefield database internal to the toolProblem reports can be generate using make See Section 6817 [Problem Report Targets]page 89 An example of how simple it is to generate a problem report is illustrated inExample 76 make prSEND-PRSEND-PR send-pr send-pr was invoked to generate an external report AnSEND-PR automated problem report has been created in the file namedSEND-PR rsquoproblemprrsquo in the current directory This problem report canSEND-PR be sent to bugsopenss7org by calling this script asSEND-PR rsquohomebrianos7scriptssend-pr --file=problemprrsquoSEND-PRSEND-PR It is possible to edit some of the fields before sending on theSEND-PR problem report Please remember that there is NO WARRANTY SeeSEND-PR the file rsquoCOPYINGrsquo in the top level directorySEND-PRSEND-PR Please do not send confidential information to the bug reportSEND-PR address Inspect the file rsquoproblemprrsquo for confidentialSEND-PR information before mailingSEND-PR vim problempr lt--- follow instructions at head of file make send-pr

Example 76 Invoking Problem Report Generation Using the lsquomake prrsquo target to generate a problem report has the advantages that it willassemble any available lsquologrsquo files in the build directory and attach them to the problemreport

723 Automatic Problem Reports

The OpenSS7 SS7 Stack package also provides a feature for automatic problem reportgeneration that meets the problem report submission guidelines detailed in the precedingsectionsWhenever a logging makefile target (see Section 6816 [Logging Targets] page 87) is in-voked if the primary target fails the send-pr shell script is invoked to automatically

2 lsquosend-prrsquo launches the userrsquos EDITOR to edit the problem report before submitting it

100 OpenSS7 SS7 Stack

generate a problem report file suitable for the corresponding target (as described aboveunder see Section 721 [Problem Report Guidelines] page 98) An example is shown inExample 77 make compilelogmake[5] [libXNSdrvs_a-ipo] Error 1make[5] Leaving directory lsquou6buildel4strxnsrsquomake[4] [all-recursive] Error 1make[4] Leaving directory lsquou6buildel4strxnsrsquomake[3] [all] Error 2make[3] Leaving directory lsquou6buildel4strxnsrsquomake[2] [all-recursive] Error 1make[2] Leaving directory lsquou6buildel4rsquomake[1] [all] Error 2make[1] Leaving directory lsquou6buildel4rsquoSEND-PRSEND-PR send-pr Make target compilelog failed in the compile stage AnSEND-PR automated problem report has been created in the file namedSEND-PR rsquoproblemprrsquo in the current directory This problem report canSEND-PR be sent to bugsopenss7org by calling rsquomake send-prrsquoSEND-PRSEND-PR It is possible to edit some of the fields before sending on theSEND-PR problem report Please remember that there is NO WARRANTY SeeSEND-PR the file rsquoCOPYINGrsquo in the top level directorySEND-PRSEND-PR Please do not send confidential information to the bug reportSEND-PR address Inspect the file rsquoproblemprrsquo for confidentialSEND-PR information before mailingSEND-PR vim problempr lt--- follow instructions at head of file make send-pr

Example 77 Problem Report from Failed Logging Target 724 Stand Alone Problem Reports

The OpenSS7 SS7 Stack package installs the send-pr script and its configuration filelsquosend-prconfigrsquo in lsquo$libexecdirstrss7rsquo along with the validation testsuite seeSee Section 71 [Test Suites] page 93 As with the testsuite this allows the send-prscript to be used for problem report generation on an installed system that does not havea build directory

An example of invoking the package testsuite and then generating a problem report forfailed cases is shown in Example 78

Chapter 7 Troubleshooting 101 [sudo] usrlibexecstrss7testsuite test cases failed usrlibexecstrss7send-prSEND-PRSEND-PR send-pr send-pr was invoked to generate an external report AnSEND-PR automated problem report has been created in the file namedSEND-PR rsquoproblemprrsquo in the current directory This problem report canSEND-PR be sent to bugsopenss7org by calling this script asSEND-PR rsquousrlibexecstrss7send-pr --file problemprrsquoSEND-PRSEND-PR It is possible to edit some of the fields before sending on theSEND-PR problem report Please remember that there is NO WARRANTY SeeSEND-PR the file rsquoCOPYINGrsquo in the top level directorySEND-PRSEND-PR Please do not send confidential information to the bug reportSEND-PR address Inspect the file rsquoproblemprrsquo for confidentialSEND-PR information before mailingSEND-PR vim problempr lt--- follow instructions at head of file usrlibexecstrss7send-pr --file problempr

Example 78 Invoking send-pr Directly The advantage of the approach shown in the example is that the send-pr script is capableof collecting the lsquotestsuitelogrsquo file and the failed test cases and debugging scripts fromthe lsquotestsuitedirrsquo directory and including them in the problem report as well as allpackage pertinent information from the installed lsquosend-prconfigrsquo

73 Known Problems

The OpenSS7 Project does not ship software with known bugs All bugs are unknownVerified behaviour is that behaviour that has been verified by conformance test suites thatare shipped with the OpenSS7 SS7 Stack packageUnverified behaviour may contain unknown bugsPlease remember that there is NO WARRANTYSee also Section 55 [Bugs] page 43 or file lsquoBUGSrsquo in the release directory

Licenses 103

Licenses

104 OpenSS7 SS7 Stack

GNU Affero General Public License

The GNU Affero General Public LicenseVersion 3 19 November 2007

Copyright ccopy 2007 Free Software Foundation Inc httpfsforg

Everyone is permitted to copy and distribute verbatim copies of thislicense document but changing it is not allowed

Preamble

The GNU Affero General Public License is a free copyleft license for software and otherkinds of works specifically designed to ensure cooperation with the community in the caseof network server software

The licenses for most software and other practical works are designed to take away yourfreedom to share and change the works By contrast our General Public Licenses areintended to guarantee your freedom to share and change all versions of a programndashto makesure it remains free software for all its users

When we speak of free software we are referring to freedom not price Our General PublicLicenses are designed to make sure that you have the freedom to distribute copies of freesoftware (and charge for them if you wish) that you receive source code or can get it if youwant it that you can change the software or use pieces of it in new free programs and thatyou know you can do these things

Developers that use our General Public Licenses protect your rights with two steps (1)assert copyright on the software and (2) offer you this License which gives you legal per-mission to copy distribute andor modify the software

A secondary benefit of defending all usersrsquo freedom is that improvements made in alternateversions of the program if they receive widespread use become available for other developersto incorporate Many developers of free software are heartened and encouraged by theresulting cooperation However in the case of software used on network servers this resultmay fail to come about The GNU General Public License permits making a modifiedversion and letting the public access it on a server without ever releasing its source code tothe public

The GNU Affero General Public License is designed specifically to ensure that in such casesthe modified source code becomes available to the community It requires the operator of anetwork server to provide the source code of the modified version running there to the usersof that server Therefore public use of a modified version on a publicly accessible servergives the public access to the source code of the modified version

An older license called the Affero General Public License and published by Affero wasdesigned to accomplish similar goals This is a different license not a version of the AfferoGPL but Affero has released a new version of the Affero GPL which permits relicensingunder this license

The precise terms and conditions for copying distribution and modification follow

Licenses 105

Terms and Conditions

0 DefinitionsldquoThis Licenserdquo refers to version 3 of the GNU Affero General Public LicenseldquoCopyrightrdquo also means copyright-like laws that apply to other kinds of works such assemiconductor masksldquoThe Programrdquo refers to any copyrightable work licensed under this License Eachlicensee is addressed as ldquoyourdquo ldquoLicenseesrdquo and ldquorecipientsrdquo may be individuals ororganizationsTo ldquomodifyrdquo a work means to copy from or adapt all or part of the work in a fashionrequiring copyright permission other than the making of an exact copy The resultingwork is called a ldquomodified versionrdquo of the earlier work or a work ldquobased onrdquo the earlierworkA ldquocovered workrdquo means either the unmodified Program or a work based on the Pro-gramTo ldquopropagaterdquo a work means to do anything with it that without permission wouldmake you directly or secondarily liable for infringement under applicable copyright lawexcept executing it on a computer or modifying a private copy Propagation includescopying distribution (with or without modification) making available to the publicand in some countries other activities as wellTo ldquoconveyrdquo a work means any kind of propagation that enables other parties to makeor receive copies Mere interaction with a user through a computer network with notransfer of a copy is not conveyingAn interactive user interface displays ldquoAppropriate Legal Noticesrdquo to the extent that itincludes a convenient and prominently visible feature that (1) displays an appropriatecopyright notice and (2) tells the user that there is no warranty for the work (exceptto the extent that warranties are provided) that licensees may convey the work underthis License and how to view a copy of this License If the interface presents a listof user commands or options such as a menu a prominent item in the list meets thiscriterion

1 Source CodeThe ldquosource coderdquo for a work means the preferred form of the work for making modi-fications to it ldquoObject coderdquo means any non-source form of a workA ldquoStandard Interfacerdquo means an interface that either is an official standard definedby a recognized standards body or in the case of interfaces specified for a particularprogramming language one that is widely used among developers working in thatlanguageThe ldquoSystem Librariesrdquo of an executable work include anything other than the work asa whole that (a) is included in the normal form of packaging a Major Component butwhich is not part of that Major Component and (b) serves only to enable use of thework with that Major Component or to implement a Standard Interface for which animplementation is available to the public in source code form A ldquoMajor Componentrdquoin this context means a major essential component (kernel window system and soon) of the specific operating system (if any) on which the executable work runs or acompiler used to produce the work or an object code interpreter used to run it

106 OpenSS7 SS7 Stack

The ldquoCorresponding Sourcerdquo for a work in object code form means all the source codeneeded to generate install and (for an executable work) run the object code and tomodify the work including scripts to control those activities However it does notinclude the workrsquos System Libraries or general-purpose tools or generally availablefree programs which are used unmodified in performing those activities but which arenot part of the work For example Corresponding Source includes interface definitionfiles associated with source files for the work and the source code for shared librariesand dynamically linked subprograms that the work is specifically designed to requiresuch as by intimate data communication or control flow between those subprogramsand other parts of the workThe Corresponding Source need not include anything that users can regenerate auto-matically from other parts of the Corresponding SourceThe Corresponding Source for a work in source code form is that same work

2 Basic PermissionsAll rights granted under this License are granted for the term of copyright on theProgram and are irrevocable provided the stated conditions are met This License ex-plicitly affirms your unlimited permission to run the unmodified Program The outputfrom running a covered work is covered by this License only if the output given itscontent constitutes a covered work This License acknowledges your rights of fair useor other equivalent as provided by copyright lawYou may make run and propagate covered works that you do not convey withoutconditions so long as your license otherwise remains in force You may convey coveredworks to others for the sole purpose of having them make modifications exclusivelyfor you or provide you with facilities for running those works provided that youcomply with the terms of this License in conveying all material for which you do notcontrol copyright Those thus making or running the covered works for you must doso exclusively on your behalf under your direction and control on terms that prohibitthem from making any copies of your copyrighted material outside their relationshipwith youConveying under any other circumstances is permitted solely under the conditionsstated below Sublicensing is not allowed section 10 makes it unnecessary

3 Protecting Usersrsquo Legal Rights From Anti-Circumvention LawNo covered work shall be deemed part of an effective technological measure underany applicable law fulfilling obligations under article 11 of the WIPO copyright treatyadopted on 20 December 1996 or similar laws prohibiting or restricting circumventionof such measuresWhen you convey a covered work you waive any legal power to forbid circumvention oftechnological measures to the extent such circumvention is effected by exercising rightsunder this License with respect to the covered work and you disclaim any intentionto limit operation or modification of the work as a means of enforcing against theworkrsquos users your or third partiesrsquo legal rights to forbid circumvention of technologicalmeasures

4 Conveying Verbatim CopiesYou may convey verbatim copies of the Programrsquos source code as you receive it in anymedium provided that you conspicuously and appropriately publish on each copy an

Licenses 107

appropriate copyright notice keep intact all notices stating that this License and anynon-permissive terms added in accord with section 7 apply to the code keep intact allnotices of the absence of any warranty and give all recipients a copy of this Licensealong with the ProgramYou may charge any price or no price for each copy that you convey and you may offersupport or warranty protection for a fee

5 Conveying Modified Source VersionsYou may convey a work based on the Program or the modifications to produce it fromthe Program in the form of source code under the terms of section 4 provided thatyou also meet all of these conditionsa The work must carry prominent notices stating that you modified it and giving a

relevant dateb The work must carry prominent notices stating that it is released under this Li-

cense and any conditions added under section 7 This requirement modifies therequirement in section 4 to ldquokeep intact all noticesrdquo

c You must license the entire work as a whole under this License to anyone whocomes into possession of a copy This License will therefore apply along with anyapplicable section 7 additional terms to the whole of the work and all its partsregardless of how they are packaged This License gives no permission to licensethe work in any other way but it does not invalidate such permission if you haveseparately received it

d If the work has interactive user interfaces each must display Appropriate LegalNotices however if the Program has interactive interfaces that do not displayAppropriate Legal Notices your work need not make them do so

A compilation of a covered work with other separate and independent works whichare not by their nature extensions of the covered work and which are not combinedwith it such as to form a larger program in or on a volume of a storage or distributionmedium is called an ldquoaggregaterdquo if the compilation and its resulting copyright arenot used to limit the access or legal rights of the compilationrsquos users beyond what theindividual works permit Inclusion of a covered work in an aggregate does not causethis License to apply to the other parts of the aggregate

6 Conveying Non-Source FormsYou may convey a covered work in object code form under the terms of sections 4 and5 provided that you also convey the machine-readable Corresponding Source underthe terms of this License in one of these waysa Convey the object code in or embodied in a physical product (including a phys-

ical distribution medium) accompanied by the Corresponding Source fixed on adurable physical medium customarily used for software interchange

b Convey the object code in or embodied in a physical product (including a physi-cal distribution medium) accompanied by a written offer valid for at least threeyears and valid for as long as you offer spare parts or customer support for thatproduct model to give anyone who possesses the object code either (1) a copy ofthe Corresponding Source for all the software in the product that is covered by thisLicense on a durable physical medium customarily used for software interchange

108 OpenSS7 SS7 Stack

for a price no more than your reasonable cost of physically performing this con-veying of source or (2) access to copy the Corresponding Source from a networkserver at no charge

c Convey individual copies of the object code with a copy of the written offer toprovide the Corresponding Source This alternative is allowed only occasionallyand noncommercially and only if you received the object code with such an offerin accord with subsection 6b

d Convey the object code by offering access from a designated place (gratis or fora charge) and offer equivalent access to the Corresponding Source in the sameway through the same place at no further charge You need not require recipientsto copy the Corresponding Source along with the object code If the place tocopy the object code is a network server the Corresponding Source may be ona different server (operated by you or a third party) that supports equivalentcopying facilities provided you maintain clear directions next to the object codesaying where to find the Corresponding Source Regardless of what server hoststhe Corresponding Source you remain obligated to ensure that it is available foras long as needed to satisfy these requirements

e Convey the object code using peer-to-peer transmission provided you inform otherpeers where the object code and Corresponding Source of the work are being offeredto the general public at no charge under subsection 6d

A separable portion of the object code whose source code is excluded from the Cor-responding Source as a System Library need not be included in conveying the objectcode workA ldquoUser Productrdquo is either (1) a ldquoconsumer productrdquo which means any tangible per-sonal property which is normally used for personal family or household purposes or(2) anything designed or sold for incorporation into a dwelling In determining whethera product is a consumer product doubtful cases shall be resolved in favor of coverageFor a particular product received by a particular user ldquonormally usedrdquo refers to atypical or common use of that class of product regardless of the status of the par-ticular user or of the way in which the particular user actually uses or expects or isexpected to use the product A product is a consumer product regardless of whetherthe product has substantial commercial industrial or non-consumer uses unless suchuses represent the only significant mode of use of the productldquoInstallation Informationrdquo for a User Product means any methods procedures autho-rization keys or other information required to install and execute modified versions of acovered work in that User Product from a modified version of its Corresponding SourceThe information must suffice to ensure that the continued functioning of the modifiedobject code is in no case prevented or interfered with solely because modification hasbeen madeIf you convey an object code work under this section in or with or specifically foruse in a User Product and the conveying occurs as part of a transaction in whichthe right of possession and use of the User Product is transferred to the recipient inperpetuity or for a fixed term (regardless of how the transaction is characterized)the Corresponding Source conveyed under this section must be accompanied by theInstallation Information But this requirement does not apply if neither you nor any

Licenses 109

third party retains the ability to install modified object code on the User Product (forexample the work has been installed in ROM)The requirement to provide Installation Information does not include a requirementto continue to provide support service warranty or updates for a work that has beenmodified or installed by the recipient or for the User Product in which it has beenmodified or installed Access to a network may be denied when the modification itselfmaterially and adversely affects the operation of the network or violates the rules andprotocols for communication across the networkCorresponding Source conveyed and Installation Information provided in accord withthis section must be in a format that is publicly documented (and with an implementa-tion available to the public in source code form) and must require no special passwordor key for unpacking reading or copying

7 Additional TermsldquoAdditional permissionsrdquo are terms that supplement the terms of this License by mak-ing exceptions from one or more of its conditions Additional permissions that areapplicable to the entire Program shall be treated as though they were included in thisLicense to the extent that they are valid under applicable law If additional permis-sions apply only to part of the Program that part may be used separately under thosepermissions but the entire Program remains governed by this License without regardto the additional permissionsWhen you convey a copy of a covered work you may at your option remove anyadditional permissions from that copy or from any part of it (Additional permissionsmay be written to require their own removal in certain cases when you modify thework) You may place additional permissions on material added by you to a coveredwork for which you have or can give appropriate copyright permissionNotwithstanding any other provision of this License for material you add to a coveredwork you may (if authorized by the copyright holders of that material) supplementthe terms of this License with termsa Disclaiming warranty or limiting liability differently from the terms of sections 15

and 16 of this License orb Requiring preservation of specified reasonable legal notices or author attributions

in that material or in the Appropriate Legal Notices displayed by works containingit or

c Prohibiting misrepresentation of the origin of that material or requiring that mod-ified versions of such material be marked in reasonable ways as different from theoriginal version or

d Limiting the use for publicity purposes of names of licensors or authors of thematerial or

e Declining to grant rights under trademark law for use of some trade names trade-marks or service marks or

f Requiring indemnification of licensors and authors of that material by anyone whoconveys the material (or modified versions of it) with contractual assumptionsof liability to the recipient for any liability that these contractual assumptionsdirectly impose on those licensors and authors

110 OpenSS7 SS7 Stack

All other non-permissive additional terms are considered ldquofurther restrictionsrdquo withinthe meaning of section 10 If the Program as you received it or any part of it con-tains a notice stating that it is governed by this License along with a term that is afurther restriction you may remove that term If a license document contains a furtherrestriction but permits relicensing or conveying under this License you may add to acovered work material governed by the terms of that license document provided thatthe further restriction does not survive such relicensing or conveyingIf you add terms to a covered work in accord with this section you must place in therelevant source files a statement of the additional terms that apply to those files or anotice indicating where to find the applicable termsAdditional terms permissive or non-permissive may be stated in the form of a sep-arately written license or stated as exceptions the above requirements apply eitherway

8 TerminationYou may not propagate or modify a covered work except as expressly provided un-der this License Any attempt otherwise to propagate or modify it is void and willautomatically terminate your rights under this License (including any patent licensesgranted under the third paragraph of section 11)However if you cease all violation of this License then your license from a particularcopyright holder is reinstated (a) provisionally unless and until the copyright holderexplicitly and finally terminates your license and (b) permanently if the copyrightholder fails to notify you of the violation by some reasonable means prior to 60 daysafter the cessationMoreover your license from a particular copyright holder is reinstated permanently ifthe copyright holder notifies you of the violation by some reasonable means this is thefirst time you have received notice of violation of this License (for any work) from thatcopyright holder and you cure the violation prior to 30 days after your receipt of thenoticeTermination of your rights under this section does not terminate the licenses of partieswho have received copies or rights from you under this License If your rights havebeen terminated and not permanently reinstated you do not qualify to receive newlicenses for the same material under section 10

9 Acceptance Not Required for Having CopiesYou are not required to accept this License in order to receive or run a copy of theProgram Ancillary propagation of a covered work occurring solely as a consequence ofusing peer-to-peer transmission to receive a copy likewise does not require acceptanceHowever nothing other than this License grants you permission to propagate or modifyany covered work These actions infringe copyright if you do not accept this LicenseTherefore by modifying or propagating a covered work you indicate your acceptanceof this License to do so

10 Automatic Licensing of Downstream RecipientsEach time you convey a covered work the recipient automatically receives a licensefrom the original licensors to run modify and propagate that work subject to thisLicense You are not responsible for enforcing compliance by third parties with thisLicense

Licenses 111

An ldquoentity transactionrdquo is a transaction transferring control of an organization orsubstantially all assets of one or subdividing an organization or merging organizationsIf propagation of a covered work results from an entity transaction each party to thattransaction who receives a copy of the work also receives whatever licenses to the workthe partyrsquos predecessor in interest had or could give under the previous paragraph plusa right to possession of the Corresponding Source of the work from the predecessor ininterest if the predecessor has it or can get it with reasonable effortsYou may not impose any further restrictions on the exercise of the rights granted oraffirmed under this License For example you may not impose a license fee royalty orother charge for exercise of rights granted under this License and you may not initiatelitigation (including a cross-claim or counterclaim in a lawsuit) alleging that any patentclaim is infringed by making using selling offering for sale or importing the Programor any portion of it

11 PatentsA ldquocontributorrdquo is a copyright holder who authorizes use under this License of theProgram or a work on which the Program is based The work thus licensed is calledthe contributorrsquos ldquocontributor versionrdquoA contributorrsquos ldquoessential patent claimsrdquo are all patent claims owned or controlled bythe contributor whether already acquired or hereafter acquired that would be infringedby some manner permitted by this License of making using or selling its contributorversion but do not include claims that would be infringed only as a consequence offurther modification of the contributor version For purposes of this definition ldquocon-trolrdquo includes the right to grant patent sublicenses in a manner consistent with therequirements of this LicenseEach contributor grants you a non-exclusive worldwide royalty-free patent licenseunder the contributorrsquos essential patent claims to make use sell offer for sale importand otherwise run modify and propagate the contents of its contributor versionIn the following three paragraphs a ldquopatent licenserdquo is any express agreement or com-mitment however denominated not to enforce a patent (such as an express permissionto practice a patent or covenant not to sue for patent infringement) To ldquograntrdquo sucha patent license to a party means to make such an agreement or commitment not toenforce a patent against the partyIf you convey a covered work knowingly relying on a patent license and the Corre-sponding Source of the work is not available for anyone to copy free of charge and underthe terms of this License through a publicly available network server or other readilyaccessible means then you must either (1) cause the Corresponding Source to be soavailable or (2) arrange to deprive yourself of the benefit of the patent license for thisparticular work or (3) arrange in a manner consistent with the requirements of thisLicense to extend the patent license to downstream recipients ldquoKnowingly relyingrdquomeans you have actual knowledge that but for the patent license your conveying thecovered work in a country or your recipientrsquos use of the covered work in a countrywould infringe one or more identifiable patents in that country that you have reasonto believe are validIf pursuant to or in connection with a single transaction or arrangement you conveyor propagate by procuring conveyance of a covered work and grant a patent license

112 OpenSS7 SS7 Stack

to some of the parties receiving the covered work authorizing them to use propagatemodify or convey a specific copy of the covered work then the patent license you grantis automatically extended to all recipients of the covered work and works based on it

A patent license is ldquodiscriminatoryrdquo if it does not include within the scope of its cover-age prohibits the exercise of or is conditioned on the non-exercise of one or more of therights that are specifically granted under this License You may not convey a coveredwork if you are a party to an arrangement with a third party that is in the business ofdistributing software under which you make payment to the third party based on theextent of your activity of conveying the work and under which the third party grantsto any of the parties who would receive the covered work from you a discriminatorypatent license (a) in connection with copies of the covered work conveyed by you (orcopies made from those copies) or (b) primarily for and in connection with specificproducts or compilations that contain the covered work unless you entered into thatarrangement or that patent license was granted prior to 28 March 2007

Nothing in this License shall be construed as excluding or limiting any implied license orother defenses to infringement that may otherwise be available to you under applicablepatent law

12 No Surrender of Othersrsquo Freedom

If conditions are imposed on you (whether by court order agreement or otherwise) thatcontradict the conditions of this License they do not excuse you from the conditionsof this License If you cannot convey a covered work so as to satisfy simultaneouslyyour obligations under this License and any other pertinent obligations then as aconsequence you may not convey it at all For example if you agree to terms thatobligate you to collect a royalty for further conveying from those to whom you conveythe Program the only way you could satisfy both those terms and this License wouldbe to refrain entirely from conveying the Program

13 Remote Network Interaction Use with the GNU General Public License

Notwithstanding any other provision of this License if you modify the Program yourmodified version must prominently offer all users interacting with it remotely througha network (if your version supports such interaction) an opportunity to receive theCorresponding Source of your version by providing access to the Corresponding Sourcefrom a network server at no charge through some standard or customary means offacilitating copying of software This Corresponding Source shall include the Corre-sponding Source for any work covered by version 3 of the GNU General Public Licensethat is incorporated pursuant to the following paragraph

Notwithstanding any other provision of this License you have permission to link orcombine any covered work with a work licensed under version 3 of the GNU GeneralPublic License into a single combined work and to convey the resulting work Theterms of this License will continue to apply to the part which is the covered work butthe work with which it is combined will remain governed by version 3 of the GNUGeneral Public License

14 Revised Versions of this License

The Free Software Foundation may publish revised andor new versions of the GNUAffero General Public License from time to time Such new versions will be similar

Licenses 113

in spirit to the present version but may differ in detail to address new problems orconcernsEach version is given a distinguishing version number If the Program specifies thata certain numbered version of the GNU Affero General Public License ldquoor any laterversionrdquo applies to it you have the option of following the terms and conditions ei-ther of that numbered version or of any later version published by the Free SoftwareFoundation If the Program does not specify a version number of the GNU Affero Gen-eral Public License you may choose any version ever published by the Free SoftwareFoundationIf the Program specifies that a proxy can decide which future versions of the GNU AfferoGeneral Public License can be used that proxyrsquos public statement of acceptance of aversion permanently authorizes you to choose that version for the ProgramLater license versions may give you additional or different permissions However noadditional obligations are imposed on any author or copyright holder as a result of yourchoosing to follow a later version

15 Disclaimer of WarrantyTHERE IS NO WARRANTY FOR THE PROGRAM TO THE EXTENT PER-MITTED BY APPLICABLE LAW EXCEPT WHEN OTHERWISE STATED INWRITING THE COPYRIGHT HOLDERS ANDOR OTHER PARTIES PROVIDETHE PROGRAM ldquoAS ISrdquo WITHOUT WARRANTY OF ANY KIND EITHER EX-PRESSED OR IMPLIED INCLUDING BUT NOT LIMITED TO THE IMPLIEDWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULARPURPOSE THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCEOF THE PROGRAM IS WITH YOU SHOULD THE PROGRAM PROVE DEFEC-TIVE YOU ASSUME THE COST OF ALL NECESSARY SERVICING REPAIR ORCORRECTION

16 Limitation of LiabilityIN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO INWRITING WILL ANY COPYRIGHT HOLDER OR ANY OTHER PARTY WHOMODIFIES ANDOR CONVEYS THE PROGRAM AS PERMITTED ABOVE BELIABLE TO YOU FOR DAMAGES INCLUDING ANY GENERAL SPECIAL IN-CIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE ORINABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TOLOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUS-TAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAMTO OPERATE WITH ANY OTHER PROGRAMS) EVEN IF SUCH HOLDER OROTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAM-AGES

17 Interpretation of Sections 15 and 16If the disclaimer of warranty and limitation of liability provided above cannot be givenlocal legal effect according to their terms reviewing courts shall apply local law thatmost closely approximates an absolute waiver of all civil liability in connection withthe Program unless a warranty or assumption of liability accompanies a copy of theProgram in return for a fee

END OF TERMS AND CONDITIONS

114 OpenSS7 SS7 Stack

How to Apply These Terms to Your New Programs

If you develop a new program and you want it to be of the greatest possible use to the publicthe best way to achieve this is to make it free software which everyone can redistribute andchange under these termsTo do so attach the following notices to the program It is safest to attach them to thestart of each source file to most effectively state the exclusion of warranty and each fileshould have at least the ldquocopyrightrdquo line and a pointer to where the full notice is found

one line to give the programrsquos name and a brief idea of what it does

Copyright (C) year name of author

This program is free software you can redistribute it andor modify

it under the terms of the GNU Affero General Public License as published by

the Free Software Foundation either version 3 of the License or (at

your option) any later version

This program is distributed in the hope that it will be useful but

WITHOUT ANY WARRANTY without even the implied warranty of

MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE See the GNU

Affero General Public License for more details

You should have received a copy of the GNU Affero General Public License

along with this program If not see httpwwwgnuorglicenses

Also add information on how to contact you by electronic and paper mailIf your software can interact with users remotely through a network you should also makesure that it provides a way for users to get its source For example if your program is aweb application its interface could display a ldquoSourcerdquo link that leads users to an archive ofthe code There are many ways you could offer source and different solutions will be betterfor different programs see section 13 for the specific requirementsYou should also get your employer (if you work as a programmer) or school if any to signa ldquocopyright disclaimerrdquo for the program if necessary For more information on this andhow to apply and follow the GNU AGPL see httpwwwgnuorglicenses

Licenses 115

GNU General Public License

GNU GENERAL PUBLIC LICENSEVersion 3 29 June 2007

Copyright ccopy 2007 Free Software Foundation Inc httpfsforg

Everyone is permitted to copy and distribute verbatim copies of thislicense document but changing it is not allowed

Preamble

The GNU General Public License is a free copyleft license for software and other kinds ofworks

The licenses for most software and other practical works are designed to take away yourfreedom to share and change the works By contrast the GNU General Public License isintended to guarantee your freedom to share and change all versions of a programndashto makesure it remains free software for all its users We the Free Software Foundation use theGNU General Public License for most of our software it applies also to any other workreleased this way by its authors You can apply it to your programs too

When we speak of free software we are referring to freedom not price Our General PublicLicenses are designed to make sure that you have the freedom to distribute copies of freesoftware (and charge for them if you wish) that you receive source code or can get it if youwant it that you can change the software or use pieces of it in new free programs and thatyou know you can do these things

To protect your rights we need to prevent others from denying you these rights or askingyou to surrender the rights Therefore you have certain responsibilities if you distributecopies of the software or if you modify it responsibilities to respect the freedom of others

For example if you distribute copies of such a program whether gratis or for a fee youmust pass on to the recipients the same freedoms that you received You must make surethat they too receive or can get the source code And you must show them these terms sothey know their rights

Developers that use the GNU GPL protect your rights with two steps (1) assert copyrighton the software and (2) offer you this License giving you legal permission to copy distributeandor modify it

For the developersrsquo and authorsrsquo protection the GPL clearly explains that there is nowarranty for this free software For both usersrsquo and authorsrsquo sake the GPL requires thatmodified versions be marked as changed so that their problems will not be attributederroneously to authors of previous versions

Some devices are designed to deny users access to install or run modified versions of thesoftware inside them although the manufacturer can do so This is fundamentally incom-patible with the aim of protecting usersrsquo freedom to change the software The systematicpattern of such abuse occurs in the area of products for individuals to use which is pre-cisely where it is most unacceptable Therefore we have designed this version of the GPLto prohibit the practice for those products If such problems arise substantially in other

116 OpenSS7 SS7 Stack

domains we stand ready to extend this provision to those domains in future versions of theGPL as needed to protect the freedom of users

Finally every program is threatened constantly by software patents States should not allowpatents to restrict development and use of software on general-purpose computers but inthose that do we wish to avoid the special danger that patents applied to a free programcould make it effectively proprietary To prevent this the GPL assures that patents cannotbe used to render the program non-free

The precise terms and conditions for copying distribution and modification follow

Terms and Conditions

0 DefinitionsldquoThis Licenserdquo refers to version 3 of the GNU General Public LicenseldquoCopyrightrdquo also means copyright-like laws that apply to other kinds of works such assemiconductor masksldquoThe Programrdquo refers to any copyrightable work licensed under this License Eachlicensee is addressed as ldquoyourdquo ldquoLicenseesrdquo and ldquorecipientsrdquo may be individuals ororganizationsTo ldquomodifyrdquo a work means to copy from or adapt all or part of the work in a fashionrequiring copyright permission other than the making of an exact copy The resultingwork is called a ldquomodified versionrdquo of the earlier work or a work ldquobased onrdquo the earlierworkA ldquocovered workrdquo means either the unmodified Program or a work based on the Pro-gramTo ldquopropagaterdquo a work means to do anything with it that without permission wouldmake you directly or secondarily liable for infringement under applicable copyright lawexcept executing it on a computer or modifying a private copy Propagation includescopying distribution (with or without modification) making available to the publicand in some countries other activities as wellTo ldquoconveyrdquo a work means any kind of propagation that enables other parties to makeor receive copies Mere interaction with a user through a computer network with notransfer of a copy is not conveyingAn interactive user interface displays ldquoAppropriate Legal Noticesrdquo to the extent that itincludes a convenient and prominently visible feature that (1) displays an appropriatecopyright notice and (2) tells the user that there is no warranty for the work (exceptto the extent that warranties are provided) that licensees may convey the work underthis License and how to view a copy of this License If the interface presents a listof user commands or options such as a menu a prominent item in the list meets thiscriterion

1 Source CodeThe ldquosource coderdquo for a work means the preferred form of the work for making modi-fications to it ldquoObject coderdquo means any non-source form of a workA ldquoStandard Interfacerdquo means an interface that either is an official standard definedby a recognized standards body or in the case of interfaces specified for a particular

Licenses 117

programming language one that is widely used among developers working in thatlanguage

The ldquoSystem Librariesrdquo of an executable work include anything other than the work asa whole that (a) is included in the normal form of packaging a Major Component butwhich is not part of that Major Component and (b) serves only to enable use of thework with that Major Component or to implement a Standard Interface for which animplementation is available to the public in source code form A ldquoMajor Componentrdquoin this context means a major essential component (kernel window system and soon) of the specific operating system (if any) on which the executable work runs or acompiler used to produce the work or an object code interpreter used to run it

The ldquoCorresponding Sourcerdquo for a work in object code form means all the source codeneeded to generate install and (for an executable work) run the object code and tomodify the work including scripts to control those activities However it does notinclude the workrsquos System Libraries or general-purpose tools or generally availablefree programs which are used unmodified in performing those activities but which arenot part of the work For example Corresponding Source includes interface definitionfiles associated with source files for the work and the source code for shared librariesand dynamically linked subprograms that the work is specifically designed to requiresuch as by intimate data communication or control flow between those subprogramsand other parts of the work

The Corresponding Source need not include anything that users can regenerate auto-matically from other parts of the Corresponding Source

The Corresponding Source for a work in source code form is that same work

2 Basic Permissions

All rights granted under this License are granted for the term of copyright on theProgram and are irrevocable provided the stated conditions are met This License ex-plicitly affirms your unlimited permission to run the unmodified Program The outputfrom running a covered work is covered by this License only if the output given itscontent constitutes a covered work This License acknowledges your rights of fair useor other equivalent as provided by copyright law

You may make run and propagate covered works that you do not convey withoutconditions so long as your license otherwise remains in force You may convey coveredworks to others for the sole purpose of having them make modifications exclusivelyfor you or provide you with facilities for running those works provided that youcomply with the terms of this License in conveying all material for which you do notcontrol copyright Those thus making or running the covered works for you must doso exclusively on your behalf under your direction and control on terms that prohibitthem from making any copies of your copyrighted material outside their relationshipwith you

Conveying under any other circumstances is permitted solely under the conditionsstated below Sublicensing is not allowed section 10 makes it unnecessary

3 Protecting Usersrsquo Legal Rights From Anti-Circumvention Law

No covered work shall be deemed part of an effective technological measure underany applicable law fulfilling obligations under article 11 of the WIPO copyright treaty

118 OpenSS7 SS7 Stack

adopted on 20 December 1996 or similar laws prohibiting or restricting circumventionof such measures

When you convey a covered work you waive any legal power to forbid circumvention oftechnological measures to the extent such circumvention is effected by exercising rightsunder this License with respect to the covered work and you disclaim any intentionto limit operation or modification of the work as a means of enforcing against theworkrsquos users your or third partiesrsquo legal rights to forbid circumvention of technologicalmeasures

4 Conveying Verbatim Copies

You may convey verbatim copies of the Programrsquos source code as you receive it in anymedium provided that you conspicuously and appropriately publish on each copy anappropriate copyright notice keep intact all notices stating that this License and anynon-permissive terms added in accord with section 7 apply to the code keep intact allnotices of the absence of any warranty and give all recipients a copy of this Licensealong with the Program

You may charge any price or no price for each copy that you convey and you may offersupport or warranty protection for a fee

5 Conveying Modified Source Versions

You may convey a work based on the Program or the modifications to produce it fromthe Program in the form of source code under the terms of section 4 provided thatyou also meet all of these conditions

a The work must carry prominent notices stating that you modified it and giving arelevant date

b The work must carry prominent notices stating that it is released under this Li-cense and any conditions added under section 7 This requirement modifies therequirement in section 4 to ldquokeep intact all noticesrdquo

c You must license the entire work as a whole under this License to anyone whocomes into possession of a copy This License will therefore apply along with anyapplicable section 7 additional terms to the whole of the work and all its partsregardless of how they are packaged This License gives no permission to licensethe work in any other way but it does not invalidate such permission if you haveseparately received it

d If the work has interactive user interfaces each must display Appropriate LegalNotices however if the Program has interactive interfaces that do not displayAppropriate Legal Notices your work need not make them do so

A compilation of a covered work with other separate and independent works whichare not by their nature extensions of the covered work and which are not combinedwith it such as to form a larger program in or on a volume of a storage or distributionmedium is called an ldquoaggregaterdquo if the compilation and its resulting copyright arenot used to limit the access or legal rights of the compilationrsquos users beyond what theindividual works permit Inclusion of a covered work in an aggregate does not causethis License to apply to the other parts of the aggregate

6 Conveying Non-Source Forms

Licenses 119

You may convey a covered work in object code form under the terms of sections 4 and5 provided that you also convey the machine-readable Corresponding Source underthe terms of this License in one of these waysa Convey the object code in or embodied in a physical product (including a phys-

ical distribution medium) accompanied by the Corresponding Source fixed on adurable physical medium customarily used for software interchange

b Convey the object code in or embodied in a physical product (including a physi-cal distribution medium) accompanied by a written offer valid for at least threeyears and valid for as long as you offer spare parts or customer support for thatproduct model to give anyone who possesses the object code either (1) a copy ofthe Corresponding Source for all the software in the product that is covered by thisLicense on a durable physical medium customarily used for software interchangefor a price no more than your reasonable cost of physically performing this con-veying of source or (2) access to copy the Corresponding Source from a networkserver at no charge

c Convey individual copies of the object code with a copy of the written offer toprovide the Corresponding Source This alternative is allowed only occasionallyand noncommercially and only if you received the object code with such an offerin accord with subsection 6b

d Convey the object code by offering access from a designated place (gratis or fora charge) and offer equivalent access to the Corresponding Source in the sameway through the same place at no further charge You need not require recipientsto copy the Corresponding Source along with the object code If the place tocopy the object code is a network server the Corresponding Source may be ona different server (operated by you or a third party) that supports equivalentcopying facilities provided you maintain clear directions next to the object codesaying where to find the Corresponding Source Regardless of what server hoststhe Corresponding Source you remain obligated to ensure that it is available foras long as needed to satisfy these requirements

e Convey the object code using peer-to-peer transmission provided you inform otherpeers where the object code and Corresponding Source of the work are being offeredto the general public at no charge under subsection 6d

A separable portion of the object code whose source code is excluded from the Cor-responding Source as a System Library need not be included in conveying the objectcode workA ldquoUser Productrdquo is either (1) a ldquoconsumer productrdquo which means any tangible per-sonal property which is normally used for personal family or household purposes or(2) anything designed or sold for incorporation into a dwelling In determining whethera product is a consumer product doubtful cases shall be resolved in favor of coverageFor a particular product received by a particular user ldquonormally usedrdquo refers to atypical or common use of that class of product regardless of the status of the par-ticular user or of the way in which the particular user actually uses or expects or isexpected to use the product A product is a consumer product regardless of whetherthe product has substantial commercial industrial or non-consumer uses unless suchuses represent the only significant mode of use of the product

120 OpenSS7 SS7 Stack

ldquoInstallation Informationrdquo for a User Product means any methods procedures autho-rization keys or other information required to install and execute modified versions of acovered work in that User Product from a modified version of its Corresponding SourceThe information must suffice to ensure that the continued functioning of the modifiedobject code is in no case prevented or interfered with solely because modification hasbeen madeIf you convey an object code work under this section in or with or specifically foruse in a User Product and the conveying occurs as part of a transaction in whichthe right of possession and use of the User Product is transferred to the recipient inperpetuity or for a fixed term (regardless of how the transaction is characterized)the Corresponding Source conveyed under this section must be accompanied by theInstallation Information But this requirement does not apply if neither you nor anythird party retains the ability to install modified object code on the User Product (forexample the work has been installed in ROM)The requirement to provide Installation Information does not include a requirementto continue to provide support service warranty or updates for a work that has beenmodified or installed by the recipient or for the User Product in which it has beenmodified or installed Access to a network may be denied when the modification itselfmaterially and adversely affects the operation of the network or violates the rules andprotocols for communication across the networkCorresponding Source conveyed and Installation Information provided in accord withthis section must be in a format that is publicly documented (and with an implementa-tion available to the public in source code form) and must require no special passwordor key for unpacking reading or copying

7 Additional TermsldquoAdditional permissionsrdquo are terms that supplement the terms of this License by mak-ing exceptions from one or more of its conditions Additional permissions that areapplicable to the entire Program shall be treated as though they were included in thisLicense to the extent that they are valid under applicable law If additional permis-sions apply only to part of the Program that part may be used separately under thosepermissions but the entire Program remains governed by this License without regardto the additional permissionsWhen you convey a copy of a covered work you may at your option remove anyadditional permissions from that copy or from any part of it (Additional permissionsmay be written to require their own removal in certain cases when you modify thework) You may place additional permissions on material added by you to a coveredwork for which you have or can give appropriate copyright permissionNotwithstanding any other provision of this License for material you add to a coveredwork you may (if authorized by the copyright holders of that material) supplementthe terms of this License with termsa Disclaiming warranty or limiting liability differently from the terms of sections 15

and 16 of this License orb Requiring preservation of specified reasonable legal notices or author attributions

in that material or in the Appropriate Legal Notices displayed by works containingit or

Licenses 121

c Prohibiting misrepresentation of the origin of that material or requiring that mod-ified versions of such material be marked in reasonable ways as different from theoriginal version or

d Limiting the use for publicity purposes of names of licensors or authors of thematerial or

e Declining to grant rights under trademark law for use of some trade names trade-marks or service marks or

f Requiring indemnification of licensors and authors of that material by anyone whoconveys the material (or modified versions of it) with contractual assumptionsof liability to the recipient for any liability that these contractual assumptionsdirectly impose on those licensors and authors

All other non-permissive additional terms are considered ldquofurther restrictionsrdquo withinthe meaning of section 10 If the Program as you received it or any part of it con-tains a notice stating that it is governed by this License along with a term that is afurther restriction you may remove that term If a license document contains a furtherrestriction but permits relicensing or conveying under this License you may add to acovered work material governed by the terms of that license document provided thatthe further restriction does not survive such relicensing or conveying

If you add terms to a covered work in accord with this section you must place in therelevant source files a statement of the additional terms that apply to those files or anotice indicating where to find the applicable terms

Additional terms permissive or non-permissive may be stated in the form of a sep-arately written license or stated as exceptions the above requirements apply eitherway

8 Termination

You may not propagate or modify a covered work except as expressly provided un-der this License Any attempt otherwise to propagate or modify it is void and willautomatically terminate your rights under this License (including any patent licensesgranted under the third paragraph of section 11)

However if you cease all violation of this License then your license from a particularcopyright holder is reinstated (a) provisionally unless and until the copyright holderexplicitly and finally terminates your license and (b) permanently if the copyrightholder fails to notify you of the violation by some reasonable means prior to 60 daysafter the cessation

Moreover your license from a particular copyright holder is reinstated permanently ifthe copyright holder notifies you of the violation by some reasonable means this is thefirst time you have received notice of violation of this License (for any work) from thatcopyright holder and you cure the violation prior to 30 days after your receipt of thenotice

Termination of your rights under this section does not terminate the licenses of partieswho have received copies or rights from you under this License If your rights havebeen terminated and not permanently reinstated you do not qualify to receive newlicenses for the same material under section 10

122 OpenSS7 SS7 Stack

9 Acceptance Not Required for Having CopiesYou are not required to accept this License in order to receive or run a copy of theProgram Ancillary propagation of a covered work occurring solely as a consequence ofusing peer-to-peer transmission to receive a copy likewise does not require acceptanceHowever nothing other than this License grants you permission to propagate or modifyany covered work These actions infringe copyright if you do not accept this LicenseTherefore by modifying or propagating a covered work you indicate your acceptanceof this License to do so

10 Automatic Licensing of Downstream RecipientsEach time you convey a covered work the recipient automatically receives a licensefrom the original licensors to run modify and propagate that work subject to thisLicense You are not responsible for enforcing compliance by third parties with thisLicenseAn ldquoentity transactionrdquo is a transaction transferring control of an organization orsubstantially all assets of one or subdividing an organization or merging organizationsIf propagation of a covered work results from an entity transaction each party to thattransaction who receives a copy of the work also receives whatever licenses to the workthe partyrsquos predecessor in interest had or could give under the previous paragraph plusa right to possession of the Corresponding Source of the work from the predecessor ininterest if the predecessor has it or can get it with reasonable effortsYou may not impose any further restrictions on the exercise of the rights granted oraffirmed under this License For example you may not impose a license fee royalty orother charge for exercise of rights granted under this License and you may not initiatelitigation (including a cross-claim or counterclaim in a lawsuit) alleging that any patentclaim is infringed by making using selling offering for sale or importing the Programor any portion of it

11 PatentsA ldquocontributorrdquo is a copyright holder who authorizes use under this License of theProgram or a work on which the Program is based The work thus licensed is calledthe contributorrsquos ldquocontributor versionrdquoA contributorrsquos ldquoessential patent claimsrdquo are all patent claims owned or controlled bythe contributor whether already acquired or hereafter acquired that would be infringedby some manner permitted by this License of making using or selling its contributorversion but do not include claims that would be infringed only as a consequence offurther modification of the contributor version For purposes of this definition ldquocon-trolrdquo includes the right to grant patent sublicenses in a manner consistent with therequirements of this LicenseEach contributor grants you a non-exclusive worldwide royalty-free patent licenseunder the contributorrsquos essential patent claims to make use sell offer for sale importand otherwise run modify and propagate the contents of its contributor versionIn the following three paragraphs a ldquopatent licenserdquo is any express agreement or com-mitment however denominated not to enforce a patent (such as an express permissionto practice a patent or covenant not to sue for patent infringement) To ldquograntrdquo sucha patent license to a party means to make such an agreement or commitment not toenforce a patent against the party

Licenses 123

If you convey a covered work knowingly relying on a patent license and the Corre-sponding Source of the work is not available for anyone to copy free of charge and underthe terms of this License through a publicly available network server or other readilyaccessible means then you must either (1) cause the Corresponding Source to be soavailable or (2) arrange to deprive yourself of the benefit of the patent license for thisparticular work or (3) arrange in a manner consistent with the requirements of thisLicense to extend the patent license to downstream recipients ldquoKnowingly relyingrdquomeans you have actual knowledge that but for the patent license your conveying thecovered work in a country or your recipientrsquos use of the covered work in a countrywould infringe one or more identifiable patents in that country that you have reasonto believe are valid

If pursuant to or in connection with a single transaction or arrangement you conveyor propagate by procuring conveyance of a covered work and grant a patent licenseto some of the parties receiving the covered work authorizing them to use propagatemodify or convey a specific copy of the covered work then the patent license you grantis automatically extended to all recipients of the covered work and works based on it

A patent license is ldquodiscriminatoryrdquo if it does not include within the scope of its cover-age prohibits the exercise of or is conditioned on the non-exercise of one or more of therights that are specifically granted under this License You may not convey a coveredwork if you are a party to an arrangement with a third party that is in the business ofdistributing software under which you make payment to the third party based on theextent of your activity of conveying the work and under which the third party grantsto any of the parties who would receive the covered work from you a discriminatorypatent license (a) in connection with copies of the covered work conveyed by you (orcopies made from those copies) or (b) primarily for and in connection with specificproducts or compilations that contain the covered work unless you entered into thatarrangement or that patent license was granted prior to 28 March 2007

Nothing in this License shall be construed as excluding or limiting any implied license orother defenses to infringement that may otherwise be available to you under applicablepatent law

12 No Surrender of Othersrsquo Freedom

If conditions are imposed on you (whether by court order agreement or otherwise) thatcontradict the conditions of this License they do not excuse you from the conditionsof this License If you cannot convey a covered work so as to satisfy simultaneouslyyour obligations under this License and any other pertinent obligations then as aconsequence you may not convey it at all For example if you agree to terms thatobligate you to collect a royalty for further conveying from those to whom you conveythe Program the only way you could satisfy both those terms and this License wouldbe to refrain entirely from conveying the Program

13 Use with the GNU Affero General Public License

Notwithstanding any other provision of this License you have permission to link orcombine any covered work with a work licensed under version 3 of the GNU AfferoGeneral Public License into a single combined work and to convey the resulting workThe terms of this License will continue to apply to the part which is the covered work

124 OpenSS7 SS7 Stack

but the special requirements of the GNU Affero General Public License section 13concerning interaction through a network will apply to the combination as such

14 Revised Versions of this LicenseThe Free Software Foundation may publish revised andor new versions of the GNUGeneral Public License from time to time Such new versions will be similar in spiritto the present version but may differ in detail to address new problems or concernsEach version is given a distinguishing version number If the Program specifies thata certain numbered version of the GNU General Public License ldquoor any later versionrdquoapplies to it you have the option of following the terms and conditions either of thatnumbered version or of any later version published by the Free Software FoundationIf the Program does not specify a version number of the GNU General Public Licenseyou may choose any version ever published by the Free Software FoundationIf the Program specifies that a proxy can decide which future versions of the GNUGeneral Public License can be used that proxyrsquos public statement of acceptance of aversion permanently authorizes you to choose that version for the ProgramLater license versions may give you additional or different permissions However noadditional obligations are imposed on any author or copyright holder as a result of yourchoosing to follow a later version

15 Disclaimer of WarrantyTHERE IS NO WARRANTY FOR THE PROGRAM TO THE EXTENT PER-MITTED BY APPLICABLE LAW EXCEPT WHEN OTHERWISE STATED INWRITING THE COPYRIGHT HOLDERS ANDOR OTHER PARTIES PROVIDETHE PROGRAM ldquoAS ISrdquo WITHOUT WARRANTY OF ANY KIND EITHER EX-PRESSED OR IMPLIED INCLUDING BUT NOT LIMITED TO THE IMPLIEDWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULARPURPOSE THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCEOF THE PROGRAM IS WITH YOU SHOULD THE PROGRAM PROVE DEFEC-TIVE YOU ASSUME THE COST OF ALL NECESSARY SERVICING REPAIR ORCORRECTION

16 Limitation of LiabilityIN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO INWRITING WILL ANY COPYRIGHT HOLDER OR ANY OTHER PARTY WHOMODIFIES ANDOR CONVEYS THE PROGRAM AS PERMITTED ABOVE BELIABLE TO YOU FOR DAMAGES INCLUDING ANY GENERAL SPECIAL IN-CIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE ORINABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TOLOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUS-TAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAMTO OPERATE WITH ANY OTHER PROGRAMS) EVEN IF SUCH HOLDER OROTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAM-AGES

17 Interpretation of Sections 15 and 16If the disclaimer of warranty and limitation of liability provided above cannot be givenlocal legal effect according to their terms reviewing courts shall apply local law thatmost closely approximates an absolute waiver of all civil liability in connection with

Licenses 125

the Program unless a warranty or assumption of liability accompanies a copy of theProgram in return for a fee

END OF TERMS AND CONDITIONS

126 OpenSS7 SS7 Stack

How to Apply These Terms to Your New Programs

If you develop a new program and you want it to be of the greatest possible use to the publicthe best way to achieve this is to make it free software which everyone can redistribute andchange under these termsTo do so attach the following notices to the program It is safest to attach them to thestart of each source file to most effectively state the exclusion of warranty and each fileshould have at least the ldquocopyrightrdquo line and a pointer to where the full notice is found

one line to give the programrsquos name and a brief idea of what it does

Copyright (C) year name of author

This program is free software you can redistribute it andor modify

it under the terms of the GNU General Public License as published by

the Free Software Foundation either version 3 of the License or (at

your option) any later version

This program is distributed in the hope that it will be useful but

WITHOUT ANY WARRANTY without even the implied warranty of

MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE See the GNU

General Public License for more details

You should have received a copy of the GNU General Public License

along with this program If not see httpwwwgnuorglicenses

Also add information on how to contact you by electronic and paper mailIf the program does terminal interaction make it output a short notice like this when itstarts in an interactive mode

program Copyright (C) year name of author

This program comes with ABSOLUTELY NO WARRANTY for details type lsquoshow wrsquo

This is free software and you are welcome to redistribute it

under certain conditions type lsquoshow crsquo for details

The hypothetical commands lsquoshow wrsquo and lsquoshow crsquo should show the appropriate parts of theGeneral Public License Of course your programrsquos commands might be different for a GUIinterface you would use an ldquoabout boxrdquoYou should also get your employer (if you work as a programmer) or school if any to signa ldquocopyright disclaimerrdquo for the program if necessary For more information on this andhow to apply and follow the GNU GPL see httpwwwgnuorglicensesThe GNU General Public License does not permit incorporating your program into propri-etary programs If your program is a subroutine library you may consider it more usefulto permit linking proprietary applications with the library If this is what you want to douse the GNU Lesser General Public License instead of this License But first please readhttpwwwgnuorgphilosophywhy-not-lgplhtml

Licenses 127

GNU Lesser General Public License

GNU LESSER GENERAL PUBLIC LICENSEVersion 3 29 June 2007

Copyright ccopy 2007 Free Software Foundation Inc httpfsforg

Everyone is permitted to copy and distribute verbatim copies of thislicense document but changing it is not allowed

Terms and Conditions

This version of the GNU Lesser General Public License incorporates the terms and con-ditions of version 3 of the GNU General Public License supplemented by the additionalpermissions listed below0 Additional Definitions

As used herein ldquothis Licenserdquo refers to version 3 of the GNU Lesser General PublicLicense and the ldquoGNU GPLrdquo refers to version 3 of the GNU General Public LicenseldquoThe Libraryrdquo refers to a covered work governed by this License other than an Appli-cation or a Combined Work as defined belowAn ldquoApplicationrdquo is any work that makes use of an interface provided by the Librarybut which is not otherwise based on the Library Defining a subclass of a class definedby the Library is deemed a mode of using an interface provided by the LibraryA ldquoCombined Workrdquo is a work produced by combining or linking an Application withthe Library The particular version of the Library with which the Combined Work wasmade is also called the ldquoLinked VersionrdquoThe ldquoMinimal Corresponding Sourcerdquo for a Combined Work means the CorrespondingSource for the Combined Work excluding any source code for portions of the CombinedWork that considered in isolation are based on the Application and not on the LinkedVersionThe ldquoCorresponding Application Coderdquo for a Combined Work means the object codeandor source code for the Application including any data and utility programs neededfor reproducing the Combined Work from the Application but excluding the SystemLibraries of the Combined Work

1 Exception to Section 3 of the GNU GPLYou may convey a covered work under sections 3 and 4 of this License without beingbound by section 3 of the GNU GPL

2 Conveying Modified VersionsIf you modify a copy of the Library and in your modifications a facility refers to afunction or data to be supplied by an Application that uses the facility (other than asan argument passed when the facility is invoked) then you may convey a copy of themodified versiona under this License provided that you make a good faith effort to ensure that in

the event an Application does not supply the function or data the facility stilloperates and performs whatever part of its purpose remains meaningful or

128 OpenSS7 SS7 Stack

b under the GNU GPL with none of the additional permissions of this Licenseapplicable to that copy

3 Object Code Incorporating Material from Library Header FilesThe object code form of an Application may incorporate material from a header file thatis part of the Library You may convey such object code under terms of your choiceprovided that if the incorporated material is not limited to numerical parameters datastructure layouts and accessors or small macros inline functions and templates (tenor fewer lines in length) you do both of the followinga Give prominent notice with each copy of the object code that the Library is used

in it and that the Library and its use are covered by this Licenseb Accompany the object code with a copy of the GNU GPL and this license docu-

ment4 Combined Works

You may convey a Combined Work under terms of your choice that taken togethereffectively do not restrict modification of the portions of the Library contained in theCombined Work and reverse engineering for debugging such modifications if you alsodo each of the followinga Give prominent notice with each copy of the Combined Work that the Library is

used in it and that the Library and its use are covered by this Licenseb Accompany the Combined Work with a copy of the GNU GPL and this license

documentc For a Combined Work that displays copyright notices during execution include

the copyright notice for the Library among these notices as well as a referencedirecting the user to the copies of the GNU GPL and this license document

d Do one of the following0 Convey the Minimal Corresponding Source under the terms of this License

and the Corresponding Application Code in a form suitable for and underterms that permit the user to recombine or relink the Application with a mod-ified version of the Linked Version to produce a modified Combined Work inthe manner specified by section 6 of the GNU GPL for conveying Correspond-ing Source

1 Use a suitable shared library mechanism for linking with the Library Asuitable mechanism is one that (a) uses at run time a copy of the Libraryalready present on the userrsquos computer system and (b) will operate properlywith a modified version of the Library that is interface-compatible with theLinked Version

e Provide Installation Information but only if you would otherwise be required toprovide such information under section 6 of the GNU GPL and only to the extentthat such information is necessary to install and execute a modified version ofthe Combined Work produced by recombining or relinking the Application witha modified version of the Linked Version (If you use option 4d0 the InstallationInformation must accompany the Minimal Corresponding Source and Correspond-ing Application Code If you use option 4d1 you must provide the InstallationInformation in the manner specified by section 6 of the GNU GPL for conveyingCorresponding Source)

Licenses 129

5 Combined LibrariesYou may place library facilities that are a work based on the Library side by side ina single library together with other library facilities that are not Applications and arenot covered by this License and convey such a combined library under terms of yourchoice if you do both of the followinga Accompany the combined library with a copy of the same work based on the

Library uncombined with any other library facilities conveyed under the terms ofthis License

b Give prominent notice with the combined library that part of it is a work basedon the Library and explaining where to find the accompanying uncombined formof the same work

6 Revised Versions of the GNU Lesser General Public LicenseThe Free Software Foundation may publish revised andor new versions of the GNULesser General Public License from time to time Such new versions will be similarin spirit to the present version but may differ in detail to address new problems orconcernsEach version is given a distinguishing version number If the Library as you receivedit specifies that a certain numbered version of the GNU Lesser General Public Licenseldquoor any later versionrdquo applies to it you have the option of following the terms andconditions either of that published version or of any later version published by theFree Software Foundation If the Library as you received it does not specify a versionnumber of the GNU Lesser General Public License you may choose any version of theGNU Lesser General Public License ever published by the Free Software FoundationIf the Library as you received it specifies that a proxy can decide whether future versionsof the GNU Lesser General Public License shall apply that proxyrsquos public statementof acceptance of any version is permanent authorization for you to choose that versionfor the Library

END OF TERMS AND CONDITIONS

130 OpenSS7 SS7 Stack

GNU Free Documentation License

GNU FREE DOCUMENTATION LICENSEVersion 11 March 2000

Copyright ccopy 2000 Free Software Foundation Inc59 Temple Place Suite 330 Boston MA 02111-1307 USA

Everyone is permitted to copy and distribute verbatim copiesof this license document but changing it is not allowed

Preamble

The purpose of this License is to make a manual textbook or other written document freein the sense of freedom to assure everyone the effective freedom to copy and redistributeit with or without modifying it either commercially or noncommercially Secondarily thisLicense preserves for the author and publisher a way to get credit for their work while notbeing considered responsible for modifications made by others

This License is a kind of ldquocopyleftrdquo which means that derivative works of the documentmust themselves be free in the same sense It complements the GNU General Public Licensewhich is a copyleft license designed for free software

We have designed this License in order to use it for manuals for free software because freesoftware needs free documentation a free program should come with manuals providing thesame freedoms that the software does But this License is not limited to software manualsit can be used for any textual work regardless of subject matter or whether it is publishedas a printed book We recommend this License principally for works whose purpose isinstruction or reference

Terms and Conditions for Copying Distribution and Modification

1 APPLICABILITY AND DEFINITIONS

This License applies to any manual or other work that contains a notice placed bythe copyright holder saying it can be distributed under the terms of this License TheldquoDocumentrdquo below refers to any such manual or work Any member of the public isa licensee and is addressed as ldquoyourdquo

A ldquoModified Versionrdquo of the Document means any work containing the Document ora portion of it either copied verbatim or with modifications andor translated intoanother language

A ldquoSecondary Sectionrdquo is a named appendix or a front-matter section of the Documentthat deals exclusively with the relationship of the publishers or authors of the Documentto the Documentrsquos overall subject (or to related matters) and contains nothing thatcould fall directly within that overall subject (For example if the Document is in part atextbook of mathematics a Secondary Section may not explain any mathematics) Therelationship could be a matter of historical connection with the subject or with relatedmatters or of legal commercial philosophical ethical or political position regardingthem

Licenses 131

The ldquoInvariant Sectionsrdquo are certain Secondary Sections whose titles are designated asbeing those of Invariant Sections in the notice that says that the Document is releasedunder this LicenseThe ldquoCover Textsrdquo are certain short passages of text that are listed as Front-CoverTexts or Back-Cover Texts in the notice that says that the Document is released underthis LicenseA ldquoTransparentrdquo copy of the Document means a machine-readable copy representedin a format whose specification is available to the general public whose contents canbe viewed and edited directly and straightforwardly with generic text editors or (forimages composed of pixels) generic paint programs or (for drawings) some widely avail-able drawing editor and that is suitable for input to text formatters or for automatictranslation to a variety of formats suitable for input to text formatters A copy madein an otherwise Transparent file format whose markup has been designed to thwart ordiscourage subsequent modification by readers is not Transparent A copy that is notldquoTransparentrdquo is called ldquoOpaquerdquoExamples of suitable formats for Transparent copies include plain ascii withoutmarkup Texinfo input format LaTEX input format SGML or XML using apublicly available DTD and standard-conforming simple HTML designed for humanmodification Opaque formats include PostScript PDF proprietary formats that canbe read and edited only by proprietary word processors SGML or XML for which theDTD andor processing tools are not generally available and the machine-generatedHTML produced by some word processors for output purposes onlyThe ldquoTitle Pagerdquo means for a printed book the title page itself plus such followingpages as are needed to hold legibly the material this License requires to appear in thetitle page For works in formats which do not have any title page as such ldquoTitle Pagerdquomeans the text near the most prominent appearance of the workrsquos title preceding thebeginning of the body of the text

2 VERBATIM COPYINGYou may copy and distribute the Document in any medium either commercially ornoncommercially provided that this License the copyright notices and the licensenotice saying this License applies to the Document are reproduced in all copies andthat you add no other conditions whatsoever to those of this License You may not usetechnical measures to obstruct or control the reading or further copying of the copiesyou make or distribute However you may accept compensation in exchange for copiesIf you distribute a large enough number of copies you must also follow the conditionsin section 3You may also lend copies under the same conditions stated above and you may publiclydisplay copies

3 COPYING IN QUANTITYIf you publish printed copies of the Document numbering more than 100 and theDocumentrsquos license notice requires Cover Texts you must enclose the copies in coversthat carry clearly and legibly all these Cover Texts Front-Cover Texts on the frontcover and Back-Cover Texts on the back cover Both covers must also clearly andlegibly identify you as the publisher of these copies The front cover must present thefull title with all words of the title equally prominent and visible You may add other

132 OpenSS7 SS7 Stack

material on the covers in addition Copying with changes limited to the covers as longas they preserve the title of the Document and satisfy these conditions can be treatedas verbatim copying in other respectsIf the required texts for either cover are too voluminous to fit legibly you should putthe first ones listed (as many as fit reasonably) on the actual cover and continue therest onto adjacent pagesIf you publish or distribute Opaque copies of the Document numbering more than 100you must either include a machine-readable Transparent copy along with each Opaquecopy or state in or with each Opaque copy a publicly-accessible computer-networklocation containing a complete Transparent copy of the Document free of added ma-terial which the general network-using public has access to download anonymously atno charge using public-standard network protocols If you use the latter option youmust take reasonably prudent steps when you begin distribution of Opaque copiesin quantity to ensure that this Transparent copy will remain thus accessible at thestated location until at least one year after the last time you distribute an Opaquecopy (directly or through your agents or retailers) of that edition to the publicIt is requested but not required that you contact the authors of the Document wellbefore redistributing any large number of copies to give them a chance to provide youwith an updated version of the Document

4 MODIFICATIONSYou may copy and distribute a Modified Version of the Document under the conditionsof sections 2 and 3 above provided that you release the Modified Version under preciselythis License with the Modified Version filling the role of the Document thus licensingdistribution and modification of the Modified Version to whoever possesses a copy ofit In addition you must do these things in the Modified VersionA Use in the Title Page (and on the covers if any) a title distinct from that of the

Document and from those of previous versions (which should if there were anybe listed in the History section of the Document) You may use the same title asa previous version if the original publisher of that version gives permission

B List on the Title Page as authors one or more persons or entities responsible forauthorship of the modifications in the Modified Version together with at least fiveof the principal authors of the Document (all of its principal authors if it has lessthan five)

C State on the Title page the name of the publisher of the Modified Version as thepublisher

D Preserve all the copyright notices of the DocumentE Add an appropriate copyright notice for your modifications adjacent to the other

copyright noticesF Include immediately after the copyright notices a license notice giving the public

permission to use the Modified Version under the terms of this License in the formshown in the Addendum below

G Preserve in that license notice the full lists of Invariant Sections and required CoverTexts given in the Documentrsquos license notice

H Include an unaltered copy of this License

Licenses 133

I Preserve the section entitled ldquoHistoryrdquo and its title and add to it an item statingat least the title year new authors and publisher of the Modified Version asgiven on the Title Page If there is no section entitled ldquoHistoryrdquo in the Documentcreate one stating the title year authors and publisher of the Document as givenon its Title Page then add an item describing the Modified Version as stated inthe previous sentence

J Preserve the network location if any given in the Document for public access toa Transparent copy of the Document and likewise the network locations given inthe Document for previous versions it was based on These may be placed in theldquoHistoryrdquo section You may omit a network location for a work that was publishedat least four years before the Document itself or if the original publisher of theversion it refers to gives permission

K In any section entitled ldquoAcknowledgmentsrdquo or ldquoDedicationsrdquo preserve the sec-tionrsquos title and preserve in the section all the substance and tone of each of thecontributor acknowledgments andor dedications given therein

L Preserve all the Invariant Sections of the Document unaltered in their text andin their titles Section numbers or the equivalent are not considered part of thesection titles

M Delete any section entitled ldquoEndorsementsrdquo Such a section may not be includedin the Modified Version

N Do not retitle any existing section as ldquoEndorsementsrdquo or to conflict in title withany Invariant Section

If the Modified Version includes new front-matter sections or appendices that qualifyas Secondary Sections and contain no material copied from the Document you may atyour option designate some or all of these sections as invariant To do this add theirtitles to the list of Invariant Sections in the Modified Versionrsquos license notice Thesetitles must be distinct from any other section titlesYou may add a section entitled ldquoEndorsementsrdquo provided it contains nothing butendorsements of your Modified Version by various partiesmdashfor example statements ofpeer review or that the text has been approved by an organization as the authoritativedefinition of a standardYou may add a passage of up to five words as a Front-Cover Text and a passage of upto 25 words as a Back-Cover Text to the end of the list of Cover Texts in the ModifiedVersion Only one passage of Front-Cover Text and one of Back-Cover Text may beadded by (or through arrangements made by) any one entity If the Document alreadyincludes a cover text for the same cover previously added by you or by arrangementmade by the same entity you are acting on behalf of you may not add another butyou may replace the old one on explicit permission from the previous publisher thatadded the old oneThe author(s) and publisher(s) of the Document do not by this License give permissionto use their names for publicity for or to assert or imply endorsement of any ModifiedVersion

5 COMBINING DOCUMENTSYou may combine the Document with other documents released under this Licenseunder the terms defined in section 4 above for modified versions provided that you

134 OpenSS7 SS7 Stack

include in the combination all of the Invariant Sections of all of the original documentsunmodified and list them all as Invariant Sections of your combined work in its licensenoticeThe combined work need only contain one copy of this License and multiple identicalInvariant Sections may be replaced with a single copy If there are multiple InvariantSections with the same name but different contents make the title of each such sectionunique by adding at the end of it in parentheses the name of the original author orpublisher of that section if known or else a unique number Make the same adjustmentto the section titles in the list of Invariant Sections in the license notice of the combinedworkIn the combination you must combine any sections entitled ldquoHistoryrdquo in the variousoriginal documents forming one section entitled ldquoHistoryrdquo likewise combine any sec-tions entitled ldquoAcknowledgmentsrdquo and any sections entitled ldquoDedicationsrdquo You mustdelete all sections entitled ldquoEndorsementsrdquo

6 COLLECTIONS OF DOCUMENTSYou may make a collection consisting of the Document and other documents releasedunder this License and replace the individual copies of this License in the variousdocuments with a single copy that is included in the collection provided that youfollow the rules of this License for verbatim copying of each of the documents in allother respectsYou may extract a single document from such a collection and distribute it individu-ally under this License provided you insert a copy of this License into the extracteddocument and follow this License in all other respects regarding verbatim copying ofthat document

7 AGGREGATION WITH INDEPENDENT WORKSA compilation of the Document or its derivatives with other separate and independentdocuments or works in or on a volume of a storage or distribution medium does notas a whole count as a Modified Version of the Document provided no compilationcopyright is claimed for the compilation Such a compilation is called an ldquoaggregaterdquoand this License does not apply to the other self-contained works thus compiled withthe Document on account of their being thus compiled if they are not themselvesderivative works of the DocumentIf the Cover Text requirement of section 3 is applicable to these copies of the Documentthen if the Document is less than one quarter of the entire aggregate the DocumentrsquosCover Texts may be placed on covers that surround only the Document within theaggregate Otherwise they must appear on covers around the whole aggregate

8 TRANSLATIONTranslation is considered a kind of modification so you may distribute translationsof the Document under the terms of section 4 Replacing Invariant Sections withtranslations requires special permission from their copyright holders but you mayinclude translations of some or all Invariant Sections in addition to the original versionsof these Invariant Sections You may include a translation of this License provided thatyou also include the original English version of this License In case of a disagreementbetween the translation and the original English version of this License the originalEnglish version will prevail

Licenses 135

9 TERMINATIONYou may not copy modify sublicense or distribute the Document except as expresslyprovided for under this License Any other attempt to copy modify sublicense ordistribute the Document is void and will automatically terminate your rights underthis License However parties who have received copies or rights from you under thisLicense will not have their licenses terminated so long as such parties remain in fullcompliance

10 FUTURE REVISIONS OF THIS LICENSEThe Free Software Foundation may publish new revised versions of the GNU FreeDocumentation License from time to time Such new versions will be similar in spiritto the present version but may differ in detail to address new problems or concernsSee httpwwwgnuorgcopyleftEach version of the License is given a distinguishing version number If the Documentspecifies that a particular numbered version of this License ldquoor any later versionrdquoapplies to it you have the option of following the terms and conditions either of thatspecified version or of any later version that has been published (not as a draft) bythe Free Software Foundation If the Document does not specify a version number ofthis License you may choose any version ever published (not as a draft) by the FreeSoftware Foundation

END OF TERMS AND CONDITIONS

136 OpenSS7 SS7 Stack

How to use this License for your documents

To use this License in a document you have written include a copy of the License in thedocument and put the following copyright and license notices just after the title page

Copyright (C) year your name

Permission is granted to copy distribute andor modify this document

under the terms of the GNU Free Documentation License Version 11

or any later version published by the Free Software Foundation

with the Invariant Sections being list their titles with the

Front-Cover Texts being list and with the Back-Cover Texts being list

A copy of the license is included in the section entitled lsquolsquoGNU

Free Documentation Licensersquorsquo

If you have no Invariant Sections write ldquowith no Invariant Sectionsrdquo instead of saying whichones are invariant If you have no Front-Cover Texts write ldquono Front-Cover Textsrdquo insteadof ldquoFront-Cover Texts being listrdquo likewise for Back-Cover TextsIf your document contains nontrivial examples of program code we recommend releasingthese examples in parallel under your choice of free software license such as the GNUGeneral Public License to permit their use in free software

Indices 137

Indices

Index of Concepts

Aapplications 19apt 48 51Architectures 36authors 5

Bbinary debs 54 63 80binary rpms 51 62 79 80bug reports automatic generation 99bug reports generating 98bug reports stand along generation 100bugs 43bugs history 44bugs known 44bugs reporting 97building 77building source dscs 78building source srpm 77building tar ball 78

Ccheckout cvs 59compatibility 34configuration 61configure environment variables 74configure options 67configuring binary debs 63configuring binary rpms 62configuring source dscs 67configuring source srpm 63configuring tar ball 67conformance 31contributors 5conventions 16credits 4cvs 59

Ddefinitions 16device 28device drivers 28downloading 49downloading apt 51downloading binary rpms 51downloading debian debs 54downloading debian dscs 57downloading source srpm 57

downloading tar ball 58downloading yum 49drivers 28

Ggenerating bug reports 98 100generating bug reports automatically 99generating problem reports 98generating problem reports automatically 99generating problem reports stand alone 100GNULinux Distributions 34

Hhistory 46history bugs 44

Iindices 137installation 47installing 79installing binary debs 80installing binary rpms 79installing tar ball 80introduction 15

KKernel 36known bugs 44known problems 101

Llicense AGPL 104license FDL 130license GNU Affero General Public License 104license GNU Free Documentation License 130license GNU General Public License 115license GPL 115license Lesser General Public License 127license LGPL 127licenses 103licensing 1Linux Fast-STREAMS 37Linux STREAMS 37loading 81

138 OpenSS7 SS7 Stack

Mmaintainer 5manual abstract 1manual audience 1manual disclaimer 4manual intent 1manual notice 1manual objective 1manual revisions 2maturity 42

Oobjective 17organization 15overview 15

Ppost-installation checks 96pre-installation checks 93prerequisites 33problem reports 97problems known 101

Qquick start guide 9

Rreference 19release notes 37release strss7-09a-1 42release strss7-09a-2 41release strss7-09a-3 41release strss7-09a-4 41release strss7-09a5 40release strss7-09a6 39release strss7-09a7 38release strss7-09a8 37releases 33removing 80removing binary debs 80removing binary rpms 80removing source dscs 81removing source srpm 81

removing tar ball 81reporting bugs 97repositories 47repositories apt 48repositories yum 47

Sschedule 45source dscs 57 67 78 81source rpms 57 63 77 81sponsors 4ss7 protocol stack 20strss7-dev-09a8-172i686rpm 62strss7-devel-09a8-172i686rpm 62strss7-doc-09a8-172i686rpm 62strss7-LiS-core-2420-287-09a8-172i686rpm

62strss7-LiS-info-2420-287-09a8-172i686rpm

62strss7-LiS-lib-09a8-172i686rpm 62strss7-LiS-util-09a8-172i686rpm 63strss7-source-09a8-172i686rpm 63strss7-streams-core-2420-287-09a8-172i686-

rpm 62strss7-streams-info-2420-287-09a8-172i686-

rpm 62strss7-streams-lib-09a8-172i686rpm 62strss7-streams-util-09a8-172i686rpm 63

Ttar ball 58 67 78 80 81test suites 93test suites running 97troubleshooting 93

Wweb resources 6

Xx400p t400p t100p e400p e100p te405p te410p 29

Yyum 47 49

Indices 139

Index of Data Types

Aapt-get(8) 38

Y

yum(8) 38

140 OpenSS7 SS7 Stack

Index of Functions and Macros

(Index is nonexistent)

Indices 141

Index of Variables and Constants

AAUTOM4TE 77AUTOTEST 77

BBZIP2 75BZIP2_CMD 75

CCHKCONFIG 75

DDEB_BUILD_ARCH 75DEB_BUILD_GNU_CPU 76DEB_BUILD_GNU_SYSTEM 76DEB_BUILD_GNU_TYPE 76DEB_HOST_ARCH 76DEB_HOST_GNU_CPU 76DEB_HOST_GNU_SYSTEM 76DEB_HOST_GNU_TYPE 76DEPMOD 76DESTDIR 76DPKG 75DPKG_BUILDPACKAGE 75DPKG_SOURCE 75

GGENKSYMS 77GNUPGHOME 74GNUPGUSER 74GPG 74GPGPASSWD 74GZIP 75GZIP_CMD 75

IIRQF_DISABLED 37IRQF_SHARED 37

KKGENKSYMS 77

LLDCONFIG 76LSMOD 76LSOF 76

MMAKEWHATIS 75MODPOST_CACHE 77MODPROBE 76MODULE_VERSION 38

NNM 77

OOBJDUMP 77

PPACKAGE_KVERSION 64PIC 75

RREFER 74RPM 75RPMBUILD 75

SSA_INTERRUPT 37SA_SHIRQ 37SOELIM 74

TTBL 74

142 OpenSS7 SS7 Stack

Index of Files and Programs

libmodules2420-287streams 82

Indices 143

Index of Configuration Options

332bit-libs 68

Aarch 69autotest 68

Bbase-major 74

Cchecks 65 68compress-manpages 68cooked-manpages 65 71

Ddeb-epoch 72deb-release 72deb-topdir 72devel 66 69devfs 70docs 66 69

Ggpg-home 71gpg-user 70

Iindep 69initscripts 68

Kk-archdir 73k-build 72k-config 73

k-debug 65 70k-inline 66 70k-linkage 72k-machdir 73k-modules 72k-modversions 66 70k-optimize 65 73k-release 64 72k-safe 66 70k-sysmap 73k-test 65 70

Llfs 67 74lis 67 73

Mmodules 67 69

Ppkg-distdir 71pkg-epoch 71pkg-release 71public 65 68

Rrpm-epoch 71rpm-extra 71rpm-release 71rpm-topdir 71

Sstrconf-master 74

Ttools 66 69

144 OpenSS7 SS7 Stack

Index of Makefile Targets

Aall 82 83

Ccheck 83check-clean 86checklog 88clean 85compilelog 88csig 92

Ddebs 91dist 85distlog 88distcheck 85distchecklog 88distclean 85doxy 92dsc 91

Fforced-release 87forced-release-sign 87

Iinstall 82 83install-mans 86install-strip 82 83installlog 88installcheck 84installchecklog 88

Mmaintainer-clean 86

mans 86mostlyclean 85

Ppr 89 99

Rrebuild 91rebuildlog 88release 87release-archives 89release-clean 87release-clean-archives 90release-sign 87release-sign-archives 90release-signlog 89releaselog 88remove 84removelog 88resign 91resignlog 88retest 84rpms 90

Ssend-pr 89sign 90sigs 91srpm 90srpm-sign 90srpmlog 88

Uuninstall 84uninstall-mans 86uninstalllog 88

Indices 145

Index of Authors

Bidulock Brian 5

146 OpenSS7 SS7 Stack

Index of Manual Pages Referenced

Aapt(8) 9 47 51autoconf(1) 9 52 55 58 60 61 67 79 84autom4te(1) 77automake(1) 60 65 66 67 69 70 80 81 83

84 85 86 87 88autoreconf(1) 83

Bbzip2(1) 75

Cchkconfig(8) 75cvs(1) 9 59

Ddepmod(8) 76devfsd(1) 66devfsd(8) 70doxygen(1) 92dpkg(1) 47 49 58 61 69 71 75 84dpkg(8) 80 81dpkg-buildpackage(1) 75dpkg-source(1) 75

Eethereal(1) 46

Ggcc(1) 11genksyms(8) 60 77gettext(1) 67git(1) 9gpg(1) 70grefer(1) 60 65 71groff(1) 60 65 71gzip(1) 75

Iinit_install(8) 75init_remove(8) 75

Lldconfig(8) 76libtool(1) 67lsmod(8) 76lsof(1) 76

Mmake(1) 61 68makewhatis(8) 75modpost(1) 77modprobe(8) 76

Nnm(1) 77

Oobjdump(1) 77

Ppcap(3) 46pic(1) 65 71 75

Rrefer(1) 65 71 74rpm(1) 47 49 51 58 61 69 71 75 77 79 80

84 87 90rpm(8) 63 79rpmbuild(1) 64 75

Ssoelim(1) 65 71 74STREAMS(9) 1

Ttar(1) 58 85tbl(1) 65 71 74tee(1) 87texinfo(1) 66 69

Wwget(1) 47 58wireshark(1) 46

Yyast(8) 47yum(8) 9 47 49 51

Zzypper(8) 47 49

  • Preface
    • Notice
    • Abstract
      • Objective
      • Intent
      • Audience
        • Revisions
          • Version Control
          • ISO 9000 Compliance
            • Disclaimer
              • US Government Restricted Rights
                • Acknowledgements
                  • Sponsors
                  • Contributors
                    • Authors
                    • Maintainer
                    • Web Resources
                      • Quick Start Guide
                        • OpenSS7 SS7 Stack
                          • Release
                          • Prerequisites
                          • Installation
                          • Brief Installation Instructions
                          • Detailed Installation Instructions
                              • Introduction
                                • Overview
                                • Organization of this Manual
                                • Conventions and Definitions
                                  • Objective
                                  • Reference
                                    • Applications
                                    • SS7 Protocol Stack
                                      • Signalling Data Link (SDL)
                                      • Signalling Data Terminal (SDT)
                                      • Signalling Link (SL)
                                      • Message Transfer Part (MTP)
                                      • Signalling Connection Control Part (SCCP)
                                      • Transaction Capabilities Application Part (TCAP)
                                      • Base Station System Application Part (BSSAP)
                                        • Device Drivers
                                          • Digium Drivers
                                          • SeaLevel ACB56 Drivers
                                              • Conformance
                                              • Releases
                                                • Prerequisites
                                                • Compatibility
                                                  • GNULinux Distributions
                                                  • Kernel
                                                  • Architectures
                                                  • Linux STREAMS
                                                  • Linux Fast-STREAMS
                                                    • Release Notes
                                                      • Major changes for release strss7-09a8
                                                      • Major changes for release strss7-09a7
                                                      • Major changes for release strss7-09a6
                                                      • Major changes for release strss7-09a5
                                                      • Major changes for release strss7-09a-4
                                                      • Major changes for release strss7-09a-3
                                                      • Major changes for release strss7-09a-2
                                                      • Initial release strss7-09a-1
                                                        • Maturity
                                                          • Pre-Alpha Releases
                                                          • Alpha Releases
                                                          • Beta Releases
                                                          • Gamma Releases
                                                          • Production Releases
                                                          • Unstable Releases
                                                            • Bugs
                                                              • Defect Notices
                                                              • Known Defects
                                                              • Defect History
                                                                • Schedule
                                                                • History
                                                                  • Installation
                                                                    • Repositories
                                                                      • Repositories for YUM
                                                                      • Repositories for APT
                                                                        • Downloading
                                                                          • Downloading with YUM
                                                                          • Downloading with APT
                                                                          • Downloading the Binary RPM
                                                                          • Downloading the Debian DEB
                                                                          • Downloading the Source RPM
                                                                          • Downloading the Debian DSC
                                                                          • Downloading the Tar Ball
                                                                          • Downloading from CVS
                                                                            • Configuration
                                                                              • Configuring the Binary RPM
                                                                              • Configuring the Debian DEB
                                                                              • Configuring the Source RPM
                                                                              • Configuring the Debian DSC
                                                                              • Configuring the Tar Ball
                                                                                • Configure Options
                                                                                • Environment Variables
                                                                                • Build
                                                                                    • Building
                                                                                      • Building from the Source RPM
                                                                                      • Building from the Debian DSC
                                                                                      • Building from the Tar Ball
                                                                                        • Native Build
                                                                                        • Cross-Build
                                                                                            • Installing
                                                                                              • Installing the Binary RPM
                                                                                              • Installing the Debian DEB
                                                                                              • Installing the Tar Ball
                                                                                                • Removing
                                                                                                  • Removing the Binary RPM
                                                                                                  • Removing the Debian DEB
                                                                                                  • Removing the Source RPM
                                                                                                  • Removing the Debian DSC
                                                                                                  • Removing the Tar Ball
                                                                                                    • Loading
                                                                                                      • Normal Module Loading
                                                                                                        • Linux Fast-STREAMS Module Loading
                                                                                                        • Linux STREAMS Module Loading
                                                                                                            • Maintenance
                                                                                                              • Makefile Targets
                                                                                                                • User Targets
                                                                                                                • Maintainer Targets
                                                                                                                • Clean Targets
                                                                                                                • Manual Page Targets
                                                                                                                • Release Targets
                                                                                                                • Logging Targets
                                                                                                                • Problem Report Targets
                                                                                                                • Release Archive Targets
                                                                                                                • RPM Build Targets
                                                                                                                • Debian Build Targets
                                                                                                                • Documentation Targets
                                                                                                                  • Troubleshooting
                                                                                                                    • Test Suites
                                                                                                                      • Pre-installation Checks
                                                                                                                        • Pre-Installation System Checks
                                                                                                                        • Pre-Installation Maintenance Checks
                                                                                                                        • Specific Pre-Installation Checks
                                                                                                                          • Post-installation Checks
                                                                                                                            • Running Test Suites
                                                                                                                                • Problem Reports
                                                                                                                                  • Problem Report Guidelines
                                                                                                                                  • Generating Problem Reports
                                                                                                                                  • Automatic Problem Reports
                                                                                                                                  • Stand Alone Problem Reports
                                                                                                                                    • Known Problems
                                                                                                                                      • Licenses
                                                                                                                                        • GNU Affero General Public License
                                                                                                                                          • Preamble
                                                                                                                                          • How to Apply These Terms to Your New Programs
                                                                                                                                            • GNU General Public License
                                                                                                                                              • Preamble
                                                                                                                                              • How to Apply These Terms to Your New Programs
                                                                                                                                                • GNU Lesser General Public License
                                                                                                                                                  • Terms and Conditions
                                                                                                                                                    • GNU Free Documentation License
                                                                                                                                                      • Preamble
                                                                                                                                                      • Terms and Conditions for Copying Distribution and Modification
                                                                                                                                                      • How to use this License for your documents
                                                                                                                                                          • Indices
                                                                                                                                                            • Index of Concepts
                                                                                                                                                            • Index of Data Types
                                                                                                                                                            • Index of Functions and Macros
                                                                                                                                                            • Index of Variables and Constants
                                                                                                                                                            • Index of Files and Programs
                                                                                                                                                            • Index of Configuration Options
                                                                                                                                                            • Index of Makefile Targets
                                                                                                                                                            • Index of Authors
                                                                                                                                                            • Index of Manual Pages Referenced
Page 3: OpenSS7 SS7 Stack Installation and Reference Manual · 2008. 10. 31. · vi OpenSS7 SS7 Stack 6.8.1.5 Release Targets:::::86 6.8.1.6 Logging Targets::::: 87 6.8.1.7 Problem Report

i

Short Contents

Preface 1

Quick Start Guide 9

1 Introduction 15

2 Objective 17

3 Reference 19

4 Conformance 31

5 Releases 33

6 Installation 47

7 Troubleshooting 93

Licenses 103

Indices 137

iii

Table of Contents

Preface 1Notice 1Abstract 1

Objective 1Intent 1Audience 1

Revisions 2Version Control 2ISO 9000 Compliance 4

Disclaimer 4US Government Restricted Rights 4

Acknowledgements 4Sponsors 4Contributors 5

Authors 5Maintainer 5Web Resources 6

Quick Start Guide 9OpenSS7 SS7 Stack 9

Release 9Prerequisites 10Installation 11Brief Installation Instructions 12Detailed Installation Instructions 13

1 Introduction 1511 Overview 1512 Organization of this Manual 1513 Conventions and Definitions 16

2 Objective 17

3 Reference 1931 Applications 1932 SS7 Protocol Stack 20

321 Signalling Data Link (SDL) 21322 Signalling Data Terminal (SDT) 22323 Signalling Link (SL) 23324 Message Transfer Part (MTP) 24325 Signalling Connection Control Part (SCCP) 25326 Transaction Capabilities Application Part (TCAP) 26

iv OpenSS7 SS7 Stack

327 Base Station System Application Part (BSSAP) 2733 Device Drivers 28

331 Digium Drivers 29332 SeaLevel ACB56 Drivers 30

4 Conformance 31

5 Releases 3351 Prerequisites 3352 Compatibility 34

521 GNULinux Distributions 34522 Kernel 36523 Architectures 36524 Linux STREAMS 37525 Linux Fast-STREAMS 37

53 Release Notes 37Major changes for release strss7-09a8 37Major changes for release strss7-09a7 38Major changes for release strss7-09a6 39Major changes for release strss7-09a5 40Major changes for release strss7-09a-4 41Major changes for release strss7-09a-3 41Major changes for release strss7-09a-2 41Initial release strss7-09a-1 42

54 Maturity 42541 Pre-Alpha Releases 42542 Alpha Releases 42543 Beta Releases 42544 Gamma Releases 42545 Production Releases 43546 Unstable Releases 43

55 Bugs 43551 Defect Notices 43552 Known Defects 44553 Defect History 44

56 Schedule 4557 History 46

v

6 Installation 4761 Repositories 47

611 Repositories for YUM 47612 Repositories for APT 48

62 Downloading 49621 Downloading with YUM 49622 Downloading with APT 51623 Downloading the Binary RPM 51624 Downloading the Debian DEB 54625 Downloading the Source RPM 57626 Downloading the Debian DSC 57627 Downloading the Tar Ball 58628 Downloading from CVS 59

63 Configuration 61631 Configuring the Binary RPM 62632 Configuring the Debian DEB 63633 Configuring the Source RPM 63634 Configuring the Debian DSC 67635 Configuring the Tar Ball 67

6351 Configure Options 676352 Environment Variables 746353 Build 77

64 Building 77641 Building from the Source RPM 77642 Building from the Debian DSC 78643 Building from the Tar Ball 78

6431 Native Build 796432 Cross-Build 79

65 Installing 79651 Installing the Binary RPM 79652 Installing the Debian DEB 80653 Installing the Tar Ball 80

66 Removing 80661 Removing the Binary RPM 80662 Removing the Debian DEB 80663 Removing the Source RPM 81664 Removing the Debian DSC 81665 Removing the Tar Ball 81

67 Loading 81671 Normal Module Loading 81

6711 Linux Fast-STREAMS Module Loading 826712 Linux STREAMS Module Loading 82

68 Maintenance 82681 Makefile Targets 83

6811 User Targets 836812 Maintainer Targets 856813 Clean Targets 856814 Manual Page Targets 86

vi OpenSS7 SS7 Stack

6815 Release Targets 866816 Logging Targets 876817 Problem Report Targets 896818 Release Archive Targets 896819 RPM Build Targets 9068110 Debian Build Targets 9168111 Documentation Targets 92

7 Troubleshooting 9371 Test Suites 93

711 Pre-installation Checks 937111 Pre-Installation System Checks 937112 Pre-Installation Maintenance Checks 947113 Specific Pre-Installation Checks 94

712 Post-installation Checks 967121 Running Test Suites 97

72 Problem Reports 97721 Problem Report Guidelines 98722 Generating Problem Reports 98723 Automatic Problem Reports 99724 Stand Alone Problem Reports 100

73 Known Problems 101

Licenses 103GNU Affero General Public License 104

Preamble 104How to Apply These Terms to Your New Programs 114

GNU General Public License 115Preamble 115How to Apply These Terms to Your New Programs 126

GNU Lesser General Public License 127Terms and Conditions 127

GNU Free Documentation License 130Preamble 130Terms and Conditions for Copying Distribution and Modification

130How to use this License for your documents 136

Indices 137Index of Concepts 137Index of Data Types 139Index of Functions and Macros 140Index of Variables and Constants 141Index of Files and Programs 142Index of Configuration Options 143Index of Makefile Targets 144Index of Authors 145Index of Manual Pages Referenced 146

Preface 1

Preface

Notice

This package is released and distributed under the AGPL (see [GNU Affero General PublicLicense] page 104) Please note however that there are different licensing terms for themanual pages and some of the documentation (derived from OpenGroup1 publications andother sources) Consult the permission notices contained in the documentation for moreinformationThis manual is released under the FDL (see [GNU Free Documentation License] page 130)with no sections invariant

Abstract

This manual provides a Installation and Reference Manual for OpenSS7 SS7 Stack

Objective

The objective of this manual is to provide a guide for the STREAMS programmer whendeveloping STREAMS modules drivers and application programs for OpenSS7 SS7 StackThis guide provides information to developers on the use of the STREAMS mechanism atuser and kernel levelsSTREAMS was incorporated in UNIX System V Release 3 to augment the character in-putoutput (IO) mechanism and to support development of communication servicesSTREAMS provides developers with integral functions a set of utility routines and facilitiesthat expedite software design and implementation

Intent

The intent of this manual is to act as an introductory guide to the STREAMS programmerIt is intended to be read alone and is not intended to replace or supplement the OpenSS7 SS7Stack manual pages For a reference for writing code the manual pages (see STREAMS(9))provide a better reference to the programmer Although this describes the features of theOpenSS7 SS7 Stack package OpenSS7 Corporation is under no obligation to provide anysoftware system or feature listed herein

Audience

This manual is intended for a highly technical audience The reader should already befamiliar with Linux kernel programming the Linux file system character devices driverinput and output interrupts software interrupt handling scheduling process contextsmultiprocessor locks etcThe guide is intended for network and systems programmers who use the STREAMSmechanism at user and kernel levels for Linux and UNIX system communication servicesReaders of the guide are expected to possess prior knowledge of the Linux and UNIX systemprogramming networking and data communication

1 Formerly XOpen and UNIX International

2 OpenSS7 SS7 Stack

Revisions

Take care that you are working with a current version of this manual you will not benotified of updates To ensure that you are working with a current version contact theAuthor or check The OpenSS7 Project website for a current versionA current version of this manual is normally distributed with the OpenSS7 SS7 Stackpackage strss7-09a82

Version Controlstrss7texiv

Revision 09227 2008-09-20 110426 brian

- added package patchlevel

Revision 09226 2008-08-03 060328 brian

- protected agains texinfo commands in log entries

Revision 09225 20080727 084858 brian

- no invariant sections more libtool ignores

Revision 09224 2008-04-29 071035 brian

- updating headers for release

Revision 09223 2008-04-25 115046 brian

- updates to AGPLv3

Revision 09222 20070815 051816 brian

- GPLv3 updates

Revision 09221 20070812 064407 brian

- updated licenses in manuals

Revision 09220 20070803 133451 brian

- manual updates put ss7 modules in public release

Revision 09219 20070228 063035 brian

- updates and corrections ifdef instead of if

Revision 09218 20061002 113129 brian

- changes to get master builds working for RPM and DEB

- added outside licenses to package documentation

- added LICENSE automated release file

- copy MANUAL to source directory

- add and remove devices in -dev debian subpackages

- get debian rules working better

- release library version files

- added notes to debian changelog

- corrections for cooked manual pages in spec files

- added release documentation to spec and rules files

- copyright header updates

- moved controlling tty checks in stream head

- missing some defines for LiS build in various source files

- added OSI headers to striso package

- added includes and manual page paths to acincludes for various packages

- added sunrpc uidlpi uinpi and uitpi licenses to documentation and release

files

2 httpwwwopenss7orgtarballsstrss7-09a8tarbz2

Preface 3

- moved pragma weak statements ahead of declarations

- changes for master build of RPMS and DEBS with LiS

Revision 09217 20060828 104655 brian

- correction

Revision 09216 20060828 103246 brian

- updated references

Revision 09215 20060827 122638 brian

- finalizing auto release files

Revision 09214 20060826 091650 brian

- better release file generation

Revision 09213 20060823 110028 brian

- added preface corrections and updates for release

Revision 09212 20060822 124409 brian

- documentation updates

Revision 09211 20060322 100200 brian

- added makefile target index

Revision 09210 20060303 120609 brian

- 3264-bit compatibility

Revision 0929 20050708 131556 brian

- updates to documentation

Revision 0928 20050624 133859 brian

- added troubleshooting section to manuals

Revision 0927 20050514 083346 brian

- copyright header correction

Revision 0926 20050412 092906 brian

- corrections

Revision 0925 20050411 204840 brian

- documentation updates and corrections

Revision 0924 20050315 005650 brian

- Updated version numbering in texinfo files

Revision 0923 20050315 005147 brian

- Updated version numbering in texinfo files

Revision 0922 20050217 200011 brian

- Fixes for texi documentation

Revision 0921 20050126 082418 brian

- Changed name of texinfo file

Revision 09 20050126 082418 brian

file strss7texi was initially added on branch OpenSS7-0_9_2

4 OpenSS7 SS7 Stack

ISO 9000 Compliance

Only the TEX texinfo or roff source for this manual is controlled An opaque (printedpostscript or portable document format) version of this manual is an UNCONTROLLEDVERSION

Disclaimer

OpenSS7 Corporation disclaims all warranties with regard to this documentation includingall implied warranties of merchantability fitness for a particular purpose non-infringementor title that the contents of the manual are suitable for any purpose or that the implemen-tation of such contents will not infringe on any third party patents copyrights trademarksor other rights In no event shall OpenSS7 Corporation be liable for any direct indirectspecial or consequential damages or any damages whatsoever resulting from loss of usedata or profits whether in an action of contract negligence or other tortious action arisingout of or in connection with any use of this manual or the performance or implementationof the contents thereof

OpenSS7 Corporation reserves the right to revise this software and documentation for anyreason including but not limited to conformity with standards promulgated by variousagencies utilization of advances in the state of the technical arts or the reflection of changesin the design of any techniques or procedures embodied described or referred to hereinOpenSS7 Corporation is under no obligation to provide any feature listed herein

US Government Restricted Rights

If you are licensing this Software on behalf of the US Government (Government) thefollowing provisions apply to you If the Software is supplied by the Department of Defense(DoD) it is classified as Commercial Computer Software under paragraph 252227-7014of the DoD Supplement to the Federal Acquisition Regulations (DFARS) (or any successorregulations) and the Government is acquiring only the license rights granted herein (thelicense rights customarily provided to non-Government users) If the Software is suppliedto any unit or agency of the Government other than DoD it is classified as RestrictedComputer Software and the Governmentrsquos rights in the Software are defined in paragraph52227-19 of the Federal Acquisition Regulations (FAR) (or any successor regulations) orin the cases of NASA in paragraph 1852227-86 of the NASA Supplement to the FAR (orany successor regulations)

Acknowledgements

As with most open source projects this project would not have been possible withoutthe valiant efforts and productive software of the Free Software Foundation and the LinuxKernel Community

Sponsors

Funding for completion of the OpenSS7 OpenSS7 SS7 Stack package was provided in partby

bull OpenSS7 Corporation

Additional funding for The OpenSS7 Project was provided by

Preface 5

bull OpenSS7 Corporationbull Lockheed Martin Cobull Motorolabull HOB Internationalbull Comverse Ltdbull Sonus Networks Incbull France Telecombull SS8 Networks Incbull Nortel Networksbull Verisignbull eServGlobal (NZ) Pty Ltdbull NetCentrex S Abull SysMaster Corporationbull GeoLink SAbull AirNet Communicationsbull TECOREbull Tumsan Oybull Vodare Ltdbull Excel Telecommunications

Contributors

The primary contributor to the OpenSS7 OpenSS7 SS7 Stack package is Brian F G Bidu-lock The following is a list of significant contributors to The OpenSS7 Project

minus Per Berquistminus John Boydminus Chuck Wintersminus Peter Courtneyminus Tom Chandlerminus Gurol Ackmanminus Kutluk Testiciogluminus John Wenkerminus Others

Authors

The authors of the OpenSS7 OpenSS7 SS7 Stack package includeminus Brian Bidulock

See [Index of Authors] page 145 for a complete listing and cross-index of authors to sectionsof this manual

Maintainer

The maintainer of the OpenSS7 OpenSS7 SS7 Stack package isminus Brian Bidulock

Please send bug reports to bugsopenss7org using the lsquosend-prrsquo script included in thepackage only after reading the lsquoBUGSrsquo file in the release or See Section 72 [Problem Re-ports] page 97

6 OpenSS7 SS7 Stack

Web Resources

The OpenSS7 Project provides a website dedicated to the software packages released by theOpenSS7 Project

Bug Reports

Please send bug reports to bugsopenss7org using the lsquosend-prrsquo script included inthe OpenSS7 SS7 Stack package only after reading the lsquoBUGSrsquo file in the release or SeeSection 72 [Problem Reports] page 97 You can access the OpenSS7 GNATS databasedirectly via the web however the preferred method for sending new bug reports is viamail with the lsquosend-prrsquo script

Mailing Lists

The OpenSS7 Project provides a number of general discussion Mailing Lists for discussionconcerning the OpenSS7 OpenSS7 SS7 Stack package as well as other packages released byThe OpenSS7 ProjectThese are mailman mailing lists and so have convenient web interfaces for subscribers tocontrol their settings See httpwwwopenss7orgmailinglisthtmlThe mailing lists are as follows

lsquoopenss7rsquo The lsquoopenss7rsquo mailing list is for general enquiries information exchange andannouncements regarding the OpenSS7 Project This is our original mailinglist and takes the highest amount of traffic

lsquoopenss7-announcersquoThe lsquoopenss7-announcersquo mailing list is for announcements related to theOpenSS7 Project This list will accept announcements posted by subscribersSubscribe to this list if you are interested in announcements from theOpenSS7 Project subscribers and sponsors related to the OpenSS7 Projector STREAMS SS7 SIGTRAN or SCTP in general

lsquoopenss7-cvsrsquoThe lsquoopenss7-cvsrsquo mailing list is for automatic CVS log reporting You mustget permission of the owner to subscribe to this list Subscribers are not allowedto post to this list this is merely for distributing notification of changes to theCVS repositoryh

lsquoopenss7-developrsquoThe lsquoopenss7-developrsquo mailing list is for email exchange related to the de-velopment projects under the OpenSS7 Project This includes developmentrequests proposals requests for comment or proposal Subscribe to this listif you are interested in ongoing development details regarding the OpenSS7Project

lsquoopenss7-testrsquoThe lsquoopenss7-testrsquo mailing list is for email exchange related to the testingof code under the OpenSS7 Project This specifically relates to conformancetesting verification testing interoperability testing and beta testing Subscribeto this list if you are interested in participating in and receiving ongoing detailsof test activities under the OpenSS7 Project

Preface 7

lsquoopenss7-bugsrsquoThe lsquoopenss7-bugsrsquo mailing list is specifically tailored to bug tracking Themailing list takes a feed from the OpenSS7 GNATS bug tracking system andaccepts posting of responses to bug reports tracking and resolution Subscribeto this list if you are interested in receiving detailed OpenSS7 release code bugtracking information This list is not archived for historical information onproblem reports see our GNATS databases

lsquoopenss7-updatesrsquoThe lsquoopenss7-updatesrsquo mailing list provides updates on OpenSS7 Project codereleases and ongoing activities Subscribers are not allowed to post to this listthis list is for official OpenSS7 Project announcements only Subscribe to thislist if you are interested in receiving updates concerning official releases andactivities of the OpenSS7 Project

lsquoopenss7-streamsrsquoThe lsquoopenss7-streamsrsquo mailing list is for email exchange related to theSTREAMS development projects under the OpenSS7 Project This includesdevelopment requests proposals requests for comment or proposal Subscribeto this list if you are interested in ongoing development details regarding theOpenSS7 Project STREAMS components

lsquolinux-streamsrsquoThe lsquolinux-streamsrsquo mailing list is for mail exchange related to LinuxFast-STREAMS or Linux STREAMS This includes patches developmentrequests proposals requests for comment or proposal Subscribe to this list ifyou are interested in ongoing development details regarding the STREAMSfor Linux components This is the the new (September 2006) home of thelsquolinux-streamsrsquo list formerly of gsycesceturjces

Spam

To avoid spam being sent to the members of the OpenSS7 mailing list(s) we have blockedmail from non-subscribers Please subscribe to the mailing list before attempting to postto them (Attempts to post when not subscribed get bounced)As an additional measure against spam subscriber lists for all OpenSS7 mailing lists arenot accessible to non-subscribers for most lists subscriber lists are only accessible to thelist administrator This keeps your mailing address from being picked off our website bybulk mailers

Acceptable Use Policy

It is acceptable to post professional and courteous messages regarding the OpenSS7 packageor any general information or questions concerning STREAMS SS7 SIGTRAN SCTP ortelecommunications applications in general

Large Attachments

The mailing list is blocked from messages of greater than 40k If you have attachments(patches test programs etc) and you mail them to the list it will bounce to the listadministrator If you are interested in making your patches test programs test results or

8 OpenSS7 SS7 Stack

other large attachments available to the members of the mailing list state in the messagethat you would like them posted and the list administrator will place them in the mailarchives

Quick Start Guide 9

Quick Start Guide

OpenSS7 SS7 Stack

Package strss7-09a8 was released under AGPLv3 2008-10-31

The OpenSS7 SS7 Stack package includes a wide array of kernel modules SVR 42STREAMS drivers modules libraries utilities test programs daemons and developmentenvironment for the development and execution of Signalling System Number 7 (SS7)Signalling Transport (SIGTRAN) Integrated Services Digital Network (ISDN) and Voiceover IP (VoIP) protocol stack components and applications for the Linux Fast-STREAMSenvironment

However the current package has had ISDN components moved to the lsquostrisdnrsquo packageSIGTRAN components moved to the lsquosigtranrsquo package and VoIP components moved tothe lsquostrvoiprsquo package Only SS7 components remain in the lsquostrss7rsquo package

This distribution is only currently applicable to Linux 24 and 26 kernels and was tar-geted at ix86 x86_64 ppc and ppc64 architectures but should build and install for otherarchitectures as well

Release

This is the strss7-09a8 package released 2008-10-31 This lsquo09a8rsquo release and thelatest version can be obtained from the download area of The OpenSS7 Project websiteusing a command such as

$gt wget httpwwwopenss7orgtarballsstrss7-09a8tarbz2

The release is available as an autoconf(1) tarball lsquosrcrpmrsquo or lsquodscrsquo as a set of binarylsquorpmrsquos or lsquodebrsquos or as a yum(8) or apt(8) repository See the download page for theautoconf(1) tarballs lsquosrcrpmrsquos lsquodscrsquos or repository access instructions See the strss7package page for tarballs source and binary packages

Please see the lsquoNEWSrsquo file for release notes and history of user visible changes for the currentversion and the lsquoChangeLogrsquo file for a more detailed history of implementation changesThe lsquoTODOrsquo file lists features not yet implemented and other outstanding items

Please see the lsquoINSTALLrsquo lsquoINSTALL-strss7rsquo and lsquoREADME-makersquo files (or see Chapter 6[Installation] page 47) for installation instructions

When working from cvs(1) or git(1) please see the lsquoREADME-cvsrsquo file (or see Section 628[Downloading from CVS] page 59) An abbreviated installation procedure that works formost applications appears below

This release of the package is published strictly under Version 3 of the GNU Affero PublicLicense which can be found in the file lsquoCOPYINGrsquo Package specific licensing terms (if any)can be found in the file lsquoLICENSESrsquo Please respect these licensing arrangements If youare interested in different licensing terms please contact the copyright holder or OpenSS7Corporation ltsalesopenss7comgt

See lsquoREADME-alpharsquo (if it exists) for alpha release information

10 OpenSS7 SS7 Stack

Prerequisites

The quickest and easiest way to ensure that all prerequisites are met is to download andinstall this package from within the OpenSS7 Master Package openss7-092G insteadof separatelyPrerequisites for the OpenSS7 SS7 Stack package are as follows1 Linux distribution somewhat Linux Standards Base compliant with a 24 or 26 kernel

and the appropriate tool chain for compiling out-of-tree kernel modules Most recentLinux distributions are usable out of the box but some development packages must beinstalled For more information see Section 52 [Compatibility] page 34

minus A fairly LSB compliant GNULinux distribution1

minus Linux 24 kernel (2410 - 2427) orminus Linux 26 kernel (263 - 2626)minus glibc2 or betterminus GNU groff (for man pages)2

minus GNU texinfo (for info files)minus GNU bison and flex (for config programs)minus net-snmp (for SNMP agents)3

(Note If you acquired strss7 a part of the OpenSS7 Master Package then the dependencieslisted below will already have been met by unpacking the master package)2 OpenSS7 Linux Fast-STREAMS streams-09244

3 OpenSS7 STREAMS Compatibility Modules strcompat-09274 OpenSS7 STREAMS XNS strxns-09275 OpenSS7 STREAMS XTITLI strxnet-092126 OpenSS7 STREAM Network Services Library strnsl-0924 (Optional)7 OpenSS7 STREAMS Sockets strsock-0924 (Optional)8 OpenSS7 STREAMS INET strinet-09279 OpenSS7 STREAMS SCTP strsctp-0929

10 OpenSS7 STREAMS Channels strchan-092411 OpenSS7 STREAMS X25 strx25-092112 OpenSS7 STREAMS ISO striso-092413 OpenSS7 STREAMS ISDN strisdn-0924

When configuring and building multiple OpenSS7 Project release packages place all of thesource packages (unpacked tarballs) at the same directory level and all build directories atthe same directory level (eg all source packages under lsquousrsrcrsquo)When installing packages that install as kernel modules it is necessary to have the correctkernel development package installed For the following distributions use the followingcommands

1 See Section 521 [GNULinux Distributions] page 34 for more information2 If you are using a Debian release please make sure to install the groff extension package (lsquogroff_extrsquo) as

it contains the refer or grefer commands necessary for including references in the manual pages3 A wide range of net-snmp releases are supported from UCD-SNMP 425 through net-snmp 544 Although at one time this package supported LiS LiS is now deprecated and unsupported

Quick Start Guide 11

Ubuntu $gt apt-get install linux-headersDebian $gt apt-get install kernel-headersFedora $gt yum install kernel-devel

You also need the same version of gcc(1) compiler with which the kernel was built If it isnot the default add lsquoCC=kgccrsquo on the line after lsquoconfigurersquo for example

$gt strss7-09a8configure CC=rsquogcc-34rsquo

Installation

The following commands will download configure build check install validate uninstalland remove the package

$gt wget httpwwwopenss7orgtarballsstrss7-09a8tarbz2$gt tar -xjvf strss7-09a8tarbz2$gt mkdir build$gt pushd build$gt strss7-09a8configure --enable-autotest$gt make$gt make check$gt sudo make install$gt sudo make installcheck$gt sudo make uninstall$gt popd$gt sudo rm -rf build$gt rm -rf strss7-09a8$gt rm -f strss7-09a8tarbz2

If you have problems try building with the logging targets instead If the make of a loggingtarget fails an automatic problem report will be generated that can be mailed to TheOpenSS7 Project5 Installation steps using the logging targets proceed as follows

$gt wget httpwwwopenss7orgtarballsstrss7-09a8tarbz2$gt tar -xjvf strss7-09a8tarbz2$gt mkdir build$gt pushd build$gt strss7-09a8configure --enable-autotest$gt make compilelog$gt make checklog$gt sudo make installlog$gt sudo make installchecklog$gt sudo make uninstalllog$gt popd$gt sudo rm -rf build$gt rm -rf strss7-09a8$gt rm -f strss7-09a8tarbz2

See lsquoREADME-makersquo for additional specialized make targets

5 Please see Section 72 [Problem Reports] page 97 or the file lsquoPROBLEMSrsquo in the release directory for moreinformation on filing a proper Problem Report

12 OpenSS7 SS7 Stack

For custom applications see the lsquoINSTALLrsquo and lsquoINSTALL-strss7rsquo files or the see Chapter 6[Installation] page 47 as listed below If you encounter troubles see Chapter 7 [Trou-bleshooting] page 93 before issuing a bug report

Brief Installation Instructions

The OpenSS7 SS7 Stack package is available from the downloads area of The OpenSS7Project website using a command such as

$gt wget httpwwwopenss7orgtarballsstrss7-09a8tarbz2

Unpack the tarball using a command such as$gt tar -xjvf strss7-09a8tarbz2

The tarball will unpack into the relative subdirectory named after the package name strss7-09a8The package builds using the GNU autoconf utilities and the lsquoconfigurersquo script To buildthe package we recommend using a separate lsquobuildrsquo directory as follows

$gt mkdir build$gt cd build$gt strss7-09a8configure

In general the package configures and builds without adding any special options to thelsquoconfigurersquo script For general options to the lsquoconfigurersquo script see the GNU lsquoINSTALLrsquofile in the distribution

$gt less strss7-09a8INSTALL

For specific options to the lsquoconfigurersquo script see the lsquoINSTALL-strss7rsquo file in the distri-bution or simply execute the configure script with the lsquo--helprsquo option like so

$gt strss7-09a8configure --help

After configuring the package the package can be compiled simply by issuing the lsquomakersquocommand

$gt make

Some specialized makefile targets exists see the lsquoREADME-makersquo file in the distribution orsimply invoke the lsquohelprsquo target like so

$gt make help | less

After successfully building the package the package can be checked by invoking the lsquocheckrsquomake target like so

$gt make check

After successfully checking the package the package can be installed by invoking thelsquoinstallrsquo make target (as root) like so

$gt sudo make install

The test suites that ship with the package can be invoked after the package has been installedby invoking the lsquoinstallcheckrsquo target This target can either be invoked as root or as anormal user like so

$gt make installcheck

(Note you must add the lsquo--enable-autotestrsquo flag to lsquoconfigurersquo above for the test suitesto be invoked with lsquomake installcheckrsquo)The package can be cleanly removed by invoking the lsquouninstallrsquo target (as root)

Quick Start Guide 13

$gt sudo make uninstall

Then the build directory and tarball can be simply removed$gt cd $gt rm -rf build$gt rm -rf strss7-09a8$gt rm -f strss7-09a8tarbz2

Detailed Installation Instructions

More detailed installation instructions can be found in the Chapter 6 [Installation] page 47contained in the distribution in lsquotextrsquo lsquoinforsquo lsquohtmlrsquo and lsquopdfrsquo formats

$gt cd strss7-09a8$gt less docmanualstrss7txt$gt lynx docmanualstrss7html$gt info docmanualstrss7info$gt xpdf docmanualstrss7pdf

The lsquotextrsquo version of the manual is always available in the lsquoMANUALrsquo file in the releaseThe current manual is also always available online from The OpenSS7 Project website at

$gt lynx httpwwwopenss7orgstrss7_manualhtml

Chapter 1 Introduction 15

1 Introduction

This manual documents the design implementation installation operation and future de-velopment schedule of the OpenSS7 SS7 Stack package

11 Overview

This manual documents the design implementation installation operation and future de-velopment of the OpenSS7 SS7 Stack packageThe OpenSS7 SS7 Stack package is an SS7 SIGTRAN ISDN VoIP package for Linux thatcan be used with Linux Fast-STREAMS1 or Linux STREAMS2 It includes developmenttools header files and manual pages forbull Communications Device Interface (CDI)bull Data Link Provider Interface (DLPI)bull Network Provider Interface (NPI)bull Transport Provider Interface (TPI)bull Signalling Data Link Interface (SDLI)bull Signalling Data Terminal Interface (SDTI)bull Message Transfer Part Interface (MTPI)bull Call Control Interface (CCI)bull Transaction Interface (TRI)bull Transaction Component Interface (TCI) andbull Mobile Application Part Interface (MAPI)

Also it provides STREAMS drivers and modules for SS7 SIGTRAN ISDN and VoIPincludingbull

The OpenSS7 SS7 Stack package is essential to the development and support of SS7 andISDN networking and call control modules and drivers and provides a fundamental set ofSS7 header files and manual pages for such developmentThe OpenSS7 SS7 Stack does not provide the STREAMS components See the manualsreferenced above

12 Organization of this Manual

This manual is organized (loosely) into several sections as followsChapter 1 [Introduction] page 15 This introductionChapter 2 [Objective] page 17 Objective of the packageChapter 3 [Reference] page 19 Contents of the packageChapter 4 [Conformance] page 31 Conformance of the packageChapter 5 [Releases] page 33 Releases of the packageChapter 6 [Installation] page 47 Installation of the packageChapter 7 [Troubleshooting] page 93 Troubleshooting of the package

1 See Section ldquoAbout This Manualrdquo in Linux Fast-STREAMS (LfS) Reference Manual2 See Section ldquoAbout This Manualrdquo in Linux STREAMS (LiS) Reference Manual

16 OpenSS7 SS7 Stack

13 Conventions and Definitions

This manual uses texinfo typographic conventions

Chapter 2 Objective 17

2 Objective

Chapter 3 Reference 19

3 Reference

31 Applications

20 OpenSS7 SS7 Stack

32 SS7 Protocol Stack

The SS7 Protocol Stack consists of a number of components

Chapter 3 Reference 21

321 Signalling Data Link (SDL)

22 OpenSS7 SS7 Stack

322 Signalling Data Terminal (SDT)

Chapter 3 Reference 23

323 Signalling Link (SL)

24 OpenSS7 SS7 Stack

324 Message Transfer Part (MTP)

Chapter 3 Reference 25

325 Signalling Connection Control Part (SCCP)

26 OpenSS7 SS7 Stack

326 Transaction Capabilities Application Part (TCAP)

Chapter 3 Reference 27

327 Base Station System Application Part (BSSAP)

28 OpenSS7 SS7 Stack

33 Device Drivers

Chapter 3 Reference 29

331 Digium Drivers

30 OpenSS7 SS7 Stack

332 SeaLevel ACB56 Drivers

Chapter 4 Conformance 31

4 Conformance

Chapter 5 Releases 33

5 Releases

This is the OpenSS7 Release of the OpenSS7 SS7 Stack tools drivers and modules usedwith the Linux Fast-STREAMS or Linux STREAMS1 SVR 42 STREAMS releasesThe purpose of providing a separate release of this package was to separate the OpenSS7SS7 Stack tools headers drivers and modules from the Linux STREAMS2 package for usewith both Linux STREAMS3 and Linux Fast-STREAMS in preparation for replacement ofthe former by the laterThe following sections provide information on OpenSS7 SS7 Stack releases as well as com-patibility information of OpenSS7 release to the original GCOM releases of these modulesand drivers as well as Linux kernel compatibility

51 Prerequisites

The quickest and easiest way to ensure that all prerequisites are met is to download andinstall this package from within the OpenSS7 Master Package openss7-092G insteadof separatelyPrerequisites for the OpenSS7 SS7 Stack package are as follows1 Linux distribution somewhat Linux Standards Base compliant with a 24 or 26 kernel

and the appropriate tool chain for compiling out-of-tree kernel modules Most recentLinux distributions are usable out of the box but some development packages must beinstalled For more information see Section 52 [Compatibility] page 34

minus A fairly LSB compliant GNULinux distribution4

minus Linux 24 kernel (2410 - 2427) orminus Linux 26 kernel (263 - 2626)minus glibc2 or betterminus GNU groff (for man pages)5

minus GNU texinfo (for info files)minus GNU bison and flex (for config programs)minus net-snmp (for SNMP agents)6

(Note If you acquired strss7 a part of the OpenSS7 Master Package then the dependencieslisted below will already have been met by unpacking the master package)2 OpenSS7 Linux Fast-STREAMS streams-09247

3 OpenSS7 STREAMS Compatibility Modules strcompat-09274 OpenSS7 STREAMS XNS strxns-09275 OpenSS7 STREAMS XTITLI strxnet-09212

1 Linux STREAMS is buggy unsupported and deprecated Do not use it2 Linux STREAMS is buggy unsupported and deprecated Do not use it3 Linux STREAMS is buggy unsupported and deprecated Do not use it4 See Section 521 [GNULinux Distributions] page 34 for more information5 If you are using a Debian release please make sure to install the groff extension package (lsquogroff_extrsquo) as

it contains the refer or grefer commands necessary for including references in the manual pages6 A wide range of net-snmp releases are supported from UCD-SNMP 425 through net-snmp 547 Although at one time this package supported LiS LiS is now deprecated and unsupported

34 OpenSS7 SS7 Stack

6 OpenSS7 STREAM Network Services Library strnsl-0924 (Optional)7 OpenSS7 STREAMS Sockets strsock-0924 (Optional)8 OpenSS7 STREAMS INET strinet-09279 OpenSS7 STREAMS SCTP strsctp-0929

10 OpenSS7 STREAMS Channels strchan-092411 OpenSS7 STREAMS X25 strx25-092112 OpenSS7 STREAMS ISO striso-092413 OpenSS7 STREAMS ISDN strisdn-0924

If you need to rebuild the package from sources with modifications you will need a largerGNU tool chain as described in See Section 628 [Downloading from CVS] page 59

52 Compatibility

This section discusses compatibility with major prerequisites

521 GNULinux Distributions

OpenSS7 SS7 Stack is compatible with the following Linux distributions8

bull CentOS Enterprise Linux 34 (centos34) TBDbull CentOS Enterprise Linux 40 (centos4) TBDbull CentOS Enterprise Linux 492 (centos49) TBDbull CentOS Enterprise Linux 50 (centos5)bull CentOS Enterprise Linux 51 (centos51)bull CentOS Enterprise Linux 52 (centos52)bull Debian 30r2 Woody (deb30) TBDbull Debian 31r0a Sarge (deb31) TBDbull Debian 40r1 Etch (deb40)bull Debian 40r2 Etch (deb40)bull Debian 40r3 Etch (deb40)bull Fedora Core 1 (FC1) TBDbull Fedora Core 2 (FC2) TBDbull Fedora Core 3 (FC3) TBDbull Fedora Core 4 (FC4) TBDbull Fedora Core 5 (FC5) TBDbull Fedora Core 6 (FC6) TBDbull Fedora 7 (FC7)bull Fedora 8 (FC8)bull Fedora 9 (FC9)bull Gentoo 20061 (untested) TBD

8 Items marked as lsquoTBDrsquo are scheduled to have support deprecated That is in a future release the distributionsmarked lsquoTBDrsquo will not longer be validated before release

Chapter 5 Releases 35

bull Gentoo 20071 (untested) TBDbull Lineox 4026 (LEL4) TBDbull Lineox 4053 (LEL4) TBDbull Mandrakelinux 92 (MDK92) TBDbull Mandrakelinux 100 (MDK100) TBDbull Mandrakelinux 101 (MDK101) TBDbull Mandriva Linux LE2005 (MDK102) TBDbull Mandriva Linux LE2006 (MDK103) TBDbull Mandriva One (untested)bull RedHat Linux 72 (RH7)bull RedHat Linux 73 (RH7)bull RedHat Linux 80 (RH8) TBDbull RedHat Linux 9 (RH9) TBDbull RedHat Enterprise Linux 30 (EL3) TBDbull RedHat Enterprise Linux 4 (EL4)bull RedHat Enterprise Linux 5 (EL5)bull SuSE 80 Professional (SuSE80) TBDbull SuSE 91 Personal (SuSE91) TBDbull SuSE 92 Professional (SuSE92) TBDbull SuSE OpenSuSE (SuSEOSS) TBDbull SuSE 100 (SuSE100) TBDbull SuSE 101 (SuSE101) TBDbull SuSE 102 (SuSE102) TBDbull SuSE 103 (SuSE103) TBDbull SuSE 110 (SuSE110)bull SLES 9 (SLES9) TBDbull SLES 9 SP2 (SLES9) TBDbull SLES 9 SP3 (SLES9) TBDbull SLES 10 (SLES10)bull Ubuntu 510 (ubu510) TBDbull Ubuntu 603 LTS (ubu603) TBDbull Ubuntu 610 (ubu610) TBDbull Ubuntu 704 (ubu704) TBDbull Ubuntu 710 (ubu710)bull Ubuntu 804 (ubu804)bull WhiteBox Enterprise Linux 30 (WBEL3) TBDbull WhiteBox Enterprise Linux 4 (WBEL4) TBD

When installing from the tarball (see Section 653 [Installing the Tar Ball] page 80) thisdistribution is probably compatible with a much broader array of distributions than thoselisted above These are the distributions against which the current maintainer creates andtests builds

36 OpenSS7 SS7 Stack

522 Kernel

The OpenSS7 SS7 Stack package compiles as a Linux kernel module It is not necessaryto patch the Linux kernel to build or use the package9 Nor do you have to recompile yourkernel to build or use the package OpenSS7 packages use autoconf scripts to adapt thepackage source to your existing kernel The package builds and runs nicely against produc-tion kernels from the distributions listed above Rather than relying on kernel versions theautoconf scripts interrogate the kernel for specific features and variants to better adaptto distribution production kernels that have had patches applied over the official kernelorgsources

The OpenSS7 SS7 Stack package is compatible with 24 kernel series after 2410 and hasbeen tested up to and including 2427 It has been tested from 263 up to and including2626 (with Fedora 9 openSUSE 110 and Ubuntu 804 patchsets) Please note that yourmileage may vary if you use a kernel more recent than 26264 it is difficult to anticipatechanges that kernel developers will make in the future Many kernels in the 26 seriesnow vary widely by release version and if you encounter problems try a kernel within thesupported series

UP validation testing for kernels is performed on all supported architectures SMP valida-tion testing was initially performed on UP machines as well as on an Intel 30GHz PentiumIV 630 with HyperThreading enabled (2x) Because HyperThreading is not as independentas multiple CPUs SMP validation testing was limited Current releases have been testedon dual 18GHz Xeon HP servers (2x) as well as dual quad-core SunFire (8x) servers

It should be noted that while the packages will configure build and install against XENkernels that problems running validation test suites against XEN kernels has been reportedXEN kernels are explicitly not supported This may change at some point in the future ifsomeone really requires running OpenSS7 under a XEN kernel

523 Architectures

The OpenSS7 SS7 Stack package compiles and installs on a wide range of architecturesAlthough it is believed that the package will work on all architectures supported by theLinux kernel being used validation testing has only been performed with the followingarchitectures

bull ix86

bull x86 64

bull ppc (MPC 860)

bull ppc64

32-bit compatibility validation testing is performed on all 64-bit architectures supporting32-bit compatibility If you would like to validate an OpenSS7 package on a specific machinearchitecture you are welcome to sponsor the project with a test machine

9 At a later date it is possible to move this package into the kernel however with continued resistance toSTREAMS from within the Linux developer community this is currently unlikely

Chapter 5 Releases 37

524 Linux STREAMS

The OpenSS7 SS7 Stack package is currently compatible with Linux STREAMS10 howeverto use the OpenSS7 SS7 Stack package with LiS requires use of the OpenSS7 release packagesof LiS The OpenSS7 SS7 Stack package is compatible with the OpenSS7 LiS-2187 releasethat is available from the The OpenSS7 Project Downloads Page But do not use LiS itis buggy unsupported and deprecated Use Linux Fast-STREAMS instead

525 Linux Fast-STREAMS

The OpenSS7 SS7 Stack package is currently compatible with Linux Fast-STREAMS (LfS)The OpenSS7 SS7 Stack package is compatible with the OpenSS7 streams-0924 releasethat is available from the The OpenSS7 Project Downloads Page

53 Release Notes

The sections that follow provide information on OpenSS7 releases of the OpenSS7 SS7 Stackpackage

Major changes for release strss7-09a8

The OpenSS7 SS7 Stack package contains a wide array of SS7 drivers and components forLinux Fast-STREAMS This is the public release package which has most of the componentsremoved Subscribers and sponsors of the OpenSS7 Project have access to the full array ofcomponents

This is the eighth release of the OpenSS7 SS7 Stack strss7 package that contains SS7(Signalling System No 7) signalling stack components for Linux Fast-STREAMS Thepackage contains the necessary header files manual pages and other documentation for SS7components in a separate autoconf tarball

The release includes maintenance support for recent distributions and tool chain but alsoincludes some performance and feature upgrades and inspection bug fixes It deprecatesprevious releases Please upgrade before reporting bugs on previous releases

This release is primarily a maintenance release

Major features since the last public release are as follows

- Minor documentation corrections- Kernel module license made explicit GPL v2 And then changed back to GPL- License upgrade to AGPL Version 3- Modifications to build under Fedora lsquo26225-49rsquo kernel These changes also sup-

port lsquo26229-91fc7rsquo kernel Use IRQF_DISABLED and IRQF_SHARED instead ofdeprecated SA_INTERRUPT and SA_SHIRQ Use pci_register_driver instead of pci_module_init

- Ability to strap out major documentation build and installation primarily for embeddedtargets

- Improvements to common build process for embedded and cross-compile targets- Modifications to build under Fedora lsquo2625-45fc9rsquo and lsquo26265-45fc9rsquo kernels

10 Linux STREAMS is buggy unsupported and deprecated Do not use it

38 OpenSS7 SS7 Stack

- Updated tool chain to lsquom4-1412rsquo lsquoautoconf-263rsquo and lsquotexinfo-413rsquo- Conversion of RPM spec files to common approach for major subpackages- Updated references database for manual pages and roff documents- Build system now builds yum(8) repositories for RPMs and apt-get(8) repositories

for DEBs Installation documentation has been updated to include details of repositoryinstall sourcesref

- Added MODULE_VERSION to all modules and drivers- Corrections for recent RHAS4 kernels defining irq handler t with 3 argument function

template- Added sdl-pmod and sdt-pmod STREAMS modules and manual pages These

two STREAMS modules simluate an SDT and SDL interface connection using aSTREAMS-based pipe for testing purposes

- Added MTPI specification texinfo (info html pdf) document- Added CNAM project document The CNAM projects provides a locally attached

TCAP CNAM database front-end that performs SS7 stack functions local to the switch-ing office and queries a back-end CNAM database using IP over the Internet

- Added SDLI SDTI and SLI specifications texinfo (info html pdf) document- Added manual pages for LMI and all LMI primitives- Added manual pages for SDLI and all SDLI primitives- Added manual pages for SDTI and all SDTI primitives- Added manual pages for SLI and all SLI primitives

This is a public beta release of the package it deprecates previous releases Please upgradeto the current release before reporting bugs Please see lsquoREADME-alpharsquo in the release orSection 54 [Maturity] page 42

As with other OpenSS7 releases this release configures compiles installs and builds RPMsand DEBs for a wide range of Linux 24 and 26 RPM- and DPKG-based distributions andcan be used on production kernels without patching or recompiling the kernel

This package is publicly released under the GNU Affero General Public License Version 3The release is available as an autoconf tarball SRPM DSC and set of binary RPMs andDEBs See the downloads page for the autoconf tarballs SRPMs and DSCs For tarballsSRPMs DSCs and binary RPMs and DEBs see the strss7 package page

See httpwwwopenss7orgcodefilesstrss7-09a8ChangeLog andhttpwwwopenss7orgcodefilesstrss7-09a8NEWS in the release formore information Also see the lsquostrss7pdfrsquo manual in the release (also in htmlhttpwwwopenss7orgstrss7_manualhtml)

For the news release see httpwwwopenss7orgrel20081029_5html

Major changes for release strss7-09a7

The OpenSS7 SS7 Stack package contains a wide array of SS7 drivers and components forLinux Fast-STREAMS This is the public release package which has most of the componentsremoved Subscribers and sponsors of the OpenSS7 Project have access to the full array ofcomponents

Chapter 5 Releases 39

This is the seventh release of the OpenSS7 SS7 Stack strss7 package that contains SS7(Signalling System No 7) signalling stack components for Linux Fast-STREAMS Thepackage contains the necessary header files manual pages and other documentation for SS7components in a separate autoconf tarball

This release is primarily to support recent compilers kernels and distributions

Major features since the last public release are as follows

- Support build on openSUSE 102

- Support build on Fedora 7 with 2621 kernel

- Support build on CentOS 50 (RHEL5)

- Support build on Ubuntu 704

- Updated to gettext 0161

- Changes to support build on 2620-12307fc5 and 2620-12933fc6 kernel

- Supports build on Fedora Core 6

- Support for recent distributions and tool chains

Major changes for release strss7-09a6

The OpenSS7 SS7 Stack package contains a wide array of SS7 drivers and components forLinux Fast-STREAMS This is the public release package which has most of the componentsremoved Subscribers and sponsors of the OpenSS7 Project have access to the full array ofcomponents

This is the sixth release of the OpenSS7 SS7 Stack strss7 package that contains SS7 (Sig-nalling System No 7) signalling stack components for Linux Fast-STREAMS The packagecontains the necessary header files manual pages and other documentation for SS7 compo-nents in a separate autoconf tarball

This release is primarily to support recent compilers kernels and distributions

Major features since the last public release are as follows

- Corrected support for the DS2152213522155221542135221555 chips present inolder V400P cards (See httpwwwopenss7orgcodefilesstrss7-09a8BUGSin the release for more information)

- Support for the DS2156 chip present in recent V401PE cards (Seehttpwwwopenss7orgcodefilesstrss7-09a8BUGS in the releasefor more information)

- Corrections for timer bugs in the X400P-SS7 driver (See httpwwwopenss7orgcodefilesstrss7-09a8BUGSin the release for more information)

- Improvements to the common build environment with better support for standalonepackage builds on 24 kernels

- Support for autoconf 261 automake 110 and gettext 016

- Support for Ubuntu 610 distribution and bug fixes for i386 kernels

- The package now looks for other subpackages with a version number as unpacked byseparate tarball

40 OpenSS7 SS7 Stack

Major changes for release strss7-09a5

The OpenSS7 SS7 Stack package contains a wide array of SS7 SIGTRAN ISDN and VoIPdrivers and components for Linux Fast-STREAMS This is the public release package whichhas most of the components removed Subscribers and sponsors of the OpenSS7 Projecthave access to the full array of components

This is the fifth release of the OpenSS7 SS7 Stack strss7 package that contains SS7 (Sig-nalling System No 7) SIGTRAN (SIGnalling TRANsport) ISDN (Integrated ServicesDigital Network) and VoIP (Void over Internet Protocol) signalling stack components forLinux Fast-STREAMS The package contains the necessary header files manual pages andother documentation for SS7SIGTRANISDNVoIP components in a separate autoconftarball

This release is primarily to support recent compilers kernels and distributions and toupgrade the X400P-SS7 driver with support for the Varion V401P (Tormenta III) cardsAlso this is the first release that has ISDN SIGTRAN and VoIP components moved toseparate packages (but will still build all components)

- The X400P-SS7 driver has been upgraded to support the Varion V401P (Tormenta III)card This driver passes all validation test suites and is production grade The driverstill supports the older cards Also an autoconf style validation test suite was addedand the lsquotest-x400prsquo test case executable upgraded

- Support for most recent 2618 kernels (including Fedora Core 5 with inode diet patch-set)

- The package will now build doxygen(1) html documentation with the rsquodoxyrsquo maketarget See rsquomake helprsquo or README-make in the distribution for more information

- Now builds 32-bit compatibility libraries and tests them against 64-bit kernel modulesand drivers The lsquomake installcheckrsquo target will now automatically test both 64-bitnative and 32-bit compatibility versions one after the other on 64-bit platforms

- Added versions to all library symbols

- Many documentation updates for all OpenSS7 packages Automated release file gener-ation making for vastly improved and timely text documentation present in the releasedirectory

- Dropped support for LiS

- Package will now support extended ranges of minor devices on 26 kernels under LinuxFast-STREAMS only

- Better detection of SUSE distributions release numbers and SLES distributions sup-port for additional SuSE distributions on ix86 as well as x86_64 Added distributionsupport includes SLES 9 SLES 9 SP2 SLES 9 SP3 SLES 10 SuSE 101

- Improved compiler flag generation and optimizations for recent gcc compilers and someidiosyncratic behaviour for some distributions (primarily SUSE)

- Optimized compilation is now available also for user level programs in addition to kernelprograms Added new lsquo--with-optimizersquo option to configure to accomplish this

- Automated release file generation making for vastly improved and timely text docu-mentation present in the release directory

Chapter 5 Releases 41

- Added --disable-devel configure option to suppress building and installing devel-opment environment This feature is for embedded or pure runtime targets that do notneed the development environment (static libraries manual pages documentation)

- Added send-pr script for automatic problem report generation

Major changes for release strss7-09a-4

This release is primarily to support additional compilers (gcc 402) architectures (x86 64SMP 32-bit compatibility) recent Linux distributions (EL4 SuSE 10 LE2006 OpenSuSE)and kernels (2615)

- Changes necessary for LP64 compatible builds Changes to support 32-bit ioctlcompatibility for LP64 architectures Binary compatibility should not have beendisrupted At the same time as the ioctl32 changes TRANSPARENT ioctl supportfor most of the IO controls for the ldl(4) driver has been added

- Changes to satisfy gcc 402 compiler

- Corrections for and testing of 64-bit clean compile and test runs on x86 64 architectureSome bug corrections resulting from gcc 402 compiler warnings

- Corrected build flags for Gentoo and 2615 kernels as reported on mailing list

- Initial corrections for and testing of SMP operation on Intel 630 Hyper-Threaded SMPon x86 64 This package should now run well on N-way Xeons even with Hyper-Threading enabled

- Corrections and validation of 32-bit compatibility over 64-bit on x86 64 Should applywell to other 64-bit architectures as well

This is a public alpha release of the package

Major changes for release strss7-09a-3

This is primarily a bug fixes release and corrections resulting from testing This isa major bug fix release The previous release was largely untested This release hasbeen verified (conformance test suite passes) for operation with Linux Fast-STREAMS(lsquostreams-07a4rsquo)

With this release version numbers were changed to reflect an upstream version only tobe consistent with other OpenSS7 package releases All RPM release numbers will belsquo-1$(PACKAGE_RPMEXTRA)rsquo and all Debian release numbers will be lsquo_0rsquo If you wish toapply patches and release the package please bump up the release number and apply asuitable release suffix for your organization We leave Debian release number lsquo_1rsquo reservedfor your use so you can still bundle the source in the lsquodscrsquo file

Major changes for this release include build against Linux 26 kernels and popular distri-butions based on the 26 kernel as well as wider distribution support The package alsosupports both lsquoLiS-2181rsquo as well as lsquostreams-07arsquo on both kernels

Not publicly released

Major changes for release strss7-09a-2

Not publicly released

42 OpenSS7 SS7 Stack

Initial release strss7-09a-1

Initial autoconfRPM packaging of the strss7 releaseNot publicly released

54 Maturity

The OpenSS7 Project adheres to the following release philosophybull pre-alpha releasebull alpha releasebull beta releasebull gamma releasebull production releasebull unstable release

541 Pre-Alpha Releases

Pre-alpha releases are releases that have received no testing whatsoever Code in the releaseis not even known to configure or compile The purpose of a pre-alpha release is to makecode and documentation available for inspection only and to solicit comments on the designapproach or other characteristics of the software packagePre-alpha release packages ship containing warnings recommending that the user not evenexecute the contained code

542 Alpha Releases

Alpha releases are releases that have received little to no testing or that have been testedand contains known bugs or defects that make the package unsuitable even for testing Thepurpose for an alpha release are the same as for the pre-alpha release with the additionalpurpose that it is an early release of partially functional code that has problems that anexternal developer might be willing to fix themselves and contribute back to the projectAlpha release packages ship containing warnings that executing the code can crash machinesand might possibly do damage to systems upon which it is executed

543 Beta Releases

Beta releases are releases that have received some testing but the testing to date is notexhaustive Beta release packages do not ship with known defects All known defectsare resolved before distribution however as exhaustive testing has not been performedunknown defects may exist The purpose for a beta release is to provide a baseline for otherorganizations to participate in the rigorous testing of the packageBeta release packages ship containing warnings that the package has not been exhaustivelytested and that the package may cause systems to crash Suitability of software in thiscategory for production use is not advised by the project however as always is at thediscretion of the user of the software

544 Gamma Releases

Gamma releases are releases that have received exhaustive testing within the project butexternal testing has been minimal Gamma release packages do not ship with known defects

Chapter 5 Releases 43

As exhaustive internal testing has been performed unknown defects should be few Pleaseremember that there is NO WARRANTY on public release packagesGamma release packages typically resolve problems in previous beta releases and mightnot have had full regression testing performed Suitability of software in this categoryfor production use is at the discretion of the user of the software The OpenSS7 Projectrecommends that the complete validation test suites provided with the package be performedand pass on target systems before considering production use

545 Production Releases

Production releases are releases that have received exhaustive testing within the projectand validated on specific distributions and architectures Production release packages donot ship with known defects Please remember that there is NO WARRANTY on publicrelease packagesProduction packages ship containing a list of validated distributions and architectures Fullregression testing of any maintenance changes is performed Suitability of software in thiscategory for production use on the specified target distributions and architectures is at thediscretion of the user It should not be necessary to preform validation tests on the set ofsupported target systems before considering production use

546 Unstable Releases

Unstable releases are releases that have received extensive testing within the project andvalidated on a a wide range of distributions and architectures however is has tested un-stable and found to be suffering from critical problems and issues that cannot be resolvedMaintenance of the package has proved impossible Unstable release packages ship withknown defects (and loud warnings) Suitability of software in this category for productionuse is at the discretion of the user of the software The OpenSS7 Project recommendsthat the problems and issues be closely examined before this software is used even in anon-production environment Each failing test scenario should be completely avoided bythe application OpenSS7 beta software is more stable that software in this category

55 Bugs

551 Defect Notices

OpenSS7 SS7 Stack has unknown defects This is an alpha release Some defects couldbe harmful No validation testing whatsoever has been performed by the OpenSS7 Projecton this software The software might fail to configure or compile on some systems TheOpenSS7 Project recommends that you do not use this software for purposes other thandeveloment or evaluation and then only with great care Use at your own risk Rememberthat there is NO WARRANTY11

This software is alpha software As such it can likely crash your kernel Installation of thesoftware can irreparably mangle your header files or Linux distribution in such a way asto make it unusable Crashes could lock your system and rebooting the system might notrepair the problem You can possibly lose all the data on your system Because this software

11 See sections Disclaimer of Warranty and Limitation of Liability under [GNU Affero General Public License]page 104

44 OpenSS7 SS7 Stack

can crash your kernel the resulting unstable system could destroy computer hardware orperipherals making them unusable You could void the warranty on any system on whichyou run this software YOU HAVE BEEN WARNED

552 Known Defects

With the exception of packages not originally created by the OpenSS7 Project the OpenSS7Project software does not ship with known bugs in any release stage except pre-alphaOpenSS7 SS7 Stack had no known bugs at the time of release

553 Defect History

This section contains historical bugs that were encountered during development and theirresolutions This list serves two purposes1 It captures bugs encountered between releases during development that could possibly

reoccur (and the Moon is made of blue cheese) It therefore provides a place for usersto look if they encounter a problem

2 It provides a low overhead bug list between releases for developers to use as a lsquoTODOrsquolist

Bugs

006 2008-08-17T034223+0000The xnet library was discovered to contain a thread-safety bug caused by newerbehaviour of pthread once() causing the library to core dump when used onrecent implementations of pthreads (nptl)The xnet library is no longer normally compiled as part of the lsquostrss7rsquo packagefixed in strss7-09a8

005 2007-07-21T171502-0600It was discovered that recent kernel on RHAS4 are defining irq handler t buthave the old 3 argument function template for irq handlers The detectionlogic assumed that if irq hander t existed that the newer 2 argument functiontemplate for irq handlers were in effect This caused builds to fail on theseRHAS4 kernelsfixed in strss7-09a8rc1A check was added to the configure script to test whether the irq handler t hasthe newer 2 argument template

004 2007-03-13T233637-0600 (x400p-ss75766)Older chips were not being recognized correctly either Reflected device tableand a few missing break statements was the causefixed in strss7-09a6

003 2007-03-13T024038-0600 (x400p-ss75766)It appears that V401PE cards were almost loading (configuring mappingdownloading firmware) but were failing to configure at the final stage of theprocess (matching device id to board type) The device id for the 2155 is sup-posed to be b4 regardless of E1 or T1 but I just guess that the card is reporting

Chapter 5 Releases 45

34 instead of b4 for E1 (it might be the firmware setting or unsetting the highbit as was done for the other devices) I changed the sl x400pc driver to printerror messages when loading if such mismatches occur and set the device idsto accept 0x3X as an E1 2155 device and 0bX as a T1J1 2155 device (eventhough they are all the same)As it turns out the V401PE cards have a DS2156 chip instead of a DS2155chip The only difference is the lack of Tx fixed gain control (register 0x7d)and the DS2156 supports a UTOPIA II bus that is not used on the V401PEI changed the driver to recognize the DS2156 and skip register 0x7d when itexists The DS2156 chip will work for both V401T (D33D) and V401E (D44D)cardsfixed in strss7-09a6

002 2007-03-08T210547-0700Timers were message up (using HZ instead of milliseconds) on the X400P driverThis did not affect architectures with 1000 HZ or 1024 HZ tick clocks but 100HZ systems objectfixed in strss7-09a6

001 2007-03-05T155814-0700For some reason the package was always building and installing the lsquolibxnetrsquotexinfo document which was keeping the RPM from installing after thelsquostrxnetrsquo package This was fixed in lsquodocmanualMakefileamrsquo with theaddition of a lsquoWITH_XNETrsquo conditionalfixed in strss7-09a6

56 Schedule

Current Plan

The current plan includes the public production release of SCCP ISUP and TCAP com-ponents MTP3 has not yet been publicly released and is not currently scheduled (Imple-menting the AS-side of M3UA is taking precedence) The first public production releases ofSCCP ISUP and TCAP are planned for the end of July 2007 This will be followed by laband limitied field trial testing with a lead customer in August and production deploymentin the lead customerrsquos network in 1Q2008 Expect that over the next 8 months releases ofthis package will include major new development and validation testing as well as includingSCCP ISUP and TCAP components that have nor heretofore been publicly released

Things to Do

There is a great long list of these but here is a crack at the first onesminus Compile entire (private) package against Linux Fast-STREAMSminus Convert test programs into conformance test suites under GNU autotest This should

be straight forward matterminus Start retesting SIGTRAN components against SCTP and Linux Fast-STREAMS start-

ing with M2PAminus Start retesting SS7 Device Drivers under Linux Fast-STREAMS starting with X400P

46 OpenSS7 SS7 Stack

minus Start retesting SS7 Stack components (MTP2 MTP3 SCCP ISUP TCAP) underLinux Fast-STREAMS

minus Package a public release It has been way too long since a public release of this packageThe package has almost a million lines of code in it most of which the public has neverseen

minus Complete the SL-MUX driver and utility programsminus Complete the libslpcap library (pcap(3)) for live capture of SS7 link SDUs using

ethereal(1) or wireshark(1)

57 History

For the latest developments with regard to history of changes please see the lsquoChangeLogrsquofile in the release package

Chapter 6 Installation 47

6 Installation

61 Repositories

The OpenSS7 SS7 Stack package release can be accessed from the repositories of TheOpenSS7 Project For rpm(1) based systems the package is available in a yum(8) reposi-tory based on lsquorepomdrsquo XML and may also be accessed using zypper(8) or yast(8) Fordpkg(1) based systems the package is available in a apt(8) repository

By far the easiest (most repeatable and manageable) form for installing and using OpenSS7packages is to install packages from the yum(8) or apt(8) repositories If your distributiondoes not support yum(8) zypper(8) yast(8) or apt(8) then it is still possible to installthe RPMs or DEBs from the repositories using rpm(1) dpkg(1) or by using wget(1) andthen installing them from RPM or DEB using rpm(1) or dpkg(1) locally

If binaries are not available for your distribution or specific kernel but your distributionsupports rpm(1) or dpkg(1) the next best method for installing and using OpenSS7 pack-ages is to download and rebuild the source RPMs or DSCs from the repository This canalso be performed with yum(8) zypper(8) yast(8) apt(8) or directly using wget(1)rpm(1) or dpkg(1)

If your architecture does not support rpm(1) or dpkg(1) at all or you have special needs(such as cross-compiling for embedded targets) the final resort method is to downloadconfigure build and install from tarball In this later case the easiest way to build andinstall OpenSS7 packages from tarball is to use the tarball for the OpenSS7 Master Packageopenss7-092G

611 Repositories for YUM

To install or upgrade from the OpenSS7 lsquorepomdrsquo repositories you will need a file inyour lsquoetcyumrepodrsquo directory This file can be obtained directly from the OpenSS7repository like so

$gt REPOS=httpwwwopenss7orgreposrpms$gt wget $REPOScentos52x86_64repodataopenss7repo$gt sudo cp -f openss7repo etcyumrepod$gt sudo yum makecache

This example assumes the the distribution is lsquocentosrsquo and the distribution releaseis lsquo52rsquo and the architecture requires is lsquox86_64rsquo Another example would belsquo$REPOSi686suse110i686repodataopenss7reporsquo for using yum(8) with SUSE

Once the repository is set up OpenSS7 includes a number of virtual package definitionsthat eas the installation and removal of kernel modules libraries and utilities Downloadingconfiguring building and installation for a single-kernel distribution is as easy as

$gt sudo yum install strss7

Removing the package is as easy as

$gt sudo yum remove strss7

If you have difficulty downloading the lsquoopenss7reporsquo file edit the following informationinto the file and place it into the lsquoetcyumrepodopenss7reporsquo file

48 OpenSS7 SS7 Stack

-| [openss7]-| enabled = 1-| name = OpenSS7 Repository-| baseurl = httpwwwopenss7orgreposrpmscentos52x86_64-| gpgcheck = 1-| gpgkey = httpwwwopenss7orgpubkeyasc

Note that it is also possible to point to these repositories as an additional installation sourcewhen installing CentOS RedHat Fedora or others You will have an additional STREAMScategory from which to choose installation packagesSome additional installation real or virtual package names and the installations they ac-complish are as follows

lsquostrss7rsquoThis package can be used to install or remove the entire OpenSS7 SS7 Stackpackage When installing kernel modules will be installed automatically forthe highest version kernel on your system When removing all correspondingkernel modules will also be removed

lsquostrss7-develrsquoThis package can be used to install or remove the development components ofthe OpenSS7 SS7 Stack package When installing lsquostrss7rsquo and appropriatekernel module and kernel module development and debug packages will alsobe installed When removing the development package and all kernel moduledevelopment and debug packages will also be removed

lsquostrss7-2420-287rsquoThis package can be used to install or remove the package for a specific kernelversion When installing the lsquostrss7rsquo package will also be installed if necessaryWhen removing the last kernel module package the lsquostrss7rsquo package will alsobe removedNote that the version lsquo2420-287rsquo is just an example Use the version re-turned by lsquo$(uname -r)rsquo for the kernel for which you wish to install or removethe packages

lsquostrss7-2420-287-develrsquoThis package can be used to install or remove the development and debugpackages for a specific kernel version When installing the lsquostrss7rsquo andlsquostrss7-develrsquo packages will also be installed if necessary When removingthe development and debug for kernel modules for the last kernel thelsquostrss7-develrsquo package will also be removedNote that the version lsquo2420-287rsquo is just an example Use the version re-turned by lsquo$(uname -r)rsquo for the kernel for which you wish to install or removethe packages

For assistance with specific RPMs see Section 623 [Downloading the Binary RPM]page 51

612 Repositories for APT

For assistance with specific DEBs see Section 624 [Downloading the Debian DEB] page 54

Chapter 6 Installation 49

62 Downloading

The OpenSS7 SS7 Stack package releases can be downloaded from the downloads page ofThe OpenSS7 Project The package is available as a binary RPM (for popular architectures)a source RPM Debian binary DEB and source DSC or as a tar ball If you are using abrowsable viewer you can obtain the OpenSS7 release of strss7 from the links in thesections that followBy far the easiest (most repeatable and manageable) form for installing and using OpenSS7packages is to download and install individual packages from binary RPM or DEB If binaryRPMs or DEBs are not available for your distribution but your distribution supportsrpm(1) or dpkg(1) the next best method for installing and using OpenSS7 packages is todownload and rebuild the source RPMs or DSCsIf your architecture does not support rpm(1) or dpkg(1) at all or you have special needs(such as cross-compiling for embedded targets) the final resort method is to downloadconfigure build and install from tarball In this later case the easiest way to build andinstall OpenSS7 packages from tarball is to use the tarball for the OpenSS7 Master Packageopenss7-092G

621 Downloading with YUM

OpenSS7 repositories support yum(8) and zypper(8) in repomd XML format as well asYaST and YaST2 formatsOpenSS7 includes virtual packages that ease the installation and removal of kernel moduleslibraries and utilities Downloading configuration building and installation for a signle-kernel distribution installation is as easy as sudo yum install strss7

This and additional packages for installation are detailed as follows

lsquostrss7rsquo Install this package if you need the runtime lsquostrss7rsquo package sudo yum install strss7

This will install the lsquostrss7rsquo lsquostrss7-librsquo and lsquostrss7-KVERSIONrsquo RPMswhere lsquoKVERSIONrsquo is the highest version number kernel on your systemRemove this package if you need to remove all vestages of the lsquostrss7rsquo package

sudo yum remove strss7

This will remove the lsquostrss7rsquo lsquostrss7-librsquo lsquostrss7-develrsquolsquostrss7-KVERSIONrsquo and lsquostrss7-devel-KVERSIONrsquo RPMs for allkernels on your system

lsquostrss7-develrsquoInstall this package if you need the development lsquostrss7rsquo package

sudo yum install strss7-devel

This will install the lsquostrss7rsquo lsquostrss7-librsquo lsquostrss7-develrsquolsquostrss7-KVERSIONrsquo and lsquostrss7-devel-KVERSIONrsquo RPMs wherelsquoKVERSIONrsquo is the highest version number kernel on your systemRemove this package if you do not need development capabilities for thelsquostrss7rsquo package for any kernel

50 OpenSS7 SS7 Stack

sudo yum remove strss7-devel

This will remove the lsquostrss7-develrsquo and lsquostrss7-devel-KVERSIONrsquo RPMs forall kernels on your system

lsquostrss7-2420-287rsquoInstall this package if you need the runtime lsquostrss7rsquo for kernel versionlsquo2420-287rsquo The value lsquo2420-287rsquo is just an example For the runningkernel you can install the runtime lsquostrss7rsquo components with

sudo yum install strss7-$(uname -r)

This will install the lsquostrss7rsquo lsquostrss7-librsquo and lsquostrss7-2420-287rsquo RPMswhere lsquo2420-287rsquo is the kernel version specified

Remove this package if you no longer need the runtime lsquostrss7rsquo for kernelversion lsquo2420-287rsquo The value lsquo2420-287rsquo is just an example For therunning kernel you can remove the runtime lsquostrss7rsquo components with

sudo yum remove strss7-$(uname -r)

This will remove the lsquostrss7-2420-287rsquo and lsquostrss7-devel-2420-287rsquoRPMs where lsquo2420-287rsquo is the kernel version specified Also if this is thelast kernel for which lsquostrss7rsquo was installed the lsquostrss7rsquo lsquostrss7-librsquo andlsquostrss7-develrsquo RPMs will also be removed

Note that this is a virtual package name the actual RPMs installed or removedfrom the system is a kernel module package whose precise name will dependupon the system being used

lsquostrss7-devel-2420-287rsquoInstall this package if you need the development lsquostrss7rsquo package for kernelversion lsquo2420-287rsquo The value lsquo2420-287rsquo is just an example For therunning kernel you can install the kernel development lsquostrss7rsquo componentswith

sudo yum install strss7-devel-$(uname -r)

This will install the lsquostrss7rsquo lsquostrss7-librsquo lsquostrss7-develrsquolsquostrss7-2420-287rsquo and lsquostrss7-devel-2420-287rsquo RPMswhere lsquo2420-287rsquo is the kernel version specified

Remove this package if you no longer need the development capabilities for thelsquostrss7rsquo package for kernel version lsquo2420-287rsquo The value lsquo2420-287rsquo isjust an example For the running kernel you can remove the kernel developmentlsquostrss7rsquo components with

sudo yum remove strss7-devel-$(uname -r)

This will remove the lsquostrss7-devel-2420-287rsquo RPMs wherelsquo2420-287rsquo is the kernel version specified Also if this is the last kernel forwhich lsquostrss7rsquo was installed the lsquostrss7-develrsquo RPMs will also be removed

Note that this is a virtual package name the actual RPMs installed or removedfrom the system is a kernel module package whose precise name will dependupon the system being used

Chapter 6 Installation 51

lsquostrss7-librsquoThis package is an auxillary package that should be removed and inserted au-tomatically by yum(8) In rare instances you might need to remove or installthis package explicitly

622 Downloading with APT

OpenSS7 repositries support apt(8) repositorie digests and signatures

623 Downloading the Binary RPM

To install from binary RPM you will need several of the RPM for a complete installationBinary RPM fall into several categories To download and install a complete packagerequires the appropriate RPM from each of the several categories below as applicableSome release packages do not provide RPMs in each of the several categories

To install from Binary RPM you will need all of the following kernel independent packagesfor your architecture and one of the kernel-dependent packages from the next section

Independent RPM

Independent RPM are dependent on neither the Linux kernel version nor the STREAMSpackage For example the source package lsquostrss7-source-09a8-172noarchrpmrsquo isnot dependent on kernel nor STREAMS package

All of the following kernel and STREAMS independent RPM are required for your architec-ture Binary RPMs listed here are for example only additional binary RPMs are availablefrom the downloads site If your architecture is not available you can build binary RPMfrom the source RPM (see see Section 641 [Building from the Source RPM] page 77)

Architecture Independent

strss7-dev-09a8-172noarchrpmThe lsquostrss7-devrsquo package contains the device definitions necessary to run ap-plications programs developed for OpenSS7 SS7 Stack1

strss7-doc-09a8-172noarchrpmThe lsquostrss7-docrsquo package contains this manual in plain text postscript lsquopdfrsquoand lsquohtmlrsquo forms along with the meta-information from the lsquostrss7rsquo packageIt also contains all of the manual pages necessary for developing OpenSS7 SS7Stack applications and OpenSS7 SS7 Stack STREAMS modules or drivers

strss7-init-09a8-172noarchrpmThe lsquostrss7-initrsquo package contains the init scripts and provides thelsquopostinstrsquo scripts necessary to create kernel module preloads and modulesdefinitions for all kernel module lsquocorersquo subpackages

1 Not all distributions support the lsquodevrsquo RPM macro a case in point is the SuSE 80 distribution whichuses an older version of rpm(1) Distributions that do not support the lsquodevrsquo macro will build devices asa lsquopostrsquo operation Note also that not all release packages contain devices Only packages that provideSTREAMS character device drivers need devices and then only when the lsquospecfsrsquo or lsquodevfsdrsquo is not beingused

52 OpenSS7 SS7 Stack

strss7-source-09a8-172noarchrpmThe lsquostrss7-sourcersquo package contains the source code necessary for buildingthe OpenSS7 SS7 Stack release It includes the autoconf(1) configurationutilities necessary to create and distribute tarballs lsquorpmrsquo and lsquodebrsquolsquodscrsquo2

Architecture Dependent

strss7-devel-09a8-172i686rpmThe lsquostrss7-develrsquo package contains library archives for static compilationheader files to develop OpenSS7 SS7 Stack modules and drivers This alsoincludes the header files and static libraries required to compile OpenSS7 SS7Stack applications programs

strss7-lib-09a8-172i686rpmThe lsquostrss7-librsquo package contains the run-time shared libraries necessary torun application programs and utilities developed for the lsquostrss7rsquo package3

STREAMS-Dependent RPM

STREAMS-Dependent RPM are dependent upon the specific STREAMS package beingused either Linux STREAMS or Linux Fast-STREAMS Packages dependent uponLinux STREAMS will have lsquoLiSrsquo in the package name Packages dependent uponLinux Fast-STREAMS will have lsquostreamsrsquo in the package name Note that someSTREAMS-Dependent RPM are also Kernel-Dependent RPM as described below

One of the following STREAMS-Dependent packages is required for your architecture Ifyour architecture is not on the list you can build binary RPM from the source RPM (seesee Section 641 [Building from the Source RPM] page 77)

strss7-LiS-util-09a8-172i686rpmThe lsquostrss7-LiS-utilrsquo package provides administrative and configuration testutilities and commands associated with the OpenSS7 SS7 Stack package Be-cause this package must link a STREAMS-specific library it is a STREAMS-Dependent package Use the lsquostrss7-LiS-utilrsquo package if you have LiS in-stalled

strss7-streams-util-09a8-172i686rpmThe lsquostrss7-streams-utilrsquo package provides administrative and configura-tion test utilities and commands associated with the OpenSS7 SS7 Stack pack-age Because this package must link a STREAMS-specific library it is aSTREAMS-Dependent package Use the lsquostrss7-streams-utilrsquo package ifyou have streams installed

Kernel-Dependent RPM

Kernel-Dependent RPM are dependent on specific Linux Kernel Binary RPM releasesPackages are provided for popular released RedHat kernels Packages dependent upon Red-

2 Note that not all releases have source RPM packages Release packages that do not contain kernel modulesdo not generate a source RPM package

3 Note that not all release packages contain shared libraries and therefore not all release packages containthis package

Chapter 6 Installation 53

Hat or other kernel RPM will have the lsquo_kversionrsquo kernel package version in the packagenameOne of the following Kernel-Dependent packages is required for your architecture and kernelversion If your architecture or kernel version is not on the list you can build binary RPMfrom the source RPM (see see Section 641 [Building from the Source RPM] page 77)4

strss7-core-2420-287-09a8-172i686rpmThe lsquostrss7-corersquo package contains the loadable kernel modules that dependonly on the kernel This package is heavily tied to the kernel for which it wascompiled This particular package applies to kernel version lsquo2420-287rsquo5

strss7-info-2420-287-09a8-172i686rpmThe lsquostrss7-inforsquo package6 contains the module symbol version informationfor the lsquocorersquo subpackage above It is possible to load this subpackage andcompile modules that use the exported symbols without loading the actualkernel modules (from the lsquocorersquo subpackage above) This package is heavilytied to the kernel for which it was compiled This particular package applies tokernel version lsquo2420-287rsquo7

strss7-LiS-core-2420-287-09a8-172i686rpmThe lsquostrss7-LiS-corersquo package contains the kernel modules that providethe OpenSS7 SS7 Stack STREAMS modules and drivers This package isheavily tied to the STREAMS package and kernel for which it was compiledThis particular package applies to lsquoLiSrsquo (Linux STREAMS) on kernel versionlsquo2420-287rsquo8

strss7-streams-core-2420-287-09a8-172i686rpmThe lsquostrss7-streams-corersquo package contains the kernel modules that pro-vide the OpenSS7 SS7 Stack STREAMS modules and drivers This package isheavily tied to the STREAMS package and kernel for which it was compiledThis particular package applies to lsquostreamsrsquo (Linux Fast-STREAMS) on kernelversion lsquo2420-287rsquo9

strss7-LiS-info-2420-287-09a8-172i686rpmThe lsquostrss7-LiS-inforsquo package10 contains the module symbol version infor-mation for the lsquoLiS-corersquo subpackage above It is possible to load this sub-package and compile modules that use the exported symbols without loaded the

4 Note that on Mandrakelinux unlike other RPM kernel distributions kernel packages for the ix86 architec-tures are always placed in i586 architecture packages regardless of the true processor architecture of thekernel package lsquoconfigurersquo detects this and builds the appropriate packages

5 Note that the lsquo_kversionrsquo of lsquo2420-287rsquo is only an example Note also that only release packages thatcontain kernel modules will contain a lsquocorersquo subpackage

6 Note that only release packages that contain kernel modules and that export versioned symbols will containa lsquoinforsquo subpackage Also this subpackage is only applicable to 24 series kernels and is not necessary andnot built for 26 series kernels

7 Note that the lsquo_kversionrsquo of lsquo2420-287rsquo is only an example8 Note that the lsquo_kversionrsquo of lsquo2420-287rsquo is only an example9 Note that the lsquo_kversionrsquo of lsquo2420-287rsquo is only an example

10 Note that only release packages that contain kernel modules and that export versioned symbols will containa lsquoLiS-inforsquo subpackage

54 OpenSS7 SS7 Stack

actual kernel modules (from the lsquoLiS-corersquo subpackage above) This packageis heavily tied to the STREAMS package and kernel for which it was compiledThis particular package applies to lsquoLiSrsquo (Linux STREAMS) on kernel versionlsquo2420-287rsquo11

strss7-streams-info-2420-287-09a8-172i686rpmThe lsquostrss7-streams-inforsquo package12 contains the module symbol version in-formation for the lsquostreams-corersquo subpackage above It is possible to loadthis subpackage and compile modules that use the exported symbols withoutloaded the actual kernel modules (from the lsquostreams-corersquo subpackage above)This package is heavily tied to the STREAMS package and kernel for whichit was compiled This particular package applies to lsquostreamsrsquo (Linux Fast-STREAMS) on kernel version lsquo2420-287rsquo13

Configuration and Installation

To configure build and install the binary RPM See Section 631 [Configuring the BinaryRPM] page 62

624 Downloading the Debian DEB

To install from binary DEB you will need several of the DEB for a complete installationBinary DEB fall into several categories To download and install a complete package requiresthe appropriate DEB from each of the several categories below as applicable Some releasepackages do not provide DEBs in each of the several categories

To install from Binary DEB you will need all of the following kernel independent packagesfor your architecture and one of the kernel-dependent packages from the next section

Independent DEB

Independent DEB are dependent on neither the Linux kernel version nor the STREAMSpackage For example the source package lsquostrss7-source_09a8-0_i386debrsquo is notdependent on kernel nor STREAMS package

All of the following kernel and STREAMS independent DEB are required for your architec-ture Binary DEBs listed here are for example only additional binary DEBs are availablefrom the downloads site If your architecture is not available you can build binary DEBfrom the Debian DSC (see see Section 642 [Building from the Debian DSC] page 78)

Architecture Independent

strss7-dev 09a8-0 alldebThe lsquostrss7-devrsquo package contains the device definitions necessary to run ap-plications programs developed for OpenSS7 SS7 Stack14

11 Note that the lsquo_kversionrsquo of lsquo2420-287rsquo is only an example12 Note that only release packages that contain kernel modules and that export versioned symbols will contain

a lsquostreams-inforsquo subpackage13 Note that the lsquo_kversionrsquo of lsquo2420-287rsquo is only an example14 Note that not all release packages contain devices Only packages that provide STREAMS character device

drivers need devices and then only when the lsquospecfsrsquo or lsquodevfsdrsquo is not being used

Chapter 6 Installation 55

strss7-doc 09a8-0 alldebThe lsquostrss7-docrsquo package contains this manual in plain text postscript lsquopdfrsquoand lsquohtmlrsquo forms along with the meta-information from the lsquostrss7rsquo packageIt also contains all of the manual pages necessary for developing OpenSS7 SS7Stack applications and OpenSS7 SS7 Stack STREAMS modules or drivers

strss7-init 09a8-0 alldebThe lsquostrss7-initrsquo package contains the init scripts and provides the postinstscripts necessary to create kernel module preloads and modules definitions forall kernel module lsquocorersquo subpackages

strss7-source 09a8-0 alldebThe lsquostrss7-sourcersquo package contains the source code necessary for buildingthe OpenSS7 SS7 Stack release It includes the autoconf(1) configurationutilities necessary to create and distribute tarballs rpms and debdscs15

Architecture Dependent

strss7-devel 09a8-0 i386debThe lsquostrss7-develrsquo package contains library archives for static compilationheader files to develop OpenSS7 SS7 Stack modules and drivers This alsoincludes the header files and static libraries required to compile OpenSS7 SS7Stack applications programs

strss7-lib 09a8-0 i386debThe lsquostrss7-librsquo package contains the run-time shared libraries necessary torun application programs and utilities developed for the lsquostrss7rsquo package16

STREAMS-Dependent DEB

STREAMS-Dependent DEB are dependent upon the specific STREAMS package beingused either Linux STREAMS or Linux Fast-STREAMS Packages dependent uponLinux STREAMS will have lsquoLiSrsquo in the package name Packages dependent uponLinux Fast-STREAMS will have lsquostreamsrsquo in the package name Note that someSTREAMS-Dependent DEB are also Kernel-Dependent DEB as described below

One of the following STREAMS-Dependent packages is required for your architecture Ifyour architecture is not on the list you can build binary DEB from the Debian DSC (seesee Section 642 [Building from the Debian DSC] page 78)

strss7-LiS-util 09a8-0 i386debThe lsquostrss7-LiS-utilrsquo package provides administrative and configuration testutilities and commands associated with the OpenSS7 SS7 Stack package Be-cause this package must link a STREAMS-specific library it is a STREAMS-Dependent package Use the lsquostrss7-LiS-utilrsquo package if you have LiS in-stalled

15 Note that not all releases have source DEB packages Release packages that do not contain kernel modulesdo not generate a source DEB package

16 Note that not all release packages contain shared libraries and therefore not all release packages containthis package

56 OpenSS7 SS7 Stack

strss7-streams-util 09a8-0 i386debThe lsquostrss7-streams-utilrsquo package provides administrative and configura-tion test utilities and commands associated with the OpenSS7 SS7 Stack pack-age Because this package must link a STREAMS-specific library it is aSTREAMS-Dependent package Use the lsquostrss7-streams-utilrsquo package ifyou have streams installed

Kernel-Dependent DEB

Kernel-Dependent DEB are dependent on specific Linux Kernel Binary DEB releases Pack-ages are provided for popular released Debian kernels Packages dependent upon Debian orother kernel DEB will have the lsquo_kversionrsquo kernel package version in the package nameOne of the following Kernel-Dependent packages is required for your architecture and kernelversion If your architecture or kernel version is not on the list you can build binary DEBfrom the source DEB (see see Section 642 [Building from the Debian DSC] page 78)17

strss7-core-2420-287 09a8-0 i386debThe lsquostrss7-corersquo package contains the loadable kernel modules that dependonly on the kernel This package is heavily tied to the kernel for which it wascompiled This particular package applies to kernel version lsquo2420-287rsquo18

strss7-info-2420-287 09a8-0 i386debThe lsquostrss7-inforsquo package19 contains the module symbol version informationfor the lsquocorersquo subpackage above It is possible to load this subpackage andcompile modules that use the exported symbols without loading the actualkernel modules (from the lsquocorersquo subpackage above) This package is heavilytied to the kernel for which it was compiled This particular package applies tokernel version lsquo2420-287rsquo20

strss7-LiS-core-2420-287 09a8-0 i386debThe lsquostrss7-LiS-corersquo package contains the kernel modules that providethe OpenSS7 SS7 Stack STREAMS modules and drivers This package isheavily tied to the STREAMS package and kernel for which it was compiledThis particular package applies to lsquoLiSrsquo (Linux STREAMS) on kernel versionlsquo2420-287rsquo21

strss7-streams-core-2420-287 09a8-0 i386debThe lsquostrss7-streams-corersquo package contains the kernel modules that pro-vide the OpenSS7 SS7 Stack STREAMS modules and drivers This package isheavily tied to the STREAMS package and kernel for which it was compiled

17 Note that on Mandrakelinux unlike other DEB kernel distributions kernel packages for the ix86 architecturesare always placed in i586 architecture packages regardless of the true processor architecture of the kernelpackage lsquoconfigurersquo detects this and builds the appropriate packages

18 Note that the lsquo_kversionrsquo of lsquo2420-287rsquo is only an example Note also that only release packages thatcontain kernel modules will contain a lsquocorersquo subpackage

19 Note that only release packages that contain kernel modules and that export versioned symbols will containa lsquoinforsquo subpackage Also this subpackage is only applicable to 24 series kernels and is not necessary andnot built for 26 series kernels

20 Note that the lsquo_kversionrsquo of lsquo2420-287rsquo is only an example21 Note that the lsquo_kversionrsquo of lsquo2420-287rsquo is only an example

Chapter 6 Installation 57

This particular package applies to lsquostreamsrsquo (Linux Fast-STREAMS) on kernelversion lsquo2420-287rsquo22

strss7-LiS-info-2420-287 09a8-0 i386debThe lsquostrss7-LiS-inforsquo package23 contains the module symbol version infor-mation for the lsquoLiS-corersquo subpackage above It is possible to load this sub-package and compile modules that use the exported symbols without loaded theactual kernel modules (from the lsquoLiS-corersquo subpackage above) This packageis heavily tied to the STREAMS package and kernel for which it was compiledThis particular package applies to lsquoLiSrsquo (Linux STREAMS) on kernel versionlsquo2420-287rsquo24

strss7-streams-info-2420-287 09a8-0 i386debThe lsquostrss7-streams-inforsquo package25 contains the module symbol version in-formation for the lsquostreams-corersquo subpackage above It is possible to loadthis subpackage and compile modules that use the exported symbols withoutloaded the actual kernel modules (from the lsquostreams-corersquo subpackage above)This package is heavily tied to the STREAMS package and kernel for whichit was compiled This particular package applies to lsquostreamsrsquo (Linux Fast-STREAMS) on kernel version lsquo2420-287rsquo26

Configuration and Installation

To configure build and install the Debian DEB See Section 632 [Configuring the DebianDEB] page 63

625 Downloading the Source RPM

If you cannot obtain a binary RPM for your architecture or would like to roll you ownbinary RPM download the following source RPM

strss7-09a8-1srcrpmThis is the source RPM for the package From this source RPM it is possible tobuild binary RPM for any supported architecture and for any 24 or 26 kernelfor either Linux STREAMS or Linux Fast-STREAMS

Configuration

To configure the source RPM See Section 633 [Configuring the Source RPM] page 63

626 Downloading the Debian DSC

If you cannot obtain a binary DEB for your architecture or would like to roll your ownDEB download the following Debian DSC

22 Note that the lsquo_kversionrsquo of lsquo2420-287rsquo is only an example23 Note that only release packages that contain kernel modules and that export versioned symbols will contain

a lsquoLiS-inforsquo subpackage24 Note that the lsquo_kversionrsquo of lsquo2420-287rsquo is only an example25 Note that only release packages that contain kernel modules and that export versioned symbols will contain

a lsquostreams-inforsquo subpackage26 Note that the lsquo_kversionrsquo of lsquo2420-287rsquo is only an example

58 OpenSS7 SS7 Stack

strss7 09a8-0dscstrss7 09a8-0targz

This is the Debian DSC for the package From this Debian DSC it is possible tobuild binary DEB for any supported architecture and for any 24 or 26 kernelfor either Linux STREAMS or Linux Fast-STREAMS

Configuration

To configure the source RPM See Section 634 [Configuring the Debian DSC] page 67

627 Downloading the Tar Ball

For non-rpm(1) and non-dpkg(1) architectures download the tarball as follows

strss7-09a8targzstrss7-09a8tarbz2

These are the tar(1) balls for the release These tar(1) balls contain theautoconf(1) distribution which includes all the source necessary for buildingand installing the package These tarballs will even build Source RPM andBinary RPM on rpm(1) architectures and Debian DSC and DEB on dpkg(1)architectures

The tar ball may be downloaded easily with wget(1) as follows wget httpwwwopenss7orgstrss7-09a8tarbz2

or wget httpwwwopenss7orgstrss7-09a8targz

Note that you will need an OpenSS7 Project user name and password to download releasecandidates (which are only available to subscribers and sponsors of the OpenSS7 Project)

Unpacking the Archive

After downloading one of the tar balls unpack the archive using one of the following com-mands wget httpwwwopenss7orgstrss7-09a8targz tar -xzvf strss7-09a8targz

or wget httpwwwopenss7orgstrss7-09a8tarbz2 tar -xjvf strss7-09a8tarbz2

Either will create a subdirectory name lsquostrss7-09a8rsquo containing all of the files andsubdirectories for the strss7 package

Chapter 6 Installation 59

Configuration

To configure and install the tar ball See Section 635 [Configuring the Tar Ball] page 67

628 Downloading from CVS

If you are a subscriber or sponsor of The OpenSS7 Project with CVS archive access privilegesthen you can download release mid-release or release candidate versions of the lsquostrss7rsquopackage from the project CVS archiveThe OpenSS7 SS7 Stack package is located in the lsquostrss7rsquo module of lsquovarcvsrsquo Forrelease tag information see Chapter 5 [Releases] page 33To access the archive from the project CVS pserver use the following commands to checkout a version from the archive export CVSROOT=rsquo-dpserverusernamecvsopenss7com2401varcvsrsquo cvs loginPassword cvs co -r strss7_09a8 strss7 cvs logout

It is of course possible to check out by date or by other criteria For more informationsee cvs(1)

Preparing the CVS Working Directory

Although public releases of the lsquostrss7rsquo package do not require reconfiguration creating aconfigurable directory from the CVS archive requires tools not normally distributed withthe other releasesThe build host requires the following GNU toolsbull m4 1412

bull autoconf 263

bull automake 1101

bull libtool 224

bull gettext 017

bull flex 2533

bull bison 23

Most desktop development GNULinux distributions wil have these tools however somenon-development or server-style installations might not and they must be installed sepa-rately27

Also these tools can be acquired from the FSF website in the free software directory andalso at the following locationsbull m4-1412bull autoconf-263

27 Older version of bison (20) and the older version of flex (254a) are also suitable Where possible use themore recent bison 23 and flex 2533

60 OpenSS7 SS7 Stack

bull automake-1101bull libtool-224bull gettext-017bull flex-2533bull bison-23

It should be stressed that in particular the autoconf(1) and automake(1) must be atversion releases 263 and 1101 The versions normally distributed in some mainstreamGNULinux distributions are in fact much older than these versions28 GNU version ofthese packages configured and installed to default directories will install in lsquousrlocalrsquoallowing them to coexist with distribution installed versionsFor building documentation the build host also requires the following documentation toolsbull gs 651 or ghostscript 651 or newerbull tetex 30 or texlive 2007 or newerbull texinfo 413a or newerbull transfig 323d or newerbull imagemagick 538 or ImageMagick 538 or newerbull groff 1172 or newerbull gnuplot 37 or newerbull latex2html 162 or newer

Most desktop GNULinux distributions will have these tools however some server-styleinstallations (eg Ubuntu-server SLES 9 or Fedora 6 or 7) will not and they must beinstalled separately29

Note that texinfo 412 must not be used as it breaks the build processFor uncooked manual pages the entire groff(1) package is required on older Debian andUbuntu systems (the base package did not include grefer(1) which is used extensively byuncooked manual pages) The following will get what you need on older systems Debian apt-get install groff_extUbuntu apt-get install groff

On newer systems simply apt-get install groff

In addition the build host requires a complete tool chain for compiling for the target hostincluding kernel tools such as genksyms(8) and others

28 A notable exception is Debian and Fedora 7 Note that on Fedora 7 the gettext-devel package must beinstalled

29 In particular for CentOS Fedora 6 or 7 the tetex-latex and gnuplot packages must be loaded as wellNote also that the latex2html used to be part of the textex package (or subpackages) but is now oftenpackaged on its own Recent distributions such as SUSE 110 and Fedora 9 use the texlive package insteadof the tetex package

Chapter 6 Installation 61

If you wish to package lsquorpmsrsquo on an rpm(1) system or lsquodebsrsquo on a dpkg(1) system you willneed the appropriate tool chain Systems based on rpm(1) typically have the necessary toolchain available however dpkg(1) systems do not The following on a Debian or Ubuntusystem will get what you need apt-get install debhelper apt-get install fakeroot

To generate a configuration script and the necessary scriptlets required by the GNUautoconf(1) system execute the following commands on the working directory autoreconf -fiv strss7

where lsquostrss7rsquo is the name of the directory to where the working copy was checked outunder the previous step This command generates the lsquoconfigurersquo script and other missingpieces that are normally distributed with the release Tar Balls SRPMs and DSCs

Make sure that lsquoautoreconf --versionrsquo returns lsquo263rsquo Otherwise you may need to per-form something like the following PATH=usrlocalbin$PATH autoreconf -fiv strss7

After reconfiguring the directory the package can then be configured and built using thesame instructions as are used for the Tar Ball see Section 635 [Configuring the Tar Ball]page 67 and Section 643 [Building from the Tar Ball] page 78

Do note however that make(1) will rebuild the documentation that is normally releasedwith the package Additional tools may be necessary for building the documentationTo avoid building and installing the documentation use the lsquo--disable-develrsquo orlsquo--disable-docsrsquo option to configure described in Section 635 [Configuring the Tar Ball]page 67

When configuring the package in a working directory and while working a change-compile-test cycle that involves configuration macros or documentation I find it ofgreat advantage to invoke the GNU lsquoconfigurersquo options lsquo--enable-maintainer-modersquolsquo--enable-dependency-trackingrsquo and lsquo--disable-develrsquo The first of these threeoptions will add maintainer-specific targets to any generated lsquoMakefilersquo the second optionwill invoke automatic dependency tracking within the lsquoMakefilersquo so rebuilds after changesto macro source or documentation files will be automatically rebuilt and the last optionwill suppress rebuilding and reinstalling documentation manual pages and header filesHeader files will still be available under the lsquousrsrcrsquo directory

63 Configuration

62 OpenSS7 SS7 Stack

631 Configuring the Binary RPM

In general the binary RPM do not require any configuration however during installationit is possible to relocate some of the installation directories This allows some degree ofcustomization Relocations that are available on the binary RPM are as follows

lsquostrss7-LiS-core-2420-287-09a8-172i686rpmrsquolsquostrss7-streams-core-2420-287-09a8-172i686rpmrsquo

lsquolibmodules2420-287rsquoThis relocatable directory contains the kernel modules that providethe strss7 STREAMS core drivers and modules30

lsquostrss7-LiS-info-2420-287-09a8-172i686rpmrsquolsquostrss7-streams-info-2420-287-09a8-172i686rpmrsquo

lsquousrincludestrss72420-287rsquoThis relocatable directory contains the kernel module exportedsymbol information that allows other kernel modules to be com-piled against the correct version of the strss7 package31

lsquostrss7-dev-09a8-172i686rpmrsquo(not relocatable)

lsquostrss7-devel-09a8-172i686rpmrsquolsquousrlibrsquo

This relocatable directory contains strss7 libraries

lsquousrincludestrss7rsquoThis relocatable directory contains strss7 header files

lsquostrss7-doc-09a8-172i686rpmrsquolsquousrsharedocrsquo

This relocatable directory contains all package specific documenta-tion (including this manual) The subdirectory in this directory isthe lsquostrss7-09a8rsquo directory

lsquousrshareinforsquoThis relocatable directory contains info files (including the info ver-sion of this manual)

lsquousrsharemanrsquoThis relocatable directory contains manual pages

lsquostrss7-LiS-lib-09a8-172i686rpmrsquolsquostrss7-streams-lib-09a8-172i686rpmrsquo

lsquousrlibrsquoThis relocatable directory contains the run-time shared librariesnecessary to run applications programs and utilities developed forOpenSS7 SS7 Stack

30 Note that the lsquo_kversionrsquo of lsquo2420-287rsquo is only an example31 Note that the lsquo_kversionrsquo of lsquo2420-287rsquo is only an example Also note that the lsquoinforsquo subpackage is

only applicable to the 24 kernel series

Chapter 6 Installation 63

lsquousrsharelocalersquoThis relocatable directory contains the locale information for sharedlibrary files

lsquostrss7-source-09a8-172i686rpmrsquo

lsquousrsrcrsquoThis relocatable directory contains the source code

lsquostrss7-LiS-util-09a8-172i686rpmrsquolsquostrss7-streams-util-09a8-172i686rpmrsquo

lsquousrbinrsquoThis relocatable directory contains binary programs and utilities

lsquousrsbinrsquoThis relocatable directory contains system binary programs andutilities

lsquousrlibexecrsquoThis relocatable directory contains test programs

lsquoetcrsquo This relocatable directory contains init scripts and configurationinformation

Installation

To install the binary RPM See Section 651 [Installing the Binary RPM] page 79

632 Configuring the Debian DEB

In general the binary DEB do not require any configuration

Installation

To install the Debian DEB See Section 652 [Installing the Debian DEB] page 80

633 Configuring the Source RPM

When building from the source RPM (see Section 641 [Building from the Source RPM]page 77) the rebuild process uses a number of macros from the userrsquos lsquorpmmacrosrsquo file asdescribed in rpm(8)

Following is an example of the lsquo~rpmmacrosrsquo file that I use for rebuilding RPMS

64 OpenSS7 SS7 Stack

RPM macros for building rpms

vendor OpenSS7 Corporation

distribution OpenSS7

disturl httpwwwopenss7org

packager Brian Bidulock ltbidulockopenss7orggt

url httpwwwopenss7org

_signature gpg

_gpg_path homebriangnupg

_gpg_name openss7openss7org

_gpgbin usrbingpg

_source_payload w9bzdio

_binary_payload w9bzdio

_unpackaged_files_terminate_build 1

_missing_doc_files_terminate_build 1

_use_internal_dependency_generator 0

_repackage_all_erasures 0

_rollback_transaction_on_failure 0

configure2_5x configure

make make When building from the source RPM (see Section 641 [Building from the Source RPM]page 77) it is possible to pass a number of additional configuration options to therpmbuild(1) process

The additional configuration options are described below

Note that distributions that use older versions of rpm do not have the lsquo--withrsquo orlsquo--withoutrsquo options defined To achieve the same effect as

--with someparm=somearg

do

--define _with_someparm --with-someparm=somearg

This is a generic description of common rpmbuild(1) options Not all rpmbuild(1) optionsare applicable to all SRPMs Options that are kernel module specific are only applicable toSRPMs that build kernel modules STREAMS options are only applicable to SRPMs thatprovide or require STREAMS

--define _kversion $PACKAGE_KVERSIONSpecifies the kernel version other than the running kernel for which tobuild If _kversion is not defined when rebuilding the environmentvariable PACKAGE KVERSION is used If the environment variablePACKAGE KVERSION is not defined then the version of the runningkernel (ie discovered with lsquouname -rrsquo) is used as the target version forkernel-dependent packages This option can also be defined in an lsquorpmspecrsquofile using the macro name lsquo_kversionrsquo

Chapter 6 Installation 65

--with checks--without checks

Enable or disable preinstall checks Each packages supports a number ofpreinstall checks that can be performed by invoking the lsquocheckrsquo target withautomake(1) These currently consist of checking each kernel module forunresolved kernel symbols checking for documentation for exported kernelmodule symbols checking for documentation for exported library symbolschecking for standard options for build and installable programs checkingfor documentation for built and installable programs Normally these checksare only run in maintainer mode but can be enabled and disabled with thisoption

--with k-optimize=HOW--without k-optimize

Specify lsquoHOWrsquo optimization normal size speed or quick size compiles kernelmodules -Os speed compiles kernel modules -O3 and quick compiles kernelmodules -O0 The default is normal Use with care

--with cooked-manpages--without cooked-manpages

Some systems do not like grefer(1) references in manual pages32 This optionwill cook soelim(1) refer(1) tbl(1) and pic(1) commands from the man-ual pages and also strip groff(1) comments The default is to leave manualpages uncooked they are actually smaller that way

--with public--without public

Release public packages or private packages This option has no effect on thelsquostrss7rsquo package The default is to release public packages

--with k-debug--without k-debug

Specifies whether kernel debugging is to be performed on the build kernel mod-ules Mutually exclusive with test and safe below This has the effect ofremoving static and inline attributes from functions and invoking all debuggingmacros in the code The default is to not perform kernel debugging

--with k-test--without k-test

Specifies whether kernel testing is to be performed Mutually exclusive withdebug above and safe below This has the effect of removing static and inlineattributes from functions and invoking most debugging macros in the code Thedefault is to not perform kernel testing

32 In particular some Debian systems do not load the groff(1) extensions package and do not have grefer(1)

installed Although this is an oversight on the configuration of the particular Debian system we accomodatesuch misconfiguration with this feature

66 OpenSS7 SS7 Stack

--with k-safe--without k-safe

Specifies whether kernel saftey is to be performed Mutually exclusive withdebug and test above This has the effect of invoking some more pedanticassertion macros in the code The default is not to apply kernel safety

--with k-inline--without k-inline

Specifies whether kernel inline functions are to be placed inline This hasthe effect of adding the lsquo-finline-functionsrsquo flag to CFLAGS for compil-ing kernel modules Linux 24 kernels are normally compiled lsquo-O2rsquo whichdoes not respect the inline directive This compiles kernel modules withlsquo-finline-functionsrsquo to get closer to lsquo-O3rsquo optimization For better opti-mization controls See Section 635 [Configuring the Tar Ball] page 67

--with k-modversions--without k-modversions

Specifies whether kernel symbol versions are to be applied to symbols exportedby package kernel modules The default is to version exported module symbolsThis package does not export symbols so this option has no effect

--with devfs--without devfs

Specifies whether the build is for a device file system daemon enabled systemwith autoloading or not The default is to build for devfsd(1) autoloadingwhen CONFIG DEVFS FS is defined in the target kernel The lsquorebuildrsquo tar-get uses this option to signal to the RPM spec file that the lsquodevrsquo subpackageneed not be built This option does not appear when the package has no devices

--with devel--without devel

Specifies whether to build development environment packages such as those thatinclude header files static libraries manual pages and texinfo(1) documen-tation The default is to build development environment packages This optioncan be useful when building for an embedded target where only the runtimecomponents are desired

--with docs--without docs

Specifies whether to build and install major documentation such manual pagesand texinfo(1) documentation The default is to build and install documen-tation This option can be useful when building for an embedded target whereonly the runtime and static compile components are desired but not majordocumentation This option does not override the setting of --without devel

--with tools--without tools

Specifies whether user space packages are to be built The default is to builduser space packages This option can be useful when rebuilding for multiplearchitectures and target kernels The lsquorebuildrsquo automake(1) target uses this

Chapter 6 Installation 67

feature when rebuilding for all available architectures and kernels to rebuilduser packages once per architecture instead of once per kernel

--with modules--without modules

Specifies whether kernel modules packages are to be built The default is tobuild kernel module packages This option can be useful when rebuilding formultiple architectures and target kernels The lsquorebuildrsquo automake(1) targetuses this feature to rebuild for all available architectures and kernels

--with lis--without lis

Specifies that the package is to be rebuilt against Linux STREAMS The defaultis to automatically identify whether lsquoLiSrsquo or lsquostreamsrsquo is loaded on the buildsystem and build accordingly

--with lfs--without lfs

Specifies that the package is to be rebuilt against Linux Fast-STREAMS Thedefault is to automatically identify whether lsquoLiSrsquo or lsquostreamsrsquo is loaded on thebuild system and build accordingly

In general the default values of these options are sufficient for most purposes and no optionsneed be provided when rebuilding the Source RPMs

Build

To build from the source RPM See Section 641 [Building from the Source RPM] page 77

634 Configuring the Debian DSC

The Debian DSC can be configured by passing options in the environment variableBUILD DEBOPTIONS The options placed in this variable take the same form as thosepassed to the lsquoconfigurersquo script See Section 635 [Configuring the Tar Ball] page 67 Foran example See Section 642 [Building from the Debian DSC] page 78

Build

To build from the Debian DSC See Section 642 [Building from the Debian DSC] page 78

635 Configuring the Tar Ball

All of the normal GNU autoconf(1) configuration options and environment variables applyAdditional options and environment variables are provided to tailor or customize the buildand are described below

6351 Configure Options

This is a generic description of common lsquoconfigurersquo options that are in addition to thoseprovided by autoconf(1) automake(1) libtool(1) and gettext(1)Not all lsquoconfigurersquo options are applicable to all release packages Options that arekernel module specific are only applicable to release packages that build kernel modulesSTREAMS options are only applicable to release packages that provide or requireSTREAMS

68 OpenSS7 SS7 Stack

Following are the additional lsquoconfigurersquo options their meaning and use

--enable-checks--disable-checks

Enable or disable preinstall checks Each release package supports a numberof preinstall checks that can be performed by invoking the lsquocheckrsquo target withmake(1) These currently consist of checking each kernel module for unresolvedkernel symbols checking for documentation for exported kernel module sym-bols checking for documentation for exported library symbols checking forstandard options for build and installable programs checking for documenta-tion for built and installable programs Normally these checks are only run inmaintainer mode but can be enabled and disabled with this option

--enable-autotest--disable-autotest

Enable or disable pre- and post-installation testing Each release package sup-ports a number of autotest test suites that can be performed by invokingthe lsquoinstallcheckrsquo target with make(1) These currently consist of runninginstalled modules commands and binaries against a number of specific testcases Normally these checks are only run in maintainer mode but can beenabled and disabled with this option

--disable-compress-manpagesCompress manual pages with lsquogzip -9rsquo or lsquobzip2 -9rsquo or leave them uncom-pressed The default is to compress manual pages with lsquogzip -9rsquo or lsquobzip2 -9rsquoif a single compressed manual page exists in the target installation directory(lsquo--mandirrsquo) This disables automatic compression

--disable-publicDisable public release This option is not usable on public releases and only hasa usable effect on OpenSS7 SS7 Stack when the package is acquired from CVSIn particular the STREAMS SS7VoIPISDNSIGTRAN Stacks (strss7-09a8) release package has a large number of non-public components Speci-fying this option will cause the package to build and install all private releasecomponents in addition to the public release components This option affects allrelease packages Most release packages do not have private release components

--disable-initscriptsDisables the installation of init scripts The default is to configure and installinit scripts and their associated configuration filesAlthough the default is to install init scripts installation attempts to detect aSystem V init script configuration and if one is not found the init scripts areinstalled into the appropriate directories but the symbolic links to the run levelscript directories are not generated and the script is not invoked Therefore itis safe to leave this option unchanged even on distributions that do not supportSystem V init script layout

--disable-32bit-libsDisables the build and install of 32-bit compatibility libraries and test binarieson 64-bit systems that support 32-bit compatibility The default is to build

Chapter 6 Installation 69

and install 32-bit compatibility libraries and test binaries This option canbe usefule when configuring for an embedded target where only native sharedlibraries and binaries are desired

--disable-develDisables the installation of development environment components such asheader files static libraries manual pages and texinfo(1) documentationThe default is to install development environment components This optioncan be useful when configuring for an embedded target where only the runtimecomponents are desired or when performing a edit-compile-test cycle

--disable-docsDisables the build and installation of major documentation such manual pagesand texinfo(1) documentation The default is to build and install documen-tation This option can be useful when building for an embedded target whereonly the runtime and static compile components are desired but not major doc-umentation This option does not override the setting of lsquo--disable-develrsquo

--enable-toolsSpecifies whether user space programs and libraries are to be built and installedThe default is to build and install user space programs and libraries This optioncan be useful when rebuilding for multiple architectures and target kernelsparticularly under rpm(1) or dpkg(1) The lsquorebuildrsquo automake(1) target usesthis feature when rebuilding RPMs for all available architectures and kernelsto rebuild user packages once per architecture instead of once per kernel

--enable-modulesSpecifies whether kernel modules are to be built and installed The default is tobuild and install kernel modules This option can be useful when rebuilding formultiple architectures and target kernels particularly under rpm(1) or dpkg(1)The lsquorebuildrsquo automake(1) target uses this feature to rebuild for all availablearchitectures and kernels This option has no effect for release packages thatdo not provide kernel modules

--enable-archSpecifies whether architectural dependent package components are to be builtand installed This option can be useful when rebuilding for multiple architec-tures and target kernels particularly under dpkg(1) The default is to config-ure build and install architecture dependent package components This optionhas no effect for release packages that do not provide architecture dependentcomponents

--enable-indepSpecifies whether architecture independent package components are to be builtand installed This option can be useful when rebuilding for multiple architec-tures and target kernels particularly under dpkg(1) The default is to con-figure build and install architecture independent package components Thisoptions has no effect for release packages that do not provide architecture in-dependent components

70 OpenSS7 SS7 Stack

--enable-k-inlineEnable kernel inline functions Most Linux kernels build withoutlsquo-finline-functionsrsquo This option adds the lsquo-finline-functionsrsquo andlsquo-Winlinersquo flags to the compilation of kernel modules Use with care Thisoption has no effect for release packages that do not provide kernel modules

--enable-k-safeEnable kernel module run-time safety checks Specifies whether kernel safety isto be performed This option is mutually exclusive with lsquo--enable-k-testrsquo andlsquo--enable-k-debugrsquo below This has the effect of invoking some more pedanticassertion macros in the code The default is not to apply kernel safety Thisoption has no effect for release packages that have are no kernel modules

--enable-k-testEnable kernel module run-time testing Specifies whether kernel testing is to beperformed This option is mutually exclusive with lsquo--enable-k-safersquo aboveand lsquo--enable-k-debugrsquo below This has the effect of remove static andinline attributes from functions and invoking most non-performance affectingdebugging macros in the code The default is not to perform kernel testing Thisoption has no effect for release packages that do not provide kernel modules

--enable-k-debugEnable kernel module run-time debugging Specifies whether kernel debuggingis to be performed This option is mutually exclusive with lsquo--enable-k-safersquoand lsquo--enable-k-testrsquo above This has the effect of removing static andinline attributes from functions and invoking all debugging macros in thecode (including performance-affecting debug macros) The default is to notperform kernel debugging This option has no effect for release packages thatdo not provide kernel modules

--disable-k-modversionsDisable module versions on strss7 symbols Specifies whether kernel symbolversions are to be used on symbols exported from built strss7 modules Thedefault is to provide kernel symbol versions on all exported symbols Thisoption has no effect for release packages that do not provide kernel modules

--enable-devfs--disable-devfs

Specifies whether the build is for a device file system daemon enabled systemwith autoloading or not The default is to build for devfsd(8) autoload-ing when CONFIG DEVFS FS is defined in the target kernel The lsquoreuildrsquoautomake(1) target uses this option to signal to the RPM spec file that the lsquodevrsquosubpackage need not be built This option has no effect for release packagesthat do not provide devices

--with-gpg-user=GNUPGUSERSpecify the gpg(1) lsquoGNUPGUSERrsquo for signing RPMs and tarballs The defaultis the content of the environment variable GNUPGUSER If unspecified thegpg(1) program will normally use the user name of the account invoking thegpg(1) program For building source RPMs the RPM macro lsquo_gpg_namersquo willoverride this setting

Chapter 6 Installation 71

--with-gpg-home=GNUPGHOMESpecify the lsquoGNUPGHOMErsquo directory for signing RPMs and tarballs The defaultis the userrsquos lsquo~gpgrsquo directory For building source RPMs the RPM macrolsquo_gpg_pathrsquo will override this setting

--with-pkg-epoch=EPOCHSpecifies the epoch for the package This is neither used for rpm(1) nor dpkg(1)packages it applies to the tarball release as a whole The default is the contentsof the lsquopkgepochrsquo file in the release package source directory or if that file doesnot exist zero (0)

--with-pkg-release=RELEASESpecifies the release for the package This is neither used for rpm(1) nordpkg(1) packages it applies to the tarball release as a whole The defaultis the contents of the lsquopkgreleasersquo file in the release package source directoryor if that file does not exist one (1) This is the number after the last pointin the package version number

--with-pkg-distdir=DIRSpecifies the distribution directory for the package This is used by the main-tainer for building distributions of tarballs This is the directory into whicharchives are copied for distribution The default is the top build directory

--with-cooked-manpagesConvert manual pages to remove macro dependencies and grefer(1) refer-ences Some systems do not like grefer(1) references in manual pages33 Thisoption will cook soelim(1) refer(1) tbl(1) and pic(1) commands fromthe manual pages and also strip groff(1) comments The default is to leavemanual pages uncooked (they are actually smaller that way)

--with-rpm-epoch=PACKAGE_EPOCHSpecify the lsquoPACKAGE_EPOCHrsquo for the RPM spec file The default is to use theRPM epoch contained in the release package file lsquorpmepochrsquo

--with-rpm-release=PACKAGE_RPMRELEASESpecify the lsquoPACKAGE_RPMRELEASErsquo for the RPM lsquospecrsquo file The default is touse the RPM release contained in the release package file lsquorpmreleasersquo

--with-rpm-extra=PACKAGE_RPMEXTRASpecify the lsquoPACKAGE_RPMEXTRArsquo extra release information for the RPM specfile The default is to use the RPM extra release information contained in therelease package file lsquorpmextrarsquo Otherwise this value will be determined fromautomatic detection of the RPM distribution

--with-rpm-topdir=PACKAGE_RPMTOPDIRSpecify the lsquoPACKAGE_RPMTOPDIRrsquo top directory for RPMs If specified with anull lsquoPACKAGE_RPMTOPDIRrsquo the default directory for the RPM distribution willbe used If this option is not provided on the command line the top builddirectory will be used as the RPM top directory as well

33 In particular some Debian or Ubuntu systems do not load the groff(1) extensions package and do not havegrefer(1) installed Although this is an oversight on the configuration of the particular Debian or Ubuntusystem we accomodate such misconfiguration with this feature

72 OpenSS7 SS7 Stack

--with-deb-epoch=EPOCHSpecify the lsquoPACKAGE_DEBEPOCHrsquo for the DEB control file The default is to usethe DEB epoch contained in the release package file lsquodebepochrsquo

--with-deb-release=RELEASESpecify the lsquoPACKAGE_DEBRELEASErsquo for the DEB control file The default is touse the DEB release contained in the release package file lsquodebreleasersquo

--with-deb-topdir=DIRSpecify the lsquoPACKAGE_DEBTOPDIRrsquo top directory for DEBs If specified with anull lsquoPACKAGE_DEBTOPDIRrsquo the default directory for the DEB distribution willbe used If this option is not provided on the command line the top builddirectory will be used as the DEB top directory as well

--with-k-release=PACKAGE_KRELEASESpecify the lsquoPACKAGE_KRELEASErsquo release of the Linux kernel for which the buildis targeted When not cross compiling if this option is not set the build willbe targeted at the kernel running in the build environment (eg lsquouname -rrsquo)When cross-compiling this option must be specified or the configure script willgenerate an error and terminate

--with-k-linkage=PACKAGE_KLINKAGESpecify the lsquoPACKAGE_KLINKAGErsquo for kernel module linkage This can be one ofthe followingbull lsquoloadablersquo ndash loadable kernel modulesbull lsquolinkablersquo ndash linkable kernel objects

The default is to build loadable kernel modules

--with-k-modules=K-MODULES-DIRSpecify the lsquoK-MODULES-DIRrsquo directory to which kernel modules will be installedThe default is based on the option lsquo--with-k-releasersquo lsquo--with-k-prefixrsquoand lsquo--with-k-rootdirrsquo The default is lsquoDESTDIRrsquolsquoK-MODULES-DIRrsquo which istypically lsquoDESTDIRlibmodulesPACKAGE_KRELEASErsquo This directory is nor-mally located by the lsquoconfigurersquo script and need only be provided for specialcross-build environments or when requested by a lsquoconfigurersquo script error mes-sage

--with-k-build=K-BUILD-DIRSpecify the lsquoK-BUILD-DIRrsquo base kernel build directory in which configured kernelsource resides The default is lsquoDESTDIRK-MODULES-DIRbuildrsquo This direc-tory is normally located by the lsquoconfigurersquo script and need only be providedfor special cross-build environments or when requested by a lsquoconfigurersquo scripterror message

--with-k-source=K-SOURCE-DIRSpecify the lsquoK-SOURCE-DIRrsquo base kernel build directory in which configuredkernel source resides The default is lsquoDESTDIRK-MODULES-DIRsourcersquo Thisdirectory is normally located by the lsquoconfigurersquo script and need only be pro-vided for special cross-build environments or when requested by a lsquoconfigurersquoscript error message

Chapter 6 Installation 73

--with-k-modver=K-MODVER-FILESpecify the lsquoK-MODVER-FILErsquo kernel module versions file The default is lsquoK-BUILD-DIRModulesymversrsquo This file is normally located by the lsquoconfigurersquoscript and need only be provided for special cross-build environments or whenrequested by a lsquoconfigurersquo script error message

--with-k-sysmap=K-SYSMAP-FILESpecify the lsquoK-SYSMAP-FILErsquo kernel system map file The default is lsquoK-BUILD-DIRSystemmaprsquo This file is normally located by the lsquoconfigurersquo script andneed only be provided for special cross-build environments or when requestedby a lsquoconfigurersquo script error message

--with-k-archdir=K-ARCHDIRSpecify the lsquoK-ARCHDIRrsquo kernel source architecture specific directory The de-fault is lsquoDESTDIRK-SOURCE-DIRarchrsquo This directory is normally located bythe lsquoconfigurersquo script and need only be provided for special cross-build envi-ronments or when requested by a lsquoconfigurersquo script error message

--with-k-machdir=K-MACHDIRSpecify the lsquoK-MACHDIRrsquo kernel source machine specific directory The defaultis lsquoDESTDIRK-SOURCE-DIRtarget_cpu rsquo This directory is normally locatedby the lsquoconfigurersquo script and need only be provided for special cross-buildenvironments or when requested by a lsquoconfigurersquo script error message

--with-k-config=K-CONFIGSpecify the lsquoK-CONFIGrsquo kernel configuration file The default is lsquoBOOTconfig-K-RELEASE rsquo This configuration file is normally located by the lsquoconfigurersquoscript and need only be provided for special cross-build environments or whenrequested by a lsquoconfigurersquo script error message

--with-k-optimize=HOW--without-k-optimize

Specify lsquoHOWrsquo optimization normal size speed or quick size compiles kernelmodules -Os speed compiles kernel modules -O3 and quick compiles kernelmodules -O0 The default is normal Use with care The most common useof this option is to specify lsquo--with-k-optimize=speed --disable-k-safersquo tocompile for maximum performance Nevertheless even these setting are ricingand the resulting kernel modules will only be about 5 faster

--with-lis[=LIS-DIR]--without-lis

Specify the lsquoLIS-DIRrsquo directory in which to find LiS headers Also specifiesthat the build is to be made against Linux STREAMS The default is lsquousrincludeLiSrsquo if it exists lsquonorsquo otherwise This directory is normally located bythe lsquoconfigurersquo script and need only be provided for special cross-build envi-ronments or when requested by a lsquoconfigurersquo script error message This optionhas no effect on release packages that do not use the STREAMS subsystem

74 OpenSS7 SS7 Stack

--with-lfs[=LFS-DIR]--without-lfs

Specify the lsquoLFS-DIRrsquo directory in which to find LfS headers Also specifiesthat the build is to be made against Linux Fast-STREAMS The default islsquousrincludestreamsrsquo if it exists lsquonorsquo otherwise This directory is normallylocated by the lsquoconfigurersquo script and need only be provided for special cross-build environments or when requested by a lsquoconfigurersquo script error messageThis option has no effect on release packages that do not use the STREAMSsubsystem

--with-strconf-master=STRCONF_CONFIGSpecify the lsquoSTRCONF_CONFIGrsquo file name to which the configuration master fileis written The default is lsquoConfigmasterrsquo This option has no effect on releasepackages that do not use the STREAMS subsystem and the strconf scriptsThis option should not be specified when configuring the master package as thesetting for all add-on packages will conflict

--with-base-major=STRCONF_MAJBASEStart numbering for major devices at lsquoSTRCONF_MAJBASErsquo The default is lsquo230rsquoThis option has no effect on release packages that do not use the STREAMSsubsystem and the strconf scripts This option should not be specified whenconfiguring the master package as the setting for all add-on packages will con-flict

6352 Environment Variables

Following are additional environment variables to lsquoconfigurersquo their meaning and use

GPG GPG signature command This is used for signing distributions by the main-tainer By default lsquoconfigurersquo will search for this tool

GNUPGUSERGPG user name This is used for signing distributions by the maintainer

GNUPGHOMEGPG home directory This is used for signing distributions by the maintainer

GPGPASSWDGPG password for signing This is used for signing distributions by the main-tainer This environment variable is not maintained by the lsquoconfigurersquo scriptand should only be used on an isolated system

SOELIM Roff source elimination command soelim(1) This is only necessary when theoption lsquo--with-cooked-manpagesrsquo has been specified and lsquoconfigurersquo cannotfind the proper soelim(1) command By default lsquoconfigurersquo will search forthis tool

REFER Roff references command refer(1) This is only necessary when the optionlsquo--with-cooked-manpagesrsquo has been specified and lsquoconfigurersquo cannot find theproper refer(1) command By default lsquoconfigurersquo will search for this tool

TBL Roff table command tbl(1) This is only necessary when the optionlsquo--with-cooked-manpagesrsquo has been specified and lsquoconfigurersquo cannot findthe proper tbl(1) command By default lsquoconfigurersquo will search for this tool

Chapter 6 Installation 75

PIC Roff picture command pic(1) This is only necessary when the optionlsquo--with-cooked-manpagesrsquo has been specified and lsquoconfigurersquo cannot findthe proper pic(1) command By default lsquoconfigurersquo will search for this tool

GZIP Default compression options provided to GZIP_CMD

GZIP CMDManpages (and kernel modules) compression commands gzip(1) This is onlynecessary when the option lsquo--without-compressed-manpagesrsquo has not beenspecified and lsquoconfigurersquo cannot find the proper gzip(1) command By de-fault lsquoconfigurersquo will search for this tool

BZIP2 Default compression options provided to BZIP2_CMD

BZIP2 CMDManpages compression commands bzip2(1) This is only necessary whenthe option lsquo--without-compressed-manpagesrsquo has not been specifiedand lsquoconfigurersquo cannot find the proper bzip2(1) command By defaultlsquoconfigurersquo will search for this tool

MAKEWHATISManpages apropros database rebuild command makewhatis(8) By defaultlsquoconfigurersquo will search for this tool By default lsquoconfigurersquo will search forthis tool

CHKCONFIGChkconfig command chkconfig(8) This was used for installation of initscripts All packages now come with init_install(8) and init_remove(8)scripts used to install and remove init scripts on both RPM and Debian sys-tems

RPM Rpm command rpm(1) This is only necessary for RPM builds By defaultlsquoconfigurersquo will search for this tool

RPMBUILDBuild RPM command rpmbuild(1) This is only necessary for RPM buildsBy default lsquoconfigurersquo will search for this tool rpm(1) will be used insteadof rpmbuild(1) only if rpmbuild(1) cannot be found

DPKG Dpkg comand dpkg(1) This command is used for building Debian packagesBy default lsquoconfigurersquo will search for this tool

DPKG SOURCEDpkg-source command dpkg-source(1) This command is used for buildingDebian dsc packages By default lsquoconfigurersquo will search for this tool

DPKG BUILDPACKAGEDpkg-buildpackage command dpkg-buildpackage(1) This command is usedfor building Debian deb packages By default lsquoconfigurersquo will search for thistool

DEB BUILD ARCHDebian build architecture This variable is used for building Debian packagesThe default is the autoconf build architecture

76 OpenSS7 SS7 Stack

DEB BUILD GNU CPUDebian build cpu This variable is used for building Debian packages Thedefault is the autoconf build cpu

DEB BUILD GNU SYSTEMDebian build os This variable is used for building Debian packages The defaultis the autoconf build os

DEB BUILD GNU TYPEDebian build alias This variable is used for building Debian packages Thedefault is the autoconf build alias

DEB HOST ARCHDebian host architecture This variable is used for building Debian packagesThe default is the autoconf host architecture

DEB HOST GNU CPUDebian host cpu This variable is used for building Debian packages Thedefault is the autoconf host cpu

DEB HOST GNU SYSTEMDebian host os This variable is used for building Debian packages The defaultis the autoconf host os

DEB HOST GNU TYPEDebian host alias This variable is used for building Debian packages Thedefault is the autoconf host alias

LDCONFIGConfigure loader command ldconfig(8) Command used to configure theloader when libraries are installed By default lsquoconfigurersquo will search for thistool

DESTDIR Cross build root directory Specifies the root directory for build and installation

DEPMODBuild kernel module dependencies command depmod(8) This is used dur-ing installation of kernel modules to a running kernel to rebuild the modulesdependency database By default lsquoconfigurersquo will search for this tool

MODPROBEProbe kernel module dependencies command modprobe(8) This is used duringinstallation of kernel modules to a running kernel to remove old modules Bydefault lsquoconfigurersquo will search for this tool

LSMOD List kernel modules command lsmod(8) This is used during installation ofkernel modules to a running kernel to detect old modules for removal Bydefault lsquoconfigurersquo will search for this tool

LSOF List open files command lsof(1) This is used during installation of kernelmodules to a running kernel to detect old modules for removal Processes own-ing the old kernel modules will be killed and the module removed If the processrestarts the new module will be demand loaded By default lsquoconfigurersquo willsearch for this tool

Chapter 6 Installation 77

GENKSYMSGenerate kernel symbols command genksyms(8) This is used for generatingmodule symbol versions during build By default lsquoconfigurersquo will search forthis tool

KGENKSYMSLinux 26 generate kernel symbols command genksyms(8) This is used forgenerating module symbol version during build By default lsquoconfigurersquo willsearch for this tool

OBJDUMPObject dumping command objdump(1) This is used for listing informationabout object files By default lsquoconfigurersquo will search for this tool

NM Object symbol listing command nm(1) This is used for listing informationabout object files By default lsquoconfigurersquo will search for this tool

MODPOST CACHECache file for modpost(1) The version of the modpostsh script that ships witheach package can cache information to a cache file to speed multiple builds Thisenvironment variable is used to specify a cache file

AUTOM4TEAutom4te command autom4te(1) This is the executable used by autotestfor pre- and post-installation checks By default lsquoconfigurersquo will search forthis tool

AUTOTESTAutotest macro build command autom4te(1) This is the executable used byautotest for pre- and post-installation checks By default lsquoconfigurersquo willsearch for this tool

6353 Build

To build from the tar ball See Section 643 [Building from the Tar Ball] page 78

64 Building

641 Building from the Source RPM

If you have downloaded the necessary source RPM (see Section 625 [Downloading theSource RPM] page 57) then the following instructions will rebuild the binary RPMs onyour system Once the binary RPMs are rebuilt you may install them as described above(see Section 651 [Installing the Binary RPM] page 79)The source RPM is rebuilt to binary RPMs as follows wget httpwwwopenss7orgrpmsSRPMSstrss7-09a8-1srcrpm rpmbuild --rebuild -vv strss7-09a8-1srcrpm

The rebuild process can also recognize a number of options that can be used to tweak theresulting binaries See Section 633 [Configuring the Source RPM] page 63 These optionsare provided on the rpm(1) command line For example

78 OpenSS7 SS7 Stack rpmbuild --rebuild -vv --target athlon-redhat-linux

--define _kversion 2420-287 --with lfs -- strss7-09a8-1srcrpm

will rebuild binary RPM for the lsquo2420-287rsquo kernel for the lsquoathlonrsquo architecture againstthe Linux Fast-STREAMS STREAMS package34

Installation

To install the resulting binary RPM See Section 651 [Installing the Binary RPM] page 79

642 Building from the Debian DSC

If you have downloaded the necessary Debian DSC (see Section 626 [Downloading theDebian DSC] page 57) then the following instructions will rebuild the binary DEBs onyour system Once the binary DEBs are rebuilt you may install them as described above(see Section 652 [Installing the Debian DEB] page 80)The Debian DSC is rebuilt to binary DEBs as follows wget httpwwwopenss7orgdebianstrss7_09a8-0dsc wget httpwwwopenss7orgdebianstrss7_09a8-0targz dpkg-buildpackage -v strss7_09a8-0dsc

The rebuild process can also recognize a number of options that can be used to tweak theresulting binaries See Section 634 [Configuring the Debian DSC] page 67 These optionsare provided in the environment variable BUILD DPKGOPTIONS and have the same formas the options to lsquoconfigurersquo See Section 635 [Configuring the Tar Ball] page 67 Forexample BUILD_DEBOPTIONS=rsquo

--with-lfs--with-k-release=2420-287--host=athlon-debian-linux-gnursquo

dpkg-buildpackage -v strss7_09a8-0dsc

will rebuild binary DEB for the lsquo2420-287rsquo kernel for the lsquoathlonrsquo architecture againstthe Linux Fast-STREAMS STREAMS package35

Installation

To install the resulting binary DEB See Section 652 [Installing the Debian DEB] page 80

643 Building from the Tar Ball

If you have downloaded the tar ball (see Section 627 [Downloading the Tar Ball] page 58)then the following instructions will rebuild the package on your system (Note that thebuild process does not required root privilege)

34 Note that the lsquo_kversionrsquo of lsquo2420-287rsquo is only an example35 Note that the lsquo_kversionrsquo of lsquo2420-287rsquo is only an example

Chapter 6 Installation 79

6431 Native Build

Following is an example of a native build against the running kernel wget httpwwwopenss7orgstrss7-09a8tarbz2 tar -xjvf strss7-09a8tarbz2 pushd strss7-09a8 configure make popd 6432 Cross-Build

Following is an example for a cross-build The kernel release version must always be specifiedfor a cross-build36 If you are cross-building specify the root for the build with environmentvariable DESTDIR The cross-compile host must also be specified if different from thebuild host Either the compiler and other tools must be in the usual places where GNUautoconf(1) can find them or they must be specified with declarations such as lsquoCC=usrlibppc-linuxgccrsquo on the lsquoconfigurersquo command line wget httpwwwopenss7orgstrss7-09a8tarbz2 tar -xjvf strss7-09a8tarbz2 pushd strss7-09a8 configure DESTDIR=someotherroot --with-k-release=2418 --host sparc-linux make popd 65 Installing

651 Installing the Binary RPM

If you have downloaded the necessary binary RPMs (see Section 623 [Downloading the Bi-nary RPM] page 51) or have rebuilt binary RPMs using the source RPM (see Section 641[Building from the Source RPM] page 77) then the following instructions will install theRPMs on your system For additional information on rpm(1) see rpm(8) pushd RPMSi686 rpm -ihv strss7--09a8-172i686rpm

You must have the correct binary RPMs downloaded or built for this to be successfulSome of the packages are relocatable and can have final installation directories altered withthe lsquo--relocatersquo option to rpm(1) see rpm(8) For example the following will relocatethe documentation and info directories

36 Because it is a cross-build the kernel version on the build machine is unlikely to be the kernel version ofthe target machine except by coincidence

80 OpenSS7 SS7 Stack pushd RPMSi686 rpm -ihv

--relocate rsquousrsharedoc=usrlocalsharedocrsquo --relocate rsquousrshareinfo=usrlocalshareinforsquo -- strss7-doc-09a8-172i686rpm

The previous example will install the lsquostrss7-docrsquo package by will relocate the documen-tation an info directory contents to the lsquousrlocalrsquo version

652 Installing the Debian DEB

If you have downloaded the necessary Debian DEBs (see Section 624 [Downloading the De-bian DEB] page 54) or have rebuild binary DEBs using the Debian DSC (see Section 642[Building from the Debian DSC] page 78) then the following instructions will install theDEBs on your system For additional information see dpkg(8) pushd debian dpkg -iv strss7-_09a8-0_deb

You must have the correct lsquodebrsquo files downloaded or build for this to be successful

653 Installing the Tar Ball

After the build process (see Section 643 [Building from the Tar Ball] page 78) installationonly requires execution of one of two automake(1) targets

lsquomake installrsquoThe lsquoinstallrsquo automake(1) target will install all the components of the pack-age Root privilege is required to successfully invoke this target

lsquomake install-striprsquoThe lsquoinstall-striprsquo automake(1) target will install all the components of thepackage but will strip unnecessary information out of the objects and compressmanual pages Root privilege is required to successfully invoke this target

66 Removing

661 Removing the Binary RPM

To remove an installed version of the binary RPMs (whether obtained from the OpenSS7binary RPM releases or whether created by the source RPM) execute the following com-mand rpm -evv lsquorpm -qa | grep rsquo^strss7-rsquolsquo

For more information see rpm(1)

662 Removing the Debian DEB

To remove and installed version of the Debian DEB (whether obtained from the OpenSS7binary DEB releases or whether created by the Debian DSC) execute the following com-mand

Chapter 6 Installation 81 dpkg -ev lsquodpkg -l | grep rsquo^strss7-rsquolsquo

For more information see dpkg(8)

663 Removing the Source RPM

To remove all the installed binary RPM build from the source RPM see Section 661[Removing the Binary RPM] page 80 Then simply remove the binary RPM package filesand source RPM file A command such as find -name rsquostrss7-rpmrsquo -type f -print0 | xargs --null rm -f

should remove all lsquostrss7rsquo RPMs from your system

664 Removing the Debian DSC

To remove all the installed binary DEB build from the Debian DSC see Section 662[Removing the Debian DEB] page 80 Then simply remove the binary DEB package filesand Debian DSC file A command such as find ( -name rsquostrss7-debrsquo

-o -name rsquostrss7-dscrsquo -o -name rsquostrss7-tar ) -type f -print0 | xargs --null rm -f

should remove all lsquostrss7rsquo DEBs DSCs and TARs from your system

665 Removing the Tar Ball

To remove a version installed from tar ball change to the build directory where the packagewas built and use the lsquouninstallrsquo automake(1) target as follows cd usrsrcstrss7 make uninstall cd rm -fr strss7-09a8 rm -f strss7-09a8targz rm -f strss7-09a8tarbz2

If you have inadvertently removed the build directory and therefore no longer have aconfigured directory from which to execute lsquomake uninstallrsquo then perform all of the stepsfor configuration and installation (see Section 653 [Installing the Tar Ball] page 80) exceptthe final installation and then perform the steps above

67 Loading

671 Normal Module Loading

When OpenSS7 SS7 Stack installs modules and drivers belonging to release packages arenormally configured for demand loading The lsquoinstallrsquo and lsquoinstall-striprsquo automake(1)

82 OpenSS7 SS7 Stack

targets will make the necessary changes to the lsquoetcmodulesconfrsquo file and place the mod-ules in an appropriate place in lsquolibmodules2420-287strss7rsquo The lsquomake installrsquoprocess should have copied the kernel module files lsquostreams-orsquo to the directory lsquolibmodules2420-287strss7rsquo This means that to load any of these modules you cansimply execute for example lsquomodprobe stream-somedriver rsquo37

6711 Linux Fast-STREAMS Module Loading

The lsquostrss7rsquo demand load system supports both the old kerneld and the new kmod mech-anisms for demand loading kernel modules

The convention for lsquostrss7rsquo kernel loadable object files is

bull Their name start with streams-

bull They are placed in lsquolibmodules2420-287streamsrsquo where lsquo2420-287rsquo isan example kernel version

If your kernel has been built using the lsquokerneldrsquo daemon then lsquostrss7rsquo kernel moduleswill automatically load as soon as the STREAMS module is pushed or the driver is openedThe lsquomake installrsquo process makes the necessary changes to the lsquoetcmodulesconfrsquo fileAfter the install you will see lines like the following added to your lsquoetcmodulesconfrsquofile prune modulesstrss7if -f libmoduleslsquouname -rlsquomodulesstrss7include libmoduleslsquouname -rlsquomodulesstrss7endif

which will provide for demand loading of the modules if they have been built and installedfor the running kernel The lsquolibmoduleslsquouname -rlsquomodulesstrss7rsquo file looks likethis alias char-major-245 streams-some_driver

alias char-major-246 streams-other_driver Note that STREAMS modules are not listed in this file but will be loaded by name usinglsquokerneldrsquo if available

Linux Fast-STREAMS has a wider range of kernel module loading mechanisms than isprovided by the deprecated LiS For mechanisms used for kernel module loading underLinux Fast-STREAMS See Section ldquoToprdquo in Linux Fast-STREAMS Reference Manual

6712 Linux STREAMS Module Loading

LiS is deprecated and this section has been deleted

68 Maintenance

37 Note that the lsquo_kversionrsquo of lsquo2420-287rsquo is only an example

Chapter 6 Installation 83

681 Makefile Targets

automake(1) has many targets not all of which are obvious to the casual user In additionOpenSS7 automake(1) files have additional rules added to make maintaining and releasinga package somewhat easier This list of targets provides some help with what targets can beinvoked what they do and what they hope to achieve The available targets are as follows

6811 User Targets

The following are normal targets intended to be invoked by installers of the package Theyare concerned with compiling checking the compile installing checking the installationand removing the package

lsquo[all]rsquo This is also the default target It compiles the package and all release packagesselected by lsquoconfigurersquo This is performed after configuring the source withlsquoconfigurersquo A lsquoMakefilersquo stub is provided so that if the package has not hadautoreconf(1) run (such as when checked out from CVS the package willattempt to run lsquoautoreconf -fivrsquoAll OpenSS7 Project packages are configured without maintainer mode andwithout dependency tracking by default This speeds compilation of the packagefor one-time builds This also means that if you are developing using the sourcepackage (edit-compile-test cycle) changes made to source files will not causethe automatic rebuilding due to dependencies There are two ways to enabledependency tracking specify lsquo--enable-maintainer-modersquo to lsquoconfigurersquo orspecify lsquo--enable-dependency-trackingrsquo to lsquoconfigurersquo I use the formerduring my edit-compile-test cycleThis is a standard GNU automake(1) makefile target This target does notrequire root privilege

lsquocheckrsquo All OpenSS7 Project release packages provide check scripts for the check targetThis step is performed after compiling the package and will run all of the lsquocheckrsquoprograms against the compiled binaries Which checks are performed dependson whether lsquo--enable-maintainer-modersquo was specified to lsquoconfigurersquo If inmaintainer mode checks that assist with the release of the package will berun (such as checking that all manual pages load properly and that they haverequired sections) We recommend running the check stage before installingbecause it catches problems that might keep the installed package from func-tioning properlyAnother way to enable the greater set of checks without invoking maintainermode is to specify lsquo--enable-checksrsquo to lsquoconfigurersquo For more informationsee Section 711 [Pre-installation Checks] page 93This is a standard GNU automake(1) makefile target although the functionsperformed are customized for the OpenSS7 Project This target does not requireroot privilege

lsquoinstallrsquolsquoinstall-striprsquo

The lsquoinstallrsquo target installs the package by installing each release packageThis target also performs some actions similar to the pre- and post-install scripts

84 OpenSS7 SS7 Stack

used by packaging tools such as rpm(1) or dpkg(1) The lsquoinstall-striprsquotarget strips unnecessary symbols from executables and kernel modules beforeinstallingThis is a standard GNU automake(1) makefile target This target requiresroot privilege

lsquoinstallcheckrsquoAll OpenSS7 Project packages provide test scripts for the lsquoinstallcheckrsquo tar-get Test scripts are created and run using autotest (part of the autoconf(1)package) Which test suites are run and how extensive they are depends onwhether lsquo--enable-maintainer-modersquo was specified to lsquoconfigurersquo When inmaintainer mode all test suites will be run When not in maintainer modeonly a few post-install checks will be performed but the test suites themselveswill be installed in lsquousrlibexecstrss7rsquo38 for later useThis is a standard GNU automake(1) makefile target This target might re-quire root privilege Tests requiring root privilege will be skipped when run asa regular user Tests requiring regular account privileges will be skipped whenrun as root

lsquoretestrsquo To complement the lsquoinstallcheckrsquo target above all OpenSS7 Project pack-ages provide the lsquoretestrsquo target as a means to rerun failed conformance testsuite test cases The lsquoretestrsquo target is provided because some test cases in thetest suites have delicate timing considerations that allow them to fail sporadi-cally Invoking this target will retest the failed cases until no cases that are notexpected failures remainThis is an OpenSS7 Project specific makefile target As with lsquoinstallcheckrsquothis target might require root privilege Tests requiring root privilege will beskipped when run as a regular user Tests requiring regular account privilegeswill be skipped when run as root

lsquouninstallrsquoThis target will reverse the steps taken to install the package This target alsoperforms pre- and post- erase scripts used by packaging tools such as rpm ordpkg You need to have a configured build directory from which to execute thistarget however you do not need to have compiled any of the files in that builddirectory39

The lsquouninstallrsquo target unfortunately removes add-on packages in the sameorder in which they were installed This is not good for the OpenSS7 MasterPackage where the lsquoremoversquo target should be used insteadThis is a standard GNU automake(1) makefile target This target requiresroot privilege

lsquoremoversquo This target is like lsquouninstallrsquo with the exception that it removes add-on pack-ages in the reverse order that installation was performed40

38 lsquousrlibexecstrss7rsquo is just an example the actual location is lsquo$libexecdir$PACKAGErsquo which variesfrom distribution to distribution (as some distributions such as Mandriva do not have a libexec directory)

39 Therefore it is possible to download the package configure it and then uninstall it This is handy if youdo not have the sources used to build and install the package immediately available

40 This is useful from the OpenSS7 Master Package

Chapter 6 Installation 85

This is an OpenSS7 Project specific makefile target This target requires rootprivilege

6812 Maintainer Targets

The following targets are targets intended for use by maintainers of the package or those re-sponsible for release and packaging of a derivative work of the package Some of these targetsare only effective when maintainer mode has been invoked (lsquo--enable-maintainer-modersquospecified to lsquoconfigurersquo)

lsquodistrsquo Creates a distribution package (tarball) in the top level build direc-tory OpenSS7 Project packages distribute two archives a lsquogzip tarrsquoarchive and a lsquobzip tarrsquo archive These archives will have the namelsquostrss7-09a8targzrsquo and lsquostrss7-09a8tarbz2rsquo

This is a standard GNU automake(1) makefile target This target does notrequire root privilege

lsquodistcheckrsquoThis target is intended for use when releasing the package It creates the tar(1)archives above and then unpacks the tarball in a source directory configures in aseparate build directory compiles the package installs the package in a separateinstall directory tests the install package to ensure that some components workand finally uses the unpacked source tree to build another tarball If you haveadded or removed files from the package this is a good way to ensure thateverything is still stable for release

This is a standard GNU automake(1) makefile target This target does notrequire root privilege

6813 Clean Targets

lsquomostlycleanrsquoCleans out most of the files from the compile stage This target is helpful if youhave not enabled dependency tracking and need to recompile with changes

This is a standard GNU automake(1) makefile target This target does notrequire root privilege

lsquocleanrsquo Cleans all the files from the build directory generated during the lsquomake [all]rsquophase It does not however remove files from the directory left there from thelsquoconfigurersquo run Use the lsquodistcleanrsquo target to remove those too

This is a standard GNU automake(1) makefile target This target might re-quire root privilege if the lsquoinstallcheckrsquo target or the testsuite was invokedwith root privilege (leaving files belonging to root)

lsquodistcleanrsquoThis target cleans out the directories left behind by lsquodistcheckrsquo and removesall the lsquoconfigurersquo and generated files from the build directory This willeffectively remove all the files in the build directory with the except of filesthat belong to you or some other process

86 OpenSS7 SS7 Stack

This is a standard GNU automake(1) makefile target This target might re-quire root privilege if the lsquoinstallcheckrsquo target or the testsuite was invokedwith root privilege (leaving files belonging to root)

lsquomaintainer-cleanrsquoThis target not only removes files from the build directory it removes generatedfiles from the source directory as well Care should be taken when invoking thistarget because it removes files generated by the maintainer and distributed withthe archive that might require special tools to regenerate These special toolsmight only be available to the maintainer41 It also means that you probablyneed a full blown Linux system to rebuild the package For more informationsee Section 628 [Downloading from CVS] page 59This is a standard GNU automake(1) makefile target This target might re-quire root privilege if the lsquoinstallcheckrsquo target or the testsuite was invokedwith root privilege (leaving files belonging to root)

lsquocheck-cleanrsquoThis target removes log files left behind by the lsquocheckrsquo target By default thecheck scripts append to log files in the top level build directory This targetcan be used to clean out those log files before the next runThis is an OpenSS7 Project specific makefile target This target does not requireroot privilege

6814 Manual Page Targets

The following targets are used to build install and uninstall just the manual pages from thedistribution These targets are good for creating a distribution of just the manual pagesWhen building atop multiple packages these targets recurse down through each package

lsquomansrsquo Build all of the manual pages This involves performing parametersubstitution on manual pages and optionally cooking the manual pages iflsquo--with-cooked-manpagesrsquo was requested during configuration

lsquoinstall-mansrsquoInstalls the manual pages under DESTDIR Specify DESTDIR to place themanual pages wherever you see fit If DESTDIR is not specified on the com-mand line the manual pages will be installed in the normal installation direc-tory

lsquouninstall-mansrsquoUninstalls the manual pages from DESTDIR Specify DESTDIR to indicatewhere to remove the manual pages from If DESTDIR is not specified on thecommand line the manual pages will be removed from the normal installationdirectory

6815 Release Targets

The following are targets used to generate complete releases into the package distributiondirectory These are good for unattended and NFS builds which is what I use them for

41 Theoretically this is true however the OpenSS7 Project does not use any maintainer programs that are notgenerally available (ie open source)

Chapter 6 Installation 87

Also when building from atop multiple packages these targets also recurse down througheach package

lsquoreleasersquo Build all of the things necessary to generate a release On an rpm(1) systemthis is the distribution archives the source rpm and the architecture dependentand architecture independent binary rpms All items are placed in the packagedistribution directory that can be specified with the lsquo--with-pkg-distdir=DIRrsquooption to lsquoconfigurersquo

This is an OpenSS7 Project specific makefile target This target does not requireroot privilege

lsquoforced-releasersquoThe lsquoreleasersquo target will not regenerate any files that already exist in thepackage distribution directory This forced target will

This is an OpenSS7 Project specific makefile target This target does not requireroot privilege

lsquorelease-signrsquoYou will be prompted for a password unless to specify it to make with theGNUPGPASS variable For unattended or non-interactive builds with signingyou can do that as lsquomake GNUPGPASS=mypasswd release-signrsquo

This is an OpenSS7 Project specific makefile target This target does not requireroot privilege

lsquoforced-release-signrsquoThe lsquorelease-signrsquo target will not regenerate any files that already exist inthe package distribution directory This forced target will

This is an OpenSS7 Project specific makefile target This target does not requireroot privilege

lsquorelease-cleanrsquoThis target will remove all distribution files for the current package from thepackage distribution directory

This is an OpenSS7 Project specific makefile target This target does not requireroot privilege

6816 Logging Targets

For convenience to log the output of a number of targets to a file log targets are definedThe log file itself is used as the target to make but make invokes the target minus a lsquologrsquosuffix So for example to log the results of target lsquofoorsquo invoke the target lsquofoologrsquo Theonly target that this does not apply to is lsquocompilelogrsquo When you invoke the targetlsquocompilelogrsquo a simple automake(1) is invoked and logged to the file lsquocompilelogrsquo Thelsquofoologrsquo rule applies to all other targets This does not work for all targets just a selectedfew42 Following are the logging targets

42 Note that because logging targets invoke a pipe automake(1) does not return the correct return status(always returns success if the tee(1) operation is successful) Therefore these targets should not be invokedby scripts that need to use the return value from automake(1)

88 OpenSS7 SS7 Stack

Common Logging Targets

Common logging targets correspond to normal user automake(1) makefile targets as follows

lsquocompilelogrsquoThis is an OpenSS7 Project specific makefile target but it invokes the standardGNU automake(1) makefile target lsquo[all]rsquo

lsquochecklogrsquoThis is an OpenSS7 Project specific makefile target but it invokes the standardGNU automake(1) makefile target lsquocheckrsquo

lsquoinstalllogrsquoThis is an OpenSS7 Project specific makefile target but it invokes the standardGNU automake(1) makefile target lsquoinstallrsquo

lsquoinstallchecklogrsquoThis is an OpenSS7 Project specific makefile target but it invokes the standardGNU automake(1) makefile target lsquoinstallcheckrsquo

lsquouninstalllogrsquoThis is an OpenSS7 Project specific makefile target but it invokes the standardGNU automake(1) makefile target lsquouninstallrsquo

lsquoremovelogrsquoThis is an OpenSS7 Project specific makefile target that invokes the OpenSS7Project lsquoremoversquo target

Maintainer Logging Targets

Maintainer logging targets correspond to maintainer mode automake(1) makefile targetsas follows

lsquodistlogrsquoThis is an OpenSS7 Project specific makefile target but it invokes the standardGNU automake(1) makefile target lsquodistrsquo

lsquodistchecklogrsquoThis is an OpenSS7 Project specific makefile target but it invokes the standardGNU automake(1) makefile target lsquodistcheckrsquo

lsquosrpmlogrsquoThis is an OpenSS7 Project specific makefile target that invokes the OpenSS7Project lsquosrpmrsquo target

lsquorebuildlogrsquoThis is an OpenSS7 Project specific makefile target that invokes the OpenSS7Project lsquorebuildrsquo target

lsquoresignlogrsquoThis is an OpenSS7 Project specific makefile target that invokes the OpenSS7Project lsquoresignrsquo target

lsquoreleaselogrsquoThis is an OpenSS7 Project specific makefile target that invokes the OpenSS7Project lsquoreleasersquo target

Chapter 6 Installation 89

lsquorelease-signlogrsquoThis is an OpenSS7 Project specific makefile target that invokes the OpenSS7Project lsquorelease-signrsquo target

If you want to add one simply add it to LOGGING TARGETS in lsquoMakefileamrsquo

6817 Problem Report Targets

To ease problem report generation all logging targets will automatically generate a problemreport suitable for mailing in the file lsquotargetprrsquo for target lsquotargetlogrsquo This problemreport file is in the form of an email and can be sent using the included send-pr script orby invoking the lsquosend-prrsquo makefile targetThere are two additional problem report targets

lsquoprrsquo The lsquoprrsquo target is for independently generating a problem report outside of thebuild or installation process The target will automatically generate a problemreport skeleton suitable for editing and mailing in the file lsquoproblemprrsquo Thisproblem report file is in the form of an email and can be edited and sent directlyor sent using the included send-pr script or by invoking the lsquosend-prrsquo targetThis is an OpenSS7 Project specific makefile target This target does not requireroot privilege

lsquosend-prrsquo The lsquosend-prrsquo target is for finalizing and mailing a problem report generatedeither inside or outside the build and installation process The target will au-tomatically finalize and mail the lsquoproblemprrsquo problem report if it has changedsince the last time that lsquosend-prrsquo was invokedThis is an OpenSS7 Project specific makefile target This target does not requireroot privilege (unless the problem report file was generated as root)

6818 Release Archive Targets

The following targets are used to generate and clean distribution archive and signature filesWhereas the lsquodistrsquo target affects archives in the top build directory the lsquorelease-archiversquotargets affects archives in the package distribution directory (either the top build directoryor that specified with lsquo--with-pkg-distdir=DIRrsquo to lsquoconfigurersquo)You can change the directory to which packages are distributed by using thelsquo--with-pkg-distdir=DIRrsquo option to lsquoconfigurersquo The default directory is the top builddirectory

lsquorelease-archivesrsquoThis target creates the distribution archive files if they have not already beencreated This not only runs the lsquodistrsquo target but also copies the files to thedistribution directory which by default is the top build directoryThe files generated are namedlsquostrss7-09a8targzrsquo and lsquostrss7-09a8tarbz2rsquoYou can change this distribution directory with the lsquo--with-pkg-distdirrsquo op-tion to lsquoconfigurersquo See lsquoconfigure --helprsquo for more details on optionsThis is an OpenSS7 Project specific makefile target This target does not requireroot privilege

90 OpenSS7 SS7 Stack

lsquorelease-sign-archivesrsquoThis target is like lsquorelease-archivesrsquo except that it also signs the archivesusing a GPG detached signature You will be prompted for a password unlessyou pass the GNUPGPASS variable to make For automated or unattendedbuilds pass the GNUPGPASS variable like solsquomake GNUPGPASS=mypasswd release-sign-archivesrsquoSignature files will be namedlsquostrss7-09a8targzascrsquo and lsquostrss7-09a8tarbz2ascrsquoThese files will be moved to the package distribution directory with the plaintext archivesThis is an OpenSS7 Project specific makefile target This target does not requireroot privilege

lsquorelease-clean-archivesrsquoThis target will clean the release archives and signature files from the packagedistribution directoryThis is an OpenSS7 Project specific makefile target This target does not requireroot privilege

6819 RPM Build Targets

On rpm(1) systems or systems sporting rpm packaging tools the following targets are usedto generate rpm(1) release packages The epoch and release number can be controlled by thecontents of the lsquorpmepochrsquo and lsquorpmreleasersquo files or with the lsquo--with-rpm-epoch=EPOCHrsquoand lsquo--with-rpm-release=RELEASErsquo options to lsquoconfigurersquo See lsquoconfigure --helprsquo formore information on options We always use release number lsquo1rsquo You can use releasenumbers above lsquo1rsquo

lsquosrpmrsquo This target generates the source rpm for the package (without signing the sourcerpm) The source rpm will be named lsquostrss7-09a8-1srpmrsquoThis is an OpenSS7 Project specific makefile target This target does not requireroot privilege

lsquorpmsrsquo This target is responsible for generating all of the package binary rpms for thearchitecture The binary rpms will be namedlsquostrss7--09a8-1rpmrsquowhere the stars indicate the subpackage and the architecture Both the archi-tecture specific subpackages (binary objects) and the architecture independent(lsquonoarchrsquo) subpackages will be built unless the the former was disabled withthe option lsquo--disable-archrsquo or the later with the option lsquo--disable-indeprsquopassed to lsquoconfigurersquoThis is an OpenSS7 Project specific makefile target This target does not requireroot privilege

lsquosignrsquolsquosrpm-signrsquo

These two targets are the same When invoked they will add a signature tothe source rpm file provided that the file does not already have a signature

Chapter 6 Installation 91

You will be prompted for a password if a signature is required Automated orunattended builds can be achieved by using the emake expect script includedin lsquo$srcdirscriptsemakersquoThis is an OpenSS7 Project specific makefile target This target does not requireroot privilege

lsquorebuildrsquo This target accepts searches out a list of kernel names from thelsquo$DESTDIRlibmodulesrsquo directory and builds rpms for those kernels andfor each of a set of architectures given in the AM RPMTARGETS variable tomake This is convenience target for building a group of rpms on a given buildmachineThis is an OpenSS7 Project specific makefile target This target does not requireroot privilege

lsquoresignrsquo This target will search out and sign with a GPG signature the source rpm andall of the binary rpms for this package that can be found in the package distri-bution directory This target will prompt for a GPG password Automated orunattended builds can be achieved with the emake expect script located herelsquo$srcdirscriptsemakersquoThis is an OpenSS7 Project specific makefile target This target does not requireroot privilege

68110 Debian Build Targets

On Debian systems or systems sporting Debian packaging tools the following targets areused to generate Debian release packages The release number can be controlled by thecontents of the lsquodebreleasersquo file or with the lsquo--with-debrelease=RELEASENUMBERrsquo optionto lsquoconfigurersquo See lsquoconfigure --helprsquo for more information on options

lsquodscrsquo This target will build the Debian source change package (lsquodscrsquo file) Weuse release number lsquo0rsquo so that the entire tarball is included in the lsquodscrsquo fileYou can use release number lsquo1rsquo for the same purposes Release numbersabove lsquo1rsquo will not include the entire tarball The lsquodscrsquo file will be namedlsquostrss7_09a8-0dscrsquoThis is an OpenSS7 Project specific makefile target This target does not requireroot privilege

lsquosigsrsquo This target signs the lsquodebrsquo files You will be prompted for a password unlessto specify it to make with the GNUPGPASS variableThis is an OpenSS7 Project specific makefile target This target does not requireroot privilege

lsquodebsrsquo This target will build the Debian binary package (lsquodebrsquo file) from thelsquodscrsquo created above (This target will also create the lsquodscrsquo if it hasnot been created already) The subpackage lsquodebrsquo files will be namedlsquostrss7-_09a8-0_debrsquo where the stars indicate the subpackage and thearchitectureThis is an OpenSS7 Project specific makefile target This target does not requireroot privilege

92 OpenSS7 SS7 Stack

lsquocsigrsquo This target signs the lsquodscrsquo file You will be prompted for a password unlessto specify it to make with the GNUPGPASS variableThis is an OpenSS7 Project specific makefile target This target does not requireroot privilege

68111 Documentation Targets

On systems that have doxygen(1) documentation tool the following targets are used togenerate doxygen html documentation

lsquodoxyrsquo This target generates doxygen(1) documetnation from suitably marked sourcesFile containing the necessary documentation marks are discovered automat-ically by configure Doxygen documentation can be generated bus is notdistributed Documentation is cerated in the subdirectory lsquodochtmlrsquo

Chapter 7 Troubleshooting 93

7 Troubleshooting

71 Test Suites

711 Pre-installation Checks

Most OpenSS7 packages including the OpenSS7 SS7 Stack package ship withpre-installation checks integral to the build system Pre-installation checks include checkscripts that are shipped in the lsquoscriptsrsquo subdirectory as well as specialized make targetsthat perform the checks

When building and installing the package from RPM or DEB source packages (seeSection 641 [Building from the Source RPM] page 77 and Section 642 [Building fromthe Debian DSC] page 78) a fundamental set of post-compile pre-installation checksare performed prior to building binary packages This is performed automatically anddoes not require any special actions on the part of the user creating binary packages fromsource packages

When building and installing the package from tarball (see Section 643 [Building fromthe Tar Ball] page 78 and Section 653 [Installing the Tar Ball] page 80) however pre-installation checks are only performed if specifically invoked by the builder of the packagePre-installation checks are invoked after building the package and before installing thepackage Pre-installation checks are performed by invoking the lsquocheckrsquo or lsquochecklogrsquotarget to make when building the package as shown in Example 71 wget httpwwwopenss7orgstrss7-09a8tarbz2 tar -xjvf strss7-09a8tarbz2 pushd strss7-09a8 configure make make check lt------- invoke pre-installation checks popd

Example 71 Invoking Pre-Installation Checks Pre-installation checks fall into two categories System Checks and Maintenance Checks

7111 Pre-Installation System Checks

System Checks are post-compilation checks that can be performed before installing thepackage that check to ensure that the compiled objects function and will be successfully in-stalled When the lsquo--enable-maintainer-modersquo option has not been passed to configureonly System Checks will be performed

For example the steps shown in Example 72 will perform System checks

94 OpenSS7 SS7 Stack wget httpwwwopenss7orgstrss7-09a8tarbz2 tar -xjvf strss7-09a8tarbz2 pushd strss7-09a8 configure make make check lt------ invokes System pre-installation checks popd

Example 72 Invoking System Checks 7112 Pre-Installation Maintenance Checks

Maintenance Checks include all System Checks but also checks to ensure that thekernel modules applications programs header files development tools test programsdocumentation and manual pages conform to OpenSS7 standards When thelsquo--enable-maintainer-modersquo option has been passed to configure Maintenance Checkswill be performed

For example the steps shown in Example 73 will perform Maintenance checks wget httpwwwopenss7orgstrss7-09a8tarbz2 tar -xjvf strss7-09a8tarbz2 pushd strss7-09a8 configure --enable-maintainer-mode make make check lt------ invokes Maintenance pre-installation checks popd

Example 73 Invoking Maintenance Checks 7113 Specific Pre-Installation Checks

A number of check scripts are provided in the lsquoscriptsrsquo subdirectory of the distributionthat perform both System and Maintenance checks These are as follows

check_commandsThis check performs both System and Maintenance checksWhen performing System tests the following tests are performedUnless cross-compiling or unless a program is included in AM_INSTALLCHECK_STD_OPTIONS_EXEMPT every program in bin_PROGRAMS sbin_PROGRAMS andlibexec_PROGRAMS is tested to ensure that the lsquo--helprsquo lsquo--versionrsquo andlsquo--copyingrsquo options are accepted When cross-compiling is is not possible toexecute cross-compiled binaries and these checks are skipped in that caseScript executables on the other hand can be executed on the build host so un-less listed in AM_INSTALLCHECK_STD_OPTIONS_EXEMPT every program in dist_bit_SCRIPTS dist_sbin_SCRIPTS and pkglibexec_SCRIPTS are tested to en-sure that the lsquo--helprsquo lsquo--versionrsquo and lsquo--copyingrsquo options are acceptedWhen performing Maintenance tests check_commands also checks to ensurethat a manual page exists in section 1 for every executable binary or script

Chapter 7 Troubleshooting 95

that will be installed from bin_PROGRAMS and dist_bin_SCRIPTS It alsochecks to ensure that a manual page exists in section 8 for every executable bi-nary or script that will be installed from sbin_PROGRAMS dist_sbin_SCRIPTSlibexec_PROGRAMS and pkglibexec_SCRIPTS

check_declsThis check only performs Maintenance checksIt collects the results from the check_libs check_modules and check_headers check scripts and tests to ensure every declaration of a functionprototype or external variable contained in installed header files has acorresponding exported symbol from either a to be installed shared objectlibrary or a to be installed kernel module Declarations are exemptedfrom this requirement if their identifiers have been explicitly added to theEXPOSED_SYMBOL variable If WARN_EXCESS is set to lsquoyesrsquo then the checkscript will only warn when excess declarations exist (without a correspondingexported symbol) otherwise the check script will generate an error and thecheck will fail

check_headersThis check only performs Maintenance checksWhen performing Maintenance tests it identifies all of the declarations includedin to be installed header files It then checks to ensure that a manual pageexists in sections 2 3 7 or 9 as appropriate for the type of declaration Italso checks to see if a manual page source file exists in the source directoryfor a declaration that has not been included in the distribution Function orprototype declarations that do not have a manual page in sections 2 3 or9 will cause the check to fail Other declarations (lsquovariablersquo lsquoexternvarrsquolsquomacrorsquo lsquoenumeratersquo lsquoenumrsquo lsquostructrsquo lsquounionrsquo lsquotypedefrsquo lsquomemberrsquo etc) willonly warn if a manual page does not exist but will not fail the check

check_libsThis check only performs Maintenance checksWhen performing Maintenance tests it checks that each exported symbol ineach to be installed shared object library has a manual page in section 3 It alsochecks that each exported symbol has a lsquofunctionrsquo lsquoprototypersquo or lsquoexternvarrsquodeclaration in the to be installed header files A missing declaration or manualpage will cause this check to fail

check_mansThis check only performs Maintenance checksWhen performing Maintenance tests it checks that to be install manual pagescan be formatted for display without any errors or warnings from the buildhost man program It also checks that required headings exist for manual pagesaccording to the section in which the manual page will be installed It warnsif recommended headings are not included in the manual pages Because someRPM distributions have manual pages that might conflict with the packagemanual pages this check script also checks for conflicts with installed manualpages on the build host This check script also checks to ensure that all to be

96 OpenSS7 SS7 Stack

installed manual pages are used in some fashion that is they have a declarationor exported symbol or are the name of a kernel module or STREAMS moduleor driver possibly capitalizedNote that checking for conflicts with the build host should probably be includedin the System checks (because System checks are performed before the sourceRPM install scriptlet)

check_modulesThis check performs both System and Maintenance checksWhen performing System tests it checks each to be installed kernel moduleto ensure that all undefined symbols can be resolved to either the kernel oranother module It also checks whether an exported or externally declaredsymbol conflicts with an exported or externally declared symbol present in thekernel or another module1

When performing Maintenance tests this check script tests that each to beinstalled kernel module has a manual page in section 9 and that each exportedsymbol that does not begin with an underscore and that belongs to an exportedfunction or exported variable has a manual page in section 9 It also checks toensure that each exported symbol that does not begin with an underscore andthat belongs to an exported function or exported variable has a lsquofunctionrsquolsquoprototypersquo or lsquoexternvarrsquo declaration in the to be installed header files

check_streamsThis check performs only Maintenance checksWhen performing Maintenance tests it checks that for each configuredSTREAMS module or driver or device node that a manual page exists insection 4 or section 7 as appropriate

The output of the pre-installation tests are fairly self explanatory Each check script savessome output to lsquonamelogrsquo where name is the name of the check script as listed above Asummary of the results of the test are display to standard output and can also be capturedto the lsquochecklogrsquo file if the lsquochecklogrsquo target is used instead of the lsquocheckrsquo target tomakeBecause the check scripts proliferate lsquonamelogrsquo files throughout the build directory a lsquomakecheck-cleanrsquo make target has be provided to clean them out lsquomake check-cleanrsquo shouldbe run before each successive run of lsquomake checkrsquo

712 Post-installation Checks

Most OpenSS7 packages ship with a compatibility and conformance test suite built us-ing the lsquoautotestrsquo capabilities of lsquoautoconfrsquo These test suites act as a wrapper for thecompatibility and conformance test programs that are shipped with the packageUnlike the pre-installation checks the post-installation checks are always run completeThe only check that post-installation test scripts perform is to test whether they havebeen invoked with root privileges or not When invoked as root or as a plain user sometests might be skipped that require root privileges or that require plain user privileges tocomplete successfully

1 This particular check has caught some name space pollution that has occurred in the 2611 kernel

Chapter 7 Troubleshooting 97

7121 Running Test Suites

There are several ways of invoking the conformance test suites

1 The test suites can be run after installation of the package by invoking the lsquomakeinstallcheckrsquo or lsquomake installchecklogrsquo target Some packages require that rootprivileges be acquired before invoking the package

2 The test suites can be run from the distribution subdirectory after installation of thepackage by invoking the testsuite shell script directly

3 The test suites can be run standalone from the lsquolibexecrsquo (lsquousrlibexecrsquo) installationdirectory by invoking the testsuite shell script directly

Typical steps for invoking the test suites directly from make are shown in Example 74 wget httpwwwopenss7orgstrss7-09a8tarbz2 tar -xjvf strss7-09a8tarbz2 pushd strss7-09a8 configure make make check lt------ invokes System pre-installation checks make install sudo make installcheck lt------- invokes post-installation tests popd

Example 74 Invoking System Checks When performing post-installation checks for the purposes of generating a problem re-port the checks should always be performed from the build directory either with lsquomakeinstallcheckrsquo or by invoking testsuite directly from the lsquotestsrsquo subdirectory of thebuild directory This ensures that all of the information known to configure and pertinentto the configuration of the system for which a test case failed will be collected in the re-sulting lsquotestsuitelogrsquo file deposited upon test suite failure in the lsquotestsrsquo directory Thislsquotestsuitelogrsquo file can then be attached as part of the problem report and provides richdetails to maintainers of the package See also See Section 72 [Problem Reports] page 97below

Typical steps for invoking and installed testsuite standalone are shown in Example 75 [sudo] usrlibexecstrss7testsuite

Example 75 Invoking testsuite Directly When invoked directly testsuite will generate a lsquotestsuitelogrsquo file in the current di-rectory and a lsquotestsuitedirrsquo directory of failed tests cases and debugging scripts Forgenerating a problem report for failed test cases see Section 724 [Stand Alone ProblemReports] page 100

72 Problem Reports

98 OpenSS7 SS7 Stack

721 Problem Report Guidelines

Problem reports in the following categories should include a log file as indicated in the tablebelow

lsquoconfigurersquoA problem with the configuration process occurs that causes the lsquoconfigurersquocommand to fail The problem report must include the lsquoconfiglogrsquo file thatwas generated by configure

lsquomake compilelogrsquoA problem with the build process occurs that causes the lsquomakersquo commandto fail Perform lsquomake cleanrsquo and then lsquomake compilelogrsquo and attach thelsquoconfiglogrsquo and lsquocompilelogrsquo files to the problem report

lsquomake checklogrsquoA problem occurs with the lsquomake checkrsquo target that causes it to fail Performlsquomake check-clean checklogrsquo and attach the lsquoconfiglogrsquo lsquocompilelogrsquoand lsquochecklogrsquo files to the problem report

lsquosudo make installlogrsquoA problem occurs with lsquosudo make installrsquo that causes it to fail Performlsquosudo make uninstallrsquo and lsquosudo make installlogrsquo and attach thelsquoconfiglogrsquo lsquocompilelogrsquo lsquochecklogrsquo and lsquoinstalllogrsquo files to theproblem report

lsquo[sudo] make installchecklogrsquoA problem occurs with the lsquomake installcheckrsquo target that causesthe test suite to fail Attach the resulting lsquoteststestsuitelogrsquo andlsquoinstallchecklogrsquo file to the problem report There is no need to attach theother files as they are included in lsquoteststestsuitelogrsquo

lsquo[sudo] make uninstalllogrsquoA problem occurs with the lsquomake uninstallrsquo target that causes the test suiteto fail Perform lsquosudo make uninstalllogrsquo and attach the lsquoconfiglogrsquolsquocompilelogrsquo lsquochecklogrsquo lsquoinstalllogrsquo lsquoinstallchecklogrsquolsquoteststestsuitelogrsquo and lsquouninstalllogrsquo file to the problem report

lsquo[sudo] make removelogrsquoA problem occurs with the lsquomake removersquo target that causes the test suiteto fail Perform lsquosudo make removelogrsquo and attach the lsquoconfiglogrsquolsquocompilelogrsquo lsquochecklogrsquo lsquoinstalllogrsquo lsquoinstallchecklogrsquolsquoteststestsuitelogrsquo and lsquoremovelogrsquo file to the problem report

For other problems that occur during the use of the OpenSS7 SS7 Stack package pleasewrite a test case for the test suite that recreates the problem if one does not yet existand provide a test program patch with the problem report Also include whatever logfiles are generated by the kernel (cmn_err(9)) or by the strerr(8) or strace(1) facilities(strlog(9))

722 Generating Problem Reports

The OpenSS7 Project uses the GNU GNATS system for problem reporting Although thelsquosend-prrsquo tool from the GNU GNATS package can be used for bug reporting to the projectrsquos

Chapter 7 Troubleshooting 99

GNATS database using electronic mail it is not always convenient to download and installthe GNATS system to gain access to the lsquosend-prrsquo toolTherefore the OpenSS7 SS7 Stack package provides the lsquosend-prrsquo shell script that canbe used for problem reporting The lsquosend-prrsquo shell script can invoked directly and is awork-alike for the GNU lsquosend-prrsquo toolThe lsquosend-prrsquo tool takes the same flags and can be used in the same fashion howeverwhereas lsquosend-prrsquo is an interactive tool2 lsquosend-prrsquo is also able to perform batch process-ing Whereas lsquosend-prrsquo takes its field information from local databases or from using thelsquoquery-prrsquo C-language program to query a remote database the lsquosend-prrsquo tool has thefield database internal to the toolProblem reports can be generate using make See Section 6817 [Problem Report Targets]page 89 An example of how simple it is to generate a problem report is illustrated inExample 76 make prSEND-PRSEND-PR send-pr send-pr was invoked to generate an external report AnSEND-PR automated problem report has been created in the file namedSEND-PR rsquoproblemprrsquo in the current directory This problem report canSEND-PR be sent to bugsopenss7org by calling this script asSEND-PR rsquohomebrianos7scriptssend-pr --file=problemprrsquoSEND-PRSEND-PR It is possible to edit some of the fields before sending on theSEND-PR problem report Please remember that there is NO WARRANTY SeeSEND-PR the file rsquoCOPYINGrsquo in the top level directorySEND-PRSEND-PR Please do not send confidential information to the bug reportSEND-PR address Inspect the file rsquoproblemprrsquo for confidentialSEND-PR information before mailingSEND-PR vim problempr lt--- follow instructions at head of file make send-pr

Example 76 Invoking Problem Report Generation Using the lsquomake prrsquo target to generate a problem report has the advantages that it willassemble any available lsquologrsquo files in the build directory and attach them to the problemreport

723 Automatic Problem Reports

The OpenSS7 SS7 Stack package also provides a feature for automatic problem reportgeneration that meets the problem report submission guidelines detailed in the precedingsectionsWhenever a logging makefile target (see Section 6816 [Logging Targets] page 87) is in-voked if the primary target fails the send-pr shell script is invoked to automatically

2 lsquosend-prrsquo launches the userrsquos EDITOR to edit the problem report before submitting it

100 OpenSS7 SS7 Stack

generate a problem report file suitable for the corresponding target (as described aboveunder see Section 721 [Problem Report Guidelines] page 98) An example is shown inExample 77 make compilelogmake[5] [libXNSdrvs_a-ipo] Error 1make[5] Leaving directory lsquou6buildel4strxnsrsquomake[4] [all-recursive] Error 1make[4] Leaving directory lsquou6buildel4strxnsrsquomake[3] [all] Error 2make[3] Leaving directory lsquou6buildel4strxnsrsquomake[2] [all-recursive] Error 1make[2] Leaving directory lsquou6buildel4rsquomake[1] [all] Error 2make[1] Leaving directory lsquou6buildel4rsquoSEND-PRSEND-PR send-pr Make target compilelog failed in the compile stage AnSEND-PR automated problem report has been created in the file namedSEND-PR rsquoproblemprrsquo in the current directory This problem report canSEND-PR be sent to bugsopenss7org by calling rsquomake send-prrsquoSEND-PRSEND-PR It is possible to edit some of the fields before sending on theSEND-PR problem report Please remember that there is NO WARRANTY SeeSEND-PR the file rsquoCOPYINGrsquo in the top level directorySEND-PRSEND-PR Please do not send confidential information to the bug reportSEND-PR address Inspect the file rsquoproblemprrsquo for confidentialSEND-PR information before mailingSEND-PR vim problempr lt--- follow instructions at head of file make send-pr

Example 77 Problem Report from Failed Logging Target 724 Stand Alone Problem Reports

The OpenSS7 SS7 Stack package installs the send-pr script and its configuration filelsquosend-prconfigrsquo in lsquo$libexecdirstrss7rsquo along with the validation testsuite seeSee Section 71 [Test Suites] page 93 As with the testsuite this allows the send-prscript to be used for problem report generation on an installed system that does not havea build directory

An example of invoking the package testsuite and then generating a problem report forfailed cases is shown in Example 78

Chapter 7 Troubleshooting 101 [sudo] usrlibexecstrss7testsuite test cases failed usrlibexecstrss7send-prSEND-PRSEND-PR send-pr send-pr was invoked to generate an external report AnSEND-PR automated problem report has been created in the file namedSEND-PR rsquoproblemprrsquo in the current directory This problem report canSEND-PR be sent to bugsopenss7org by calling this script asSEND-PR rsquousrlibexecstrss7send-pr --file problemprrsquoSEND-PRSEND-PR It is possible to edit some of the fields before sending on theSEND-PR problem report Please remember that there is NO WARRANTY SeeSEND-PR the file rsquoCOPYINGrsquo in the top level directorySEND-PRSEND-PR Please do not send confidential information to the bug reportSEND-PR address Inspect the file rsquoproblemprrsquo for confidentialSEND-PR information before mailingSEND-PR vim problempr lt--- follow instructions at head of file usrlibexecstrss7send-pr --file problempr

Example 78 Invoking send-pr Directly The advantage of the approach shown in the example is that the send-pr script is capableof collecting the lsquotestsuitelogrsquo file and the failed test cases and debugging scripts fromthe lsquotestsuitedirrsquo directory and including them in the problem report as well as allpackage pertinent information from the installed lsquosend-prconfigrsquo

73 Known Problems

The OpenSS7 Project does not ship software with known bugs All bugs are unknownVerified behaviour is that behaviour that has been verified by conformance test suites thatare shipped with the OpenSS7 SS7 Stack packageUnverified behaviour may contain unknown bugsPlease remember that there is NO WARRANTYSee also Section 55 [Bugs] page 43 or file lsquoBUGSrsquo in the release directory

Licenses 103

Licenses

104 OpenSS7 SS7 Stack

GNU Affero General Public License

The GNU Affero General Public LicenseVersion 3 19 November 2007

Copyright ccopy 2007 Free Software Foundation Inc httpfsforg

Everyone is permitted to copy and distribute verbatim copies of thislicense document but changing it is not allowed

Preamble

The GNU Affero General Public License is a free copyleft license for software and otherkinds of works specifically designed to ensure cooperation with the community in the caseof network server software

The licenses for most software and other practical works are designed to take away yourfreedom to share and change the works By contrast our General Public Licenses areintended to guarantee your freedom to share and change all versions of a programndashto makesure it remains free software for all its users

When we speak of free software we are referring to freedom not price Our General PublicLicenses are designed to make sure that you have the freedom to distribute copies of freesoftware (and charge for them if you wish) that you receive source code or can get it if youwant it that you can change the software or use pieces of it in new free programs and thatyou know you can do these things

Developers that use our General Public Licenses protect your rights with two steps (1)assert copyright on the software and (2) offer you this License which gives you legal per-mission to copy distribute andor modify the software

A secondary benefit of defending all usersrsquo freedom is that improvements made in alternateversions of the program if they receive widespread use become available for other developersto incorporate Many developers of free software are heartened and encouraged by theresulting cooperation However in the case of software used on network servers this resultmay fail to come about The GNU General Public License permits making a modifiedversion and letting the public access it on a server without ever releasing its source code tothe public

The GNU Affero General Public License is designed specifically to ensure that in such casesthe modified source code becomes available to the community It requires the operator of anetwork server to provide the source code of the modified version running there to the usersof that server Therefore public use of a modified version on a publicly accessible servergives the public access to the source code of the modified version

An older license called the Affero General Public License and published by Affero wasdesigned to accomplish similar goals This is a different license not a version of the AfferoGPL but Affero has released a new version of the Affero GPL which permits relicensingunder this license

The precise terms and conditions for copying distribution and modification follow

Licenses 105

Terms and Conditions

0 DefinitionsldquoThis Licenserdquo refers to version 3 of the GNU Affero General Public LicenseldquoCopyrightrdquo also means copyright-like laws that apply to other kinds of works such assemiconductor masksldquoThe Programrdquo refers to any copyrightable work licensed under this License Eachlicensee is addressed as ldquoyourdquo ldquoLicenseesrdquo and ldquorecipientsrdquo may be individuals ororganizationsTo ldquomodifyrdquo a work means to copy from or adapt all or part of the work in a fashionrequiring copyright permission other than the making of an exact copy The resultingwork is called a ldquomodified versionrdquo of the earlier work or a work ldquobased onrdquo the earlierworkA ldquocovered workrdquo means either the unmodified Program or a work based on the Pro-gramTo ldquopropagaterdquo a work means to do anything with it that without permission wouldmake you directly or secondarily liable for infringement under applicable copyright lawexcept executing it on a computer or modifying a private copy Propagation includescopying distribution (with or without modification) making available to the publicand in some countries other activities as wellTo ldquoconveyrdquo a work means any kind of propagation that enables other parties to makeor receive copies Mere interaction with a user through a computer network with notransfer of a copy is not conveyingAn interactive user interface displays ldquoAppropriate Legal Noticesrdquo to the extent that itincludes a convenient and prominently visible feature that (1) displays an appropriatecopyright notice and (2) tells the user that there is no warranty for the work (exceptto the extent that warranties are provided) that licensees may convey the work underthis License and how to view a copy of this License If the interface presents a listof user commands or options such as a menu a prominent item in the list meets thiscriterion

1 Source CodeThe ldquosource coderdquo for a work means the preferred form of the work for making modi-fications to it ldquoObject coderdquo means any non-source form of a workA ldquoStandard Interfacerdquo means an interface that either is an official standard definedby a recognized standards body or in the case of interfaces specified for a particularprogramming language one that is widely used among developers working in thatlanguageThe ldquoSystem Librariesrdquo of an executable work include anything other than the work asa whole that (a) is included in the normal form of packaging a Major Component butwhich is not part of that Major Component and (b) serves only to enable use of thework with that Major Component or to implement a Standard Interface for which animplementation is available to the public in source code form A ldquoMajor Componentrdquoin this context means a major essential component (kernel window system and soon) of the specific operating system (if any) on which the executable work runs or acompiler used to produce the work or an object code interpreter used to run it

106 OpenSS7 SS7 Stack

The ldquoCorresponding Sourcerdquo for a work in object code form means all the source codeneeded to generate install and (for an executable work) run the object code and tomodify the work including scripts to control those activities However it does notinclude the workrsquos System Libraries or general-purpose tools or generally availablefree programs which are used unmodified in performing those activities but which arenot part of the work For example Corresponding Source includes interface definitionfiles associated with source files for the work and the source code for shared librariesand dynamically linked subprograms that the work is specifically designed to requiresuch as by intimate data communication or control flow between those subprogramsand other parts of the workThe Corresponding Source need not include anything that users can regenerate auto-matically from other parts of the Corresponding SourceThe Corresponding Source for a work in source code form is that same work

2 Basic PermissionsAll rights granted under this License are granted for the term of copyright on theProgram and are irrevocable provided the stated conditions are met This License ex-plicitly affirms your unlimited permission to run the unmodified Program The outputfrom running a covered work is covered by this License only if the output given itscontent constitutes a covered work This License acknowledges your rights of fair useor other equivalent as provided by copyright lawYou may make run and propagate covered works that you do not convey withoutconditions so long as your license otherwise remains in force You may convey coveredworks to others for the sole purpose of having them make modifications exclusivelyfor you or provide you with facilities for running those works provided that youcomply with the terms of this License in conveying all material for which you do notcontrol copyright Those thus making or running the covered works for you must doso exclusively on your behalf under your direction and control on terms that prohibitthem from making any copies of your copyrighted material outside their relationshipwith youConveying under any other circumstances is permitted solely under the conditionsstated below Sublicensing is not allowed section 10 makes it unnecessary

3 Protecting Usersrsquo Legal Rights From Anti-Circumvention LawNo covered work shall be deemed part of an effective technological measure underany applicable law fulfilling obligations under article 11 of the WIPO copyright treatyadopted on 20 December 1996 or similar laws prohibiting or restricting circumventionof such measuresWhen you convey a covered work you waive any legal power to forbid circumvention oftechnological measures to the extent such circumvention is effected by exercising rightsunder this License with respect to the covered work and you disclaim any intentionto limit operation or modification of the work as a means of enforcing against theworkrsquos users your or third partiesrsquo legal rights to forbid circumvention of technologicalmeasures

4 Conveying Verbatim CopiesYou may convey verbatim copies of the Programrsquos source code as you receive it in anymedium provided that you conspicuously and appropriately publish on each copy an

Licenses 107

appropriate copyright notice keep intact all notices stating that this License and anynon-permissive terms added in accord with section 7 apply to the code keep intact allnotices of the absence of any warranty and give all recipients a copy of this Licensealong with the ProgramYou may charge any price or no price for each copy that you convey and you may offersupport or warranty protection for a fee

5 Conveying Modified Source VersionsYou may convey a work based on the Program or the modifications to produce it fromthe Program in the form of source code under the terms of section 4 provided thatyou also meet all of these conditionsa The work must carry prominent notices stating that you modified it and giving a

relevant dateb The work must carry prominent notices stating that it is released under this Li-

cense and any conditions added under section 7 This requirement modifies therequirement in section 4 to ldquokeep intact all noticesrdquo

c You must license the entire work as a whole under this License to anyone whocomes into possession of a copy This License will therefore apply along with anyapplicable section 7 additional terms to the whole of the work and all its partsregardless of how they are packaged This License gives no permission to licensethe work in any other way but it does not invalidate such permission if you haveseparately received it

d If the work has interactive user interfaces each must display Appropriate LegalNotices however if the Program has interactive interfaces that do not displayAppropriate Legal Notices your work need not make them do so

A compilation of a covered work with other separate and independent works whichare not by their nature extensions of the covered work and which are not combinedwith it such as to form a larger program in or on a volume of a storage or distributionmedium is called an ldquoaggregaterdquo if the compilation and its resulting copyright arenot used to limit the access or legal rights of the compilationrsquos users beyond what theindividual works permit Inclusion of a covered work in an aggregate does not causethis License to apply to the other parts of the aggregate

6 Conveying Non-Source FormsYou may convey a covered work in object code form under the terms of sections 4 and5 provided that you also convey the machine-readable Corresponding Source underthe terms of this License in one of these waysa Convey the object code in or embodied in a physical product (including a phys-

ical distribution medium) accompanied by the Corresponding Source fixed on adurable physical medium customarily used for software interchange

b Convey the object code in or embodied in a physical product (including a physi-cal distribution medium) accompanied by a written offer valid for at least threeyears and valid for as long as you offer spare parts or customer support for thatproduct model to give anyone who possesses the object code either (1) a copy ofthe Corresponding Source for all the software in the product that is covered by thisLicense on a durable physical medium customarily used for software interchange

108 OpenSS7 SS7 Stack

for a price no more than your reasonable cost of physically performing this con-veying of source or (2) access to copy the Corresponding Source from a networkserver at no charge

c Convey individual copies of the object code with a copy of the written offer toprovide the Corresponding Source This alternative is allowed only occasionallyand noncommercially and only if you received the object code with such an offerin accord with subsection 6b

d Convey the object code by offering access from a designated place (gratis or fora charge) and offer equivalent access to the Corresponding Source in the sameway through the same place at no further charge You need not require recipientsto copy the Corresponding Source along with the object code If the place tocopy the object code is a network server the Corresponding Source may be ona different server (operated by you or a third party) that supports equivalentcopying facilities provided you maintain clear directions next to the object codesaying where to find the Corresponding Source Regardless of what server hoststhe Corresponding Source you remain obligated to ensure that it is available foras long as needed to satisfy these requirements

e Convey the object code using peer-to-peer transmission provided you inform otherpeers where the object code and Corresponding Source of the work are being offeredto the general public at no charge under subsection 6d

A separable portion of the object code whose source code is excluded from the Cor-responding Source as a System Library need not be included in conveying the objectcode workA ldquoUser Productrdquo is either (1) a ldquoconsumer productrdquo which means any tangible per-sonal property which is normally used for personal family or household purposes or(2) anything designed or sold for incorporation into a dwelling In determining whethera product is a consumer product doubtful cases shall be resolved in favor of coverageFor a particular product received by a particular user ldquonormally usedrdquo refers to atypical or common use of that class of product regardless of the status of the par-ticular user or of the way in which the particular user actually uses or expects or isexpected to use the product A product is a consumer product regardless of whetherthe product has substantial commercial industrial or non-consumer uses unless suchuses represent the only significant mode of use of the productldquoInstallation Informationrdquo for a User Product means any methods procedures autho-rization keys or other information required to install and execute modified versions of acovered work in that User Product from a modified version of its Corresponding SourceThe information must suffice to ensure that the continued functioning of the modifiedobject code is in no case prevented or interfered with solely because modification hasbeen madeIf you convey an object code work under this section in or with or specifically foruse in a User Product and the conveying occurs as part of a transaction in whichthe right of possession and use of the User Product is transferred to the recipient inperpetuity or for a fixed term (regardless of how the transaction is characterized)the Corresponding Source conveyed under this section must be accompanied by theInstallation Information But this requirement does not apply if neither you nor any

Licenses 109

third party retains the ability to install modified object code on the User Product (forexample the work has been installed in ROM)The requirement to provide Installation Information does not include a requirementto continue to provide support service warranty or updates for a work that has beenmodified or installed by the recipient or for the User Product in which it has beenmodified or installed Access to a network may be denied when the modification itselfmaterially and adversely affects the operation of the network or violates the rules andprotocols for communication across the networkCorresponding Source conveyed and Installation Information provided in accord withthis section must be in a format that is publicly documented (and with an implementa-tion available to the public in source code form) and must require no special passwordor key for unpacking reading or copying

7 Additional TermsldquoAdditional permissionsrdquo are terms that supplement the terms of this License by mak-ing exceptions from one or more of its conditions Additional permissions that areapplicable to the entire Program shall be treated as though they were included in thisLicense to the extent that they are valid under applicable law If additional permis-sions apply only to part of the Program that part may be used separately under thosepermissions but the entire Program remains governed by this License without regardto the additional permissionsWhen you convey a copy of a covered work you may at your option remove anyadditional permissions from that copy or from any part of it (Additional permissionsmay be written to require their own removal in certain cases when you modify thework) You may place additional permissions on material added by you to a coveredwork for which you have or can give appropriate copyright permissionNotwithstanding any other provision of this License for material you add to a coveredwork you may (if authorized by the copyright holders of that material) supplementthe terms of this License with termsa Disclaiming warranty or limiting liability differently from the terms of sections 15

and 16 of this License orb Requiring preservation of specified reasonable legal notices or author attributions

in that material or in the Appropriate Legal Notices displayed by works containingit or

c Prohibiting misrepresentation of the origin of that material or requiring that mod-ified versions of such material be marked in reasonable ways as different from theoriginal version or

d Limiting the use for publicity purposes of names of licensors or authors of thematerial or

e Declining to grant rights under trademark law for use of some trade names trade-marks or service marks or

f Requiring indemnification of licensors and authors of that material by anyone whoconveys the material (or modified versions of it) with contractual assumptionsof liability to the recipient for any liability that these contractual assumptionsdirectly impose on those licensors and authors

110 OpenSS7 SS7 Stack

All other non-permissive additional terms are considered ldquofurther restrictionsrdquo withinthe meaning of section 10 If the Program as you received it or any part of it con-tains a notice stating that it is governed by this License along with a term that is afurther restriction you may remove that term If a license document contains a furtherrestriction but permits relicensing or conveying under this License you may add to acovered work material governed by the terms of that license document provided thatthe further restriction does not survive such relicensing or conveyingIf you add terms to a covered work in accord with this section you must place in therelevant source files a statement of the additional terms that apply to those files or anotice indicating where to find the applicable termsAdditional terms permissive or non-permissive may be stated in the form of a sep-arately written license or stated as exceptions the above requirements apply eitherway

8 TerminationYou may not propagate or modify a covered work except as expressly provided un-der this License Any attempt otherwise to propagate or modify it is void and willautomatically terminate your rights under this License (including any patent licensesgranted under the third paragraph of section 11)However if you cease all violation of this License then your license from a particularcopyright holder is reinstated (a) provisionally unless and until the copyright holderexplicitly and finally terminates your license and (b) permanently if the copyrightholder fails to notify you of the violation by some reasonable means prior to 60 daysafter the cessationMoreover your license from a particular copyright holder is reinstated permanently ifthe copyright holder notifies you of the violation by some reasonable means this is thefirst time you have received notice of violation of this License (for any work) from thatcopyright holder and you cure the violation prior to 30 days after your receipt of thenoticeTermination of your rights under this section does not terminate the licenses of partieswho have received copies or rights from you under this License If your rights havebeen terminated and not permanently reinstated you do not qualify to receive newlicenses for the same material under section 10

9 Acceptance Not Required for Having CopiesYou are not required to accept this License in order to receive or run a copy of theProgram Ancillary propagation of a covered work occurring solely as a consequence ofusing peer-to-peer transmission to receive a copy likewise does not require acceptanceHowever nothing other than this License grants you permission to propagate or modifyany covered work These actions infringe copyright if you do not accept this LicenseTherefore by modifying or propagating a covered work you indicate your acceptanceof this License to do so

10 Automatic Licensing of Downstream RecipientsEach time you convey a covered work the recipient automatically receives a licensefrom the original licensors to run modify and propagate that work subject to thisLicense You are not responsible for enforcing compliance by third parties with thisLicense

Licenses 111

An ldquoentity transactionrdquo is a transaction transferring control of an organization orsubstantially all assets of one or subdividing an organization or merging organizationsIf propagation of a covered work results from an entity transaction each party to thattransaction who receives a copy of the work also receives whatever licenses to the workthe partyrsquos predecessor in interest had or could give under the previous paragraph plusa right to possession of the Corresponding Source of the work from the predecessor ininterest if the predecessor has it or can get it with reasonable effortsYou may not impose any further restrictions on the exercise of the rights granted oraffirmed under this License For example you may not impose a license fee royalty orother charge for exercise of rights granted under this License and you may not initiatelitigation (including a cross-claim or counterclaim in a lawsuit) alleging that any patentclaim is infringed by making using selling offering for sale or importing the Programor any portion of it

11 PatentsA ldquocontributorrdquo is a copyright holder who authorizes use under this License of theProgram or a work on which the Program is based The work thus licensed is calledthe contributorrsquos ldquocontributor versionrdquoA contributorrsquos ldquoessential patent claimsrdquo are all patent claims owned or controlled bythe contributor whether already acquired or hereafter acquired that would be infringedby some manner permitted by this License of making using or selling its contributorversion but do not include claims that would be infringed only as a consequence offurther modification of the contributor version For purposes of this definition ldquocon-trolrdquo includes the right to grant patent sublicenses in a manner consistent with therequirements of this LicenseEach contributor grants you a non-exclusive worldwide royalty-free patent licenseunder the contributorrsquos essential patent claims to make use sell offer for sale importand otherwise run modify and propagate the contents of its contributor versionIn the following three paragraphs a ldquopatent licenserdquo is any express agreement or com-mitment however denominated not to enforce a patent (such as an express permissionto practice a patent or covenant not to sue for patent infringement) To ldquograntrdquo sucha patent license to a party means to make such an agreement or commitment not toenforce a patent against the partyIf you convey a covered work knowingly relying on a patent license and the Corre-sponding Source of the work is not available for anyone to copy free of charge and underthe terms of this License through a publicly available network server or other readilyaccessible means then you must either (1) cause the Corresponding Source to be soavailable or (2) arrange to deprive yourself of the benefit of the patent license for thisparticular work or (3) arrange in a manner consistent with the requirements of thisLicense to extend the patent license to downstream recipients ldquoKnowingly relyingrdquomeans you have actual knowledge that but for the patent license your conveying thecovered work in a country or your recipientrsquos use of the covered work in a countrywould infringe one or more identifiable patents in that country that you have reasonto believe are validIf pursuant to or in connection with a single transaction or arrangement you conveyor propagate by procuring conveyance of a covered work and grant a patent license

112 OpenSS7 SS7 Stack

to some of the parties receiving the covered work authorizing them to use propagatemodify or convey a specific copy of the covered work then the patent license you grantis automatically extended to all recipients of the covered work and works based on it

A patent license is ldquodiscriminatoryrdquo if it does not include within the scope of its cover-age prohibits the exercise of or is conditioned on the non-exercise of one or more of therights that are specifically granted under this License You may not convey a coveredwork if you are a party to an arrangement with a third party that is in the business ofdistributing software under which you make payment to the third party based on theextent of your activity of conveying the work and under which the third party grantsto any of the parties who would receive the covered work from you a discriminatorypatent license (a) in connection with copies of the covered work conveyed by you (orcopies made from those copies) or (b) primarily for and in connection with specificproducts or compilations that contain the covered work unless you entered into thatarrangement or that patent license was granted prior to 28 March 2007

Nothing in this License shall be construed as excluding or limiting any implied license orother defenses to infringement that may otherwise be available to you under applicablepatent law

12 No Surrender of Othersrsquo Freedom

If conditions are imposed on you (whether by court order agreement or otherwise) thatcontradict the conditions of this License they do not excuse you from the conditionsof this License If you cannot convey a covered work so as to satisfy simultaneouslyyour obligations under this License and any other pertinent obligations then as aconsequence you may not convey it at all For example if you agree to terms thatobligate you to collect a royalty for further conveying from those to whom you conveythe Program the only way you could satisfy both those terms and this License wouldbe to refrain entirely from conveying the Program

13 Remote Network Interaction Use with the GNU General Public License

Notwithstanding any other provision of this License if you modify the Program yourmodified version must prominently offer all users interacting with it remotely througha network (if your version supports such interaction) an opportunity to receive theCorresponding Source of your version by providing access to the Corresponding Sourcefrom a network server at no charge through some standard or customary means offacilitating copying of software This Corresponding Source shall include the Corre-sponding Source for any work covered by version 3 of the GNU General Public Licensethat is incorporated pursuant to the following paragraph

Notwithstanding any other provision of this License you have permission to link orcombine any covered work with a work licensed under version 3 of the GNU GeneralPublic License into a single combined work and to convey the resulting work Theterms of this License will continue to apply to the part which is the covered work butthe work with which it is combined will remain governed by version 3 of the GNUGeneral Public License

14 Revised Versions of this License

The Free Software Foundation may publish revised andor new versions of the GNUAffero General Public License from time to time Such new versions will be similar

Licenses 113

in spirit to the present version but may differ in detail to address new problems orconcernsEach version is given a distinguishing version number If the Program specifies thata certain numbered version of the GNU Affero General Public License ldquoor any laterversionrdquo applies to it you have the option of following the terms and conditions ei-ther of that numbered version or of any later version published by the Free SoftwareFoundation If the Program does not specify a version number of the GNU Affero Gen-eral Public License you may choose any version ever published by the Free SoftwareFoundationIf the Program specifies that a proxy can decide which future versions of the GNU AfferoGeneral Public License can be used that proxyrsquos public statement of acceptance of aversion permanently authorizes you to choose that version for the ProgramLater license versions may give you additional or different permissions However noadditional obligations are imposed on any author or copyright holder as a result of yourchoosing to follow a later version

15 Disclaimer of WarrantyTHERE IS NO WARRANTY FOR THE PROGRAM TO THE EXTENT PER-MITTED BY APPLICABLE LAW EXCEPT WHEN OTHERWISE STATED INWRITING THE COPYRIGHT HOLDERS ANDOR OTHER PARTIES PROVIDETHE PROGRAM ldquoAS ISrdquo WITHOUT WARRANTY OF ANY KIND EITHER EX-PRESSED OR IMPLIED INCLUDING BUT NOT LIMITED TO THE IMPLIEDWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULARPURPOSE THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCEOF THE PROGRAM IS WITH YOU SHOULD THE PROGRAM PROVE DEFEC-TIVE YOU ASSUME THE COST OF ALL NECESSARY SERVICING REPAIR ORCORRECTION

16 Limitation of LiabilityIN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO INWRITING WILL ANY COPYRIGHT HOLDER OR ANY OTHER PARTY WHOMODIFIES ANDOR CONVEYS THE PROGRAM AS PERMITTED ABOVE BELIABLE TO YOU FOR DAMAGES INCLUDING ANY GENERAL SPECIAL IN-CIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE ORINABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TOLOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUS-TAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAMTO OPERATE WITH ANY OTHER PROGRAMS) EVEN IF SUCH HOLDER OROTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAM-AGES

17 Interpretation of Sections 15 and 16If the disclaimer of warranty and limitation of liability provided above cannot be givenlocal legal effect according to their terms reviewing courts shall apply local law thatmost closely approximates an absolute waiver of all civil liability in connection withthe Program unless a warranty or assumption of liability accompanies a copy of theProgram in return for a fee

END OF TERMS AND CONDITIONS

114 OpenSS7 SS7 Stack

How to Apply These Terms to Your New Programs

If you develop a new program and you want it to be of the greatest possible use to the publicthe best way to achieve this is to make it free software which everyone can redistribute andchange under these termsTo do so attach the following notices to the program It is safest to attach them to thestart of each source file to most effectively state the exclusion of warranty and each fileshould have at least the ldquocopyrightrdquo line and a pointer to where the full notice is found

one line to give the programrsquos name and a brief idea of what it does

Copyright (C) year name of author

This program is free software you can redistribute it andor modify

it under the terms of the GNU Affero General Public License as published by

the Free Software Foundation either version 3 of the License or (at

your option) any later version

This program is distributed in the hope that it will be useful but

WITHOUT ANY WARRANTY without even the implied warranty of

MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE See the GNU

Affero General Public License for more details

You should have received a copy of the GNU Affero General Public License

along with this program If not see httpwwwgnuorglicenses

Also add information on how to contact you by electronic and paper mailIf your software can interact with users remotely through a network you should also makesure that it provides a way for users to get its source For example if your program is aweb application its interface could display a ldquoSourcerdquo link that leads users to an archive ofthe code There are many ways you could offer source and different solutions will be betterfor different programs see section 13 for the specific requirementsYou should also get your employer (if you work as a programmer) or school if any to signa ldquocopyright disclaimerrdquo for the program if necessary For more information on this andhow to apply and follow the GNU AGPL see httpwwwgnuorglicenses

Licenses 115

GNU General Public License

GNU GENERAL PUBLIC LICENSEVersion 3 29 June 2007

Copyright ccopy 2007 Free Software Foundation Inc httpfsforg

Everyone is permitted to copy and distribute verbatim copies of thislicense document but changing it is not allowed

Preamble

The GNU General Public License is a free copyleft license for software and other kinds ofworks

The licenses for most software and other practical works are designed to take away yourfreedom to share and change the works By contrast the GNU General Public License isintended to guarantee your freedom to share and change all versions of a programndashto makesure it remains free software for all its users We the Free Software Foundation use theGNU General Public License for most of our software it applies also to any other workreleased this way by its authors You can apply it to your programs too

When we speak of free software we are referring to freedom not price Our General PublicLicenses are designed to make sure that you have the freedom to distribute copies of freesoftware (and charge for them if you wish) that you receive source code or can get it if youwant it that you can change the software or use pieces of it in new free programs and thatyou know you can do these things

To protect your rights we need to prevent others from denying you these rights or askingyou to surrender the rights Therefore you have certain responsibilities if you distributecopies of the software or if you modify it responsibilities to respect the freedom of others

For example if you distribute copies of such a program whether gratis or for a fee youmust pass on to the recipients the same freedoms that you received You must make surethat they too receive or can get the source code And you must show them these terms sothey know their rights

Developers that use the GNU GPL protect your rights with two steps (1) assert copyrighton the software and (2) offer you this License giving you legal permission to copy distributeandor modify it

For the developersrsquo and authorsrsquo protection the GPL clearly explains that there is nowarranty for this free software For both usersrsquo and authorsrsquo sake the GPL requires thatmodified versions be marked as changed so that their problems will not be attributederroneously to authors of previous versions

Some devices are designed to deny users access to install or run modified versions of thesoftware inside them although the manufacturer can do so This is fundamentally incom-patible with the aim of protecting usersrsquo freedom to change the software The systematicpattern of such abuse occurs in the area of products for individuals to use which is pre-cisely where it is most unacceptable Therefore we have designed this version of the GPLto prohibit the practice for those products If such problems arise substantially in other

116 OpenSS7 SS7 Stack

domains we stand ready to extend this provision to those domains in future versions of theGPL as needed to protect the freedom of users

Finally every program is threatened constantly by software patents States should not allowpatents to restrict development and use of software on general-purpose computers but inthose that do we wish to avoid the special danger that patents applied to a free programcould make it effectively proprietary To prevent this the GPL assures that patents cannotbe used to render the program non-free

The precise terms and conditions for copying distribution and modification follow

Terms and Conditions

0 DefinitionsldquoThis Licenserdquo refers to version 3 of the GNU General Public LicenseldquoCopyrightrdquo also means copyright-like laws that apply to other kinds of works such assemiconductor masksldquoThe Programrdquo refers to any copyrightable work licensed under this License Eachlicensee is addressed as ldquoyourdquo ldquoLicenseesrdquo and ldquorecipientsrdquo may be individuals ororganizationsTo ldquomodifyrdquo a work means to copy from or adapt all or part of the work in a fashionrequiring copyright permission other than the making of an exact copy The resultingwork is called a ldquomodified versionrdquo of the earlier work or a work ldquobased onrdquo the earlierworkA ldquocovered workrdquo means either the unmodified Program or a work based on the Pro-gramTo ldquopropagaterdquo a work means to do anything with it that without permission wouldmake you directly or secondarily liable for infringement under applicable copyright lawexcept executing it on a computer or modifying a private copy Propagation includescopying distribution (with or without modification) making available to the publicand in some countries other activities as wellTo ldquoconveyrdquo a work means any kind of propagation that enables other parties to makeor receive copies Mere interaction with a user through a computer network with notransfer of a copy is not conveyingAn interactive user interface displays ldquoAppropriate Legal Noticesrdquo to the extent that itincludes a convenient and prominently visible feature that (1) displays an appropriatecopyright notice and (2) tells the user that there is no warranty for the work (exceptto the extent that warranties are provided) that licensees may convey the work underthis License and how to view a copy of this License If the interface presents a listof user commands or options such as a menu a prominent item in the list meets thiscriterion

1 Source CodeThe ldquosource coderdquo for a work means the preferred form of the work for making modi-fications to it ldquoObject coderdquo means any non-source form of a workA ldquoStandard Interfacerdquo means an interface that either is an official standard definedby a recognized standards body or in the case of interfaces specified for a particular

Licenses 117

programming language one that is widely used among developers working in thatlanguage

The ldquoSystem Librariesrdquo of an executable work include anything other than the work asa whole that (a) is included in the normal form of packaging a Major Component butwhich is not part of that Major Component and (b) serves only to enable use of thework with that Major Component or to implement a Standard Interface for which animplementation is available to the public in source code form A ldquoMajor Componentrdquoin this context means a major essential component (kernel window system and soon) of the specific operating system (if any) on which the executable work runs or acompiler used to produce the work or an object code interpreter used to run it

The ldquoCorresponding Sourcerdquo for a work in object code form means all the source codeneeded to generate install and (for an executable work) run the object code and tomodify the work including scripts to control those activities However it does notinclude the workrsquos System Libraries or general-purpose tools or generally availablefree programs which are used unmodified in performing those activities but which arenot part of the work For example Corresponding Source includes interface definitionfiles associated with source files for the work and the source code for shared librariesand dynamically linked subprograms that the work is specifically designed to requiresuch as by intimate data communication or control flow between those subprogramsand other parts of the work

The Corresponding Source need not include anything that users can regenerate auto-matically from other parts of the Corresponding Source

The Corresponding Source for a work in source code form is that same work

2 Basic Permissions

All rights granted under this License are granted for the term of copyright on theProgram and are irrevocable provided the stated conditions are met This License ex-plicitly affirms your unlimited permission to run the unmodified Program The outputfrom running a covered work is covered by this License only if the output given itscontent constitutes a covered work This License acknowledges your rights of fair useor other equivalent as provided by copyright law

You may make run and propagate covered works that you do not convey withoutconditions so long as your license otherwise remains in force You may convey coveredworks to others for the sole purpose of having them make modifications exclusivelyfor you or provide you with facilities for running those works provided that youcomply with the terms of this License in conveying all material for which you do notcontrol copyright Those thus making or running the covered works for you must doso exclusively on your behalf under your direction and control on terms that prohibitthem from making any copies of your copyrighted material outside their relationshipwith you

Conveying under any other circumstances is permitted solely under the conditionsstated below Sublicensing is not allowed section 10 makes it unnecessary

3 Protecting Usersrsquo Legal Rights From Anti-Circumvention Law

No covered work shall be deemed part of an effective technological measure underany applicable law fulfilling obligations under article 11 of the WIPO copyright treaty

118 OpenSS7 SS7 Stack

adopted on 20 December 1996 or similar laws prohibiting or restricting circumventionof such measures

When you convey a covered work you waive any legal power to forbid circumvention oftechnological measures to the extent such circumvention is effected by exercising rightsunder this License with respect to the covered work and you disclaim any intentionto limit operation or modification of the work as a means of enforcing against theworkrsquos users your or third partiesrsquo legal rights to forbid circumvention of technologicalmeasures

4 Conveying Verbatim Copies

You may convey verbatim copies of the Programrsquos source code as you receive it in anymedium provided that you conspicuously and appropriately publish on each copy anappropriate copyright notice keep intact all notices stating that this License and anynon-permissive terms added in accord with section 7 apply to the code keep intact allnotices of the absence of any warranty and give all recipients a copy of this Licensealong with the Program

You may charge any price or no price for each copy that you convey and you may offersupport or warranty protection for a fee

5 Conveying Modified Source Versions

You may convey a work based on the Program or the modifications to produce it fromthe Program in the form of source code under the terms of section 4 provided thatyou also meet all of these conditions

a The work must carry prominent notices stating that you modified it and giving arelevant date

b The work must carry prominent notices stating that it is released under this Li-cense and any conditions added under section 7 This requirement modifies therequirement in section 4 to ldquokeep intact all noticesrdquo

c You must license the entire work as a whole under this License to anyone whocomes into possession of a copy This License will therefore apply along with anyapplicable section 7 additional terms to the whole of the work and all its partsregardless of how they are packaged This License gives no permission to licensethe work in any other way but it does not invalidate such permission if you haveseparately received it

d If the work has interactive user interfaces each must display Appropriate LegalNotices however if the Program has interactive interfaces that do not displayAppropriate Legal Notices your work need not make them do so

A compilation of a covered work with other separate and independent works whichare not by their nature extensions of the covered work and which are not combinedwith it such as to form a larger program in or on a volume of a storage or distributionmedium is called an ldquoaggregaterdquo if the compilation and its resulting copyright arenot used to limit the access or legal rights of the compilationrsquos users beyond what theindividual works permit Inclusion of a covered work in an aggregate does not causethis License to apply to the other parts of the aggregate

6 Conveying Non-Source Forms

Licenses 119

You may convey a covered work in object code form under the terms of sections 4 and5 provided that you also convey the machine-readable Corresponding Source underthe terms of this License in one of these waysa Convey the object code in or embodied in a physical product (including a phys-

ical distribution medium) accompanied by the Corresponding Source fixed on adurable physical medium customarily used for software interchange

b Convey the object code in or embodied in a physical product (including a physi-cal distribution medium) accompanied by a written offer valid for at least threeyears and valid for as long as you offer spare parts or customer support for thatproduct model to give anyone who possesses the object code either (1) a copy ofthe Corresponding Source for all the software in the product that is covered by thisLicense on a durable physical medium customarily used for software interchangefor a price no more than your reasonable cost of physically performing this con-veying of source or (2) access to copy the Corresponding Source from a networkserver at no charge

c Convey individual copies of the object code with a copy of the written offer toprovide the Corresponding Source This alternative is allowed only occasionallyand noncommercially and only if you received the object code with such an offerin accord with subsection 6b

d Convey the object code by offering access from a designated place (gratis or fora charge) and offer equivalent access to the Corresponding Source in the sameway through the same place at no further charge You need not require recipientsto copy the Corresponding Source along with the object code If the place tocopy the object code is a network server the Corresponding Source may be ona different server (operated by you or a third party) that supports equivalentcopying facilities provided you maintain clear directions next to the object codesaying where to find the Corresponding Source Regardless of what server hoststhe Corresponding Source you remain obligated to ensure that it is available foras long as needed to satisfy these requirements

e Convey the object code using peer-to-peer transmission provided you inform otherpeers where the object code and Corresponding Source of the work are being offeredto the general public at no charge under subsection 6d

A separable portion of the object code whose source code is excluded from the Cor-responding Source as a System Library need not be included in conveying the objectcode workA ldquoUser Productrdquo is either (1) a ldquoconsumer productrdquo which means any tangible per-sonal property which is normally used for personal family or household purposes or(2) anything designed or sold for incorporation into a dwelling In determining whethera product is a consumer product doubtful cases shall be resolved in favor of coverageFor a particular product received by a particular user ldquonormally usedrdquo refers to atypical or common use of that class of product regardless of the status of the par-ticular user or of the way in which the particular user actually uses or expects or isexpected to use the product A product is a consumer product regardless of whetherthe product has substantial commercial industrial or non-consumer uses unless suchuses represent the only significant mode of use of the product

120 OpenSS7 SS7 Stack

ldquoInstallation Informationrdquo for a User Product means any methods procedures autho-rization keys or other information required to install and execute modified versions of acovered work in that User Product from a modified version of its Corresponding SourceThe information must suffice to ensure that the continued functioning of the modifiedobject code is in no case prevented or interfered with solely because modification hasbeen madeIf you convey an object code work under this section in or with or specifically foruse in a User Product and the conveying occurs as part of a transaction in whichthe right of possession and use of the User Product is transferred to the recipient inperpetuity or for a fixed term (regardless of how the transaction is characterized)the Corresponding Source conveyed under this section must be accompanied by theInstallation Information But this requirement does not apply if neither you nor anythird party retains the ability to install modified object code on the User Product (forexample the work has been installed in ROM)The requirement to provide Installation Information does not include a requirementto continue to provide support service warranty or updates for a work that has beenmodified or installed by the recipient or for the User Product in which it has beenmodified or installed Access to a network may be denied when the modification itselfmaterially and adversely affects the operation of the network or violates the rules andprotocols for communication across the networkCorresponding Source conveyed and Installation Information provided in accord withthis section must be in a format that is publicly documented (and with an implementa-tion available to the public in source code form) and must require no special passwordor key for unpacking reading or copying

7 Additional TermsldquoAdditional permissionsrdquo are terms that supplement the terms of this License by mak-ing exceptions from one or more of its conditions Additional permissions that areapplicable to the entire Program shall be treated as though they were included in thisLicense to the extent that they are valid under applicable law If additional permis-sions apply only to part of the Program that part may be used separately under thosepermissions but the entire Program remains governed by this License without regardto the additional permissionsWhen you convey a copy of a covered work you may at your option remove anyadditional permissions from that copy or from any part of it (Additional permissionsmay be written to require their own removal in certain cases when you modify thework) You may place additional permissions on material added by you to a coveredwork for which you have or can give appropriate copyright permissionNotwithstanding any other provision of this License for material you add to a coveredwork you may (if authorized by the copyright holders of that material) supplementthe terms of this License with termsa Disclaiming warranty or limiting liability differently from the terms of sections 15

and 16 of this License orb Requiring preservation of specified reasonable legal notices or author attributions

in that material or in the Appropriate Legal Notices displayed by works containingit or

Licenses 121

c Prohibiting misrepresentation of the origin of that material or requiring that mod-ified versions of such material be marked in reasonable ways as different from theoriginal version or

d Limiting the use for publicity purposes of names of licensors or authors of thematerial or

e Declining to grant rights under trademark law for use of some trade names trade-marks or service marks or

f Requiring indemnification of licensors and authors of that material by anyone whoconveys the material (or modified versions of it) with contractual assumptionsof liability to the recipient for any liability that these contractual assumptionsdirectly impose on those licensors and authors

All other non-permissive additional terms are considered ldquofurther restrictionsrdquo withinthe meaning of section 10 If the Program as you received it or any part of it con-tains a notice stating that it is governed by this License along with a term that is afurther restriction you may remove that term If a license document contains a furtherrestriction but permits relicensing or conveying under this License you may add to acovered work material governed by the terms of that license document provided thatthe further restriction does not survive such relicensing or conveying

If you add terms to a covered work in accord with this section you must place in therelevant source files a statement of the additional terms that apply to those files or anotice indicating where to find the applicable terms

Additional terms permissive or non-permissive may be stated in the form of a sep-arately written license or stated as exceptions the above requirements apply eitherway

8 Termination

You may not propagate or modify a covered work except as expressly provided un-der this License Any attempt otherwise to propagate or modify it is void and willautomatically terminate your rights under this License (including any patent licensesgranted under the third paragraph of section 11)

However if you cease all violation of this License then your license from a particularcopyright holder is reinstated (a) provisionally unless and until the copyright holderexplicitly and finally terminates your license and (b) permanently if the copyrightholder fails to notify you of the violation by some reasonable means prior to 60 daysafter the cessation

Moreover your license from a particular copyright holder is reinstated permanently ifthe copyright holder notifies you of the violation by some reasonable means this is thefirst time you have received notice of violation of this License (for any work) from thatcopyright holder and you cure the violation prior to 30 days after your receipt of thenotice

Termination of your rights under this section does not terminate the licenses of partieswho have received copies or rights from you under this License If your rights havebeen terminated and not permanently reinstated you do not qualify to receive newlicenses for the same material under section 10

122 OpenSS7 SS7 Stack

9 Acceptance Not Required for Having CopiesYou are not required to accept this License in order to receive or run a copy of theProgram Ancillary propagation of a covered work occurring solely as a consequence ofusing peer-to-peer transmission to receive a copy likewise does not require acceptanceHowever nothing other than this License grants you permission to propagate or modifyany covered work These actions infringe copyright if you do not accept this LicenseTherefore by modifying or propagating a covered work you indicate your acceptanceof this License to do so

10 Automatic Licensing of Downstream RecipientsEach time you convey a covered work the recipient automatically receives a licensefrom the original licensors to run modify and propagate that work subject to thisLicense You are not responsible for enforcing compliance by third parties with thisLicenseAn ldquoentity transactionrdquo is a transaction transferring control of an organization orsubstantially all assets of one or subdividing an organization or merging organizationsIf propagation of a covered work results from an entity transaction each party to thattransaction who receives a copy of the work also receives whatever licenses to the workthe partyrsquos predecessor in interest had or could give under the previous paragraph plusa right to possession of the Corresponding Source of the work from the predecessor ininterest if the predecessor has it or can get it with reasonable effortsYou may not impose any further restrictions on the exercise of the rights granted oraffirmed under this License For example you may not impose a license fee royalty orother charge for exercise of rights granted under this License and you may not initiatelitigation (including a cross-claim or counterclaim in a lawsuit) alleging that any patentclaim is infringed by making using selling offering for sale or importing the Programor any portion of it

11 PatentsA ldquocontributorrdquo is a copyright holder who authorizes use under this License of theProgram or a work on which the Program is based The work thus licensed is calledthe contributorrsquos ldquocontributor versionrdquoA contributorrsquos ldquoessential patent claimsrdquo are all patent claims owned or controlled bythe contributor whether already acquired or hereafter acquired that would be infringedby some manner permitted by this License of making using or selling its contributorversion but do not include claims that would be infringed only as a consequence offurther modification of the contributor version For purposes of this definition ldquocon-trolrdquo includes the right to grant patent sublicenses in a manner consistent with therequirements of this LicenseEach contributor grants you a non-exclusive worldwide royalty-free patent licenseunder the contributorrsquos essential patent claims to make use sell offer for sale importand otherwise run modify and propagate the contents of its contributor versionIn the following three paragraphs a ldquopatent licenserdquo is any express agreement or com-mitment however denominated not to enforce a patent (such as an express permissionto practice a patent or covenant not to sue for patent infringement) To ldquograntrdquo sucha patent license to a party means to make such an agreement or commitment not toenforce a patent against the party

Licenses 123

If you convey a covered work knowingly relying on a patent license and the Corre-sponding Source of the work is not available for anyone to copy free of charge and underthe terms of this License through a publicly available network server or other readilyaccessible means then you must either (1) cause the Corresponding Source to be soavailable or (2) arrange to deprive yourself of the benefit of the patent license for thisparticular work or (3) arrange in a manner consistent with the requirements of thisLicense to extend the patent license to downstream recipients ldquoKnowingly relyingrdquomeans you have actual knowledge that but for the patent license your conveying thecovered work in a country or your recipientrsquos use of the covered work in a countrywould infringe one or more identifiable patents in that country that you have reasonto believe are valid

If pursuant to or in connection with a single transaction or arrangement you conveyor propagate by procuring conveyance of a covered work and grant a patent licenseto some of the parties receiving the covered work authorizing them to use propagatemodify or convey a specific copy of the covered work then the patent license you grantis automatically extended to all recipients of the covered work and works based on it

A patent license is ldquodiscriminatoryrdquo if it does not include within the scope of its cover-age prohibits the exercise of or is conditioned on the non-exercise of one or more of therights that are specifically granted under this License You may not convey a coveredwork if you are a party to an arrangement with a third party that is in the business ofdistributing software under which you make payment to the third party based on theextent of your activity of conveying the work and under which the third party grantsto any of the parties who would receive the covered work from you a discriminatorypatent license (a) in connection with copies of the covered work conveyed by you (orcopies made from those copies) or (b) primarily for and in connection with specificproducts or compilations that contain the covered work unless you entered into thatarrangement or that patent license was granted prior to 28 March 2007

Nothing in this License shall be construed as excluding or limiting any implied license orother defenses to infringement that may otherwise be available to you under applicablepatent law

12 No Surrender of Othersrsquo Freedom

If conditions are imposed on you (whether by court order agreement or otherwise) thatcontradict the conditions of this License they do not excuse you from the conditionsof this License If you cannot convey a covered work so as to satisfy simultaneouslyyour obligations under this License and any other pertinent obligations then as aconsequence you may not convey it at all For example if you agree to terms thatobligate you to collect a royalty for further conveying from those to whom you conveythe Program the only way you could satisfy both those terms and this License wouldbe to refrain entirely from conveying the Program

13 Use with the GNU Affero General Public License

Notwithstanding any other provision of this License you have permission to link orcombine any covered work with a work licensed under version 3 of the GNU AfferoGeneral Public License into a single combined work and to convey the resulting workThe terms of this License will continue to apply to the part which is the covered work

124 OpenSS7 SS7 Stack

but the special requirements of the GNU Affero General Public License section 13concerning interaction through a network will apply to the combination as such

14 Revised Versions of this LicenseThe Free Software Foundation may publish revised andor new versions of the GNUGeneral Public License from time to time Such new versions will be similar in spiritto the present version but may differ in detail to address new problems or concernsEach version is given a distinguishing version number If the Program specifies thata certain numbered version of the GNU General Public License ldquoor any later versionrdquoapplies to it you have the option of following the terms and conditions either of thatnumbered version or of any later version published by the Free Software FoundationIf the Program does not specify a version number of the GNU General Public Licenseyou may choose any version ever published by the Free Software FoundationIf the Program specifies that a proxy can decide which future versions of the GNUGeneral Public License can be used that proxyrsquos public statement of acceptance of aversion permanently authorizes you to choose that version for the ProgramLater license versions may give you additional or different permissions However noadditional obligations are imposed on any author or copyright holder as a result of yourchoosing to follow a later version

15 Disclaimer of WarrantyTHERE IS NO WARRANTY FOR THE PROGRAM TO THE EXTENT PER-MITTED BY APPLICABLE LAW EXCEPT WHEN OTHERWISE STATED INWRITING THE COPYRIGHT HOLDERS ANDOR OTHER PARTIES PROVIDETHE PROGRAM ldquoAS ISrdquo WITHOUT WARRANTY OF ANY KIND EITHER EX-PRESSED OR IMPLIED INCLUDING BUT NOT LIMITED TO THE IMPLIEDWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULARPURPOSE THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCEOF THE PROGRAM IS WITH YOU SHOULD THE PROGRAM PROVE DEFEC-TIVE YOU ASSUME THE COST OF ALL NECESSARY SERVICING REPAIR ORCORRECTION

16 Limitation of LiabilityIN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO INWRITING WILL ANY COPYRIGHT HOLDER OR ANY OTHER PARTY WHOMODIFIES ANDOR CONVEYS THE PROGRAM AS PERMITTED ABOVE BELIABLE TO YOU FOR DAMAGES INCLUDING ANY GENERAL SPECIAL IN-CIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE ORINABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TOLOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUS-TAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAMTO OPERATE WITH ANY OTHER PROGRAMS) EVEN IF SUCH HOLDER OROTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAM-AGES

17 Interpretation of Sections 15 and 16If the disclaimer of warranty and limitation of liability provided above cannot be givenlocal legal effect according to their terms reviewing courts shall apply local law thatmost closely approximates an absolute waiver of all civil liability in connection with

Licenses 125

the Program unless a warranty or assumption of liability accompanies a copy of theProgram in return for a fee

END OF TERMS AND CONDITIONS

126 OpenSS7 SS7 Stack

How to Apply These Terms to Your New Programs

If you develop a new program and you want it to be of the greatest possible use to the publicthe best way to achieve this is to make it free software which everyone can redistribute andchange under these termsTo do so attach the following notices to the program It is safest to attach them to thestart of each source file to most effectively state the exclusion of warranty and each fileshould have at least the ldquocopyrightrdquo line and a pointer to where the full notice is found

one line to give the programrsquos name and a brief idea of what it does

Copyright (C) year name of author

This program is free software you can redistribute it andor modify

it under the terms of the GNU General Public License as published by

the Free Software Foundation either version 3 of the License or (at

your option) any later version

This program is distributed in the hope that it will be useful but

WITHOUT ANY WARRANTY without even the implied warranty of

MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE See the GNU

General Public License for more details

You should have received a copy of the GNU General Public License

along with this program If not see httpwwwgnuorglicenses

Also add information on how to contact you by electronic and paper mailIf the program does terminal interaction make it output a short notice like this when itstarts in an interactive mode

program Copyright (C) year name of author

This program comes with ABSOLUTELY NO WARRANTY for details type lsquoshow wrsquo

This is free software and you are welcome to redistribute it

under certain conditions type lsquoshow crsquo for details

The hypothetical commands lsquoshow wrsquo and lsquoshow crsquo should show the appropriate parts of theGeneral Public License Of course your programrsquos commands might be different for a GUIinterface you would use an ldquoabout boxrdquoYou should also get your employer (if you work as a programmer) or school if any to signa ldquocopyright disclaimerrdquo for the program if necessary For more information on this andhow to apply and follow the GNU GPL see httpwwwgnuorglicensesThe GNU General Public License does not permit incorporating your program into propri-etary programs If your program is a subroutine library you may consider it more usefulto permit linking proprietary applications with the library If this is what you want to douse the GNU Lesser General Public License instead of this License But first please readhttpwwwgnuorgphilosophywhy-not-lgplhtml

Licenses 127

GNU Lesser General Public License

GNU LESSER GENERAL PUBLIC LICENSEVersion 3 29 June 2007

Copyright ccopy 2007 Free Software Foundation Inc httpfsforg

Everyone is permitted to copy and distribute verbatim copies of thislicense document but changing it is not allowed

Terms and Conditions

This version of the GNU Lesser General Public License incorporates the terms and con-ditions of version 3 of the GNU General Public License supplemented by the additionalpermissions listed below0 Additional Definitions

As used herein ldquothis Licenserdquo refers to version 3 of the GNU Lesser General PublicLicense and the ldquoGNU GPLrdquo refers to version 3 of the GNU General Public LicenseldquoThe Libraryrdquo refers to a covered work governed by this License other than an Appli-cation or a Combined Work as defined belowAn ldquoApplicationrdquo is any work that makes use of an interface provided by the Librarybut which is not otherwise based on the Library Defining a subclass of a class definedby the Library is deemed a mode of using an interface provided by the LibraryA ldquoCombined Workrdquo is a work produced by combining or linking an Application withthe Library The particular version of the Library with which the Combined Work wasmade is also called the ldquoLinked VersionrdquoThe ldquoMinimal Corresponding Sourcerdquo for a Combined Work means the CorrespondingSource for the Combined Work excluding any source code for portions of the CombinedWork that considered in isolation are based on the Application and not on the LinkedVersionThe ldquoCorresponding Application Coderdquo for a Combined Work means the object codeandor source code for the Application including any data and utility programs neededfor reproducing the Combined Work from the Application but excluding the SystemLibraries of the Combined Work

1 Exception to Section 3 of the GNU GPLYou may convey a covered work under sections 3 and 4 of this License without beingbound by section 3 of the GNU GPL

2 Conveying Modified VersionsIf you modify a copy of the Library and in your modifications a facility refers to afunction or data to be supplied by an Application that uses the facility (other than asan argument passed when the facility is invoked) then you may convey a copy of themodified versiona under this License provided that you make a good faith effort to ensure that in

the event an Application does not supply the function or data the facility stilloperates and performs whatever part of its purpose remains meaningful or

128 OpenSS7 SS7 Stack

b under the GNU GPL with none of the additional permissions of this Licenseapplicable to that copy

3 Object Code Incorporating Material from Library Header FilesThe object code form of an Application may incorporate material from a header file thatis part of the Library You may convey such object code under terms of your choiceprovided that if the incorporated material is not limited to numerical parameters datastructure layouts and accessors or small macros inline functions and templates (tenor fewer lines in length) you do both of the followinga Give prominent notice with each copy of the object code that the Library is used

in it and that the Library and its use are covered by this Licenseb Accompany the object code with a copy of the GNU GPL and this license docu-

ment4 Combined Works

You may convey a Combined Work under terms of your choice that taken togethereffectively do not restrict modification of the portions of the Library contained in theCombined Work and reverse engineering for debugging such modifications if you alsodo each of the followinga Give prominent notice with each copy of the Combined Work that the Library is

used in it and that the Library and its use are covered by this Licenseb Accompany the Combined Work with a copy of the GNU GPL and this license

documentc For a Combined Work that displays copyright notices during execution include

the copyright notice for the Library among these notices as well as a referencedirecting the user to the copies of the GNU GPL and this license document

d Do one of the following0 Convey the Minimal Corresponding Source under the terms of this License

and the Corresponding Application Code in a form suitable for and underterms that permit the user to recombine or relink the Application with a mod-ified version of the Linked Version to produce a modified Combined Work inthe manner specified by section 6 of the GNU GPL for conveying Correspond-ing Source

1 Use a suitable shared library mechanism for linking with the Library Asuitable mechanism is one that (a) uses at run time a copy of the Libraryalready present on the userrsquos computer system and (b) will operate properlywith a modified version of the Library that is interface-compatible with theLinked Version

e Provide Installation Information but only if you would otherwise be required toprovide such information under section 6 of the GNU GPL and only to the extentthat such information is necessary to install and execute a modified version ofthe Combined Work produced by recombining or relinking the Application witha modified version of the Linked Version (If you use option 4d0 the InstallationInformation must accompany the Minimal Corresponding Source and Correspond-ing Application Code If you use option 4d1 you must provide the InstallationInformation in the manner specified by section 6 of the GNU GPL for conveyingCorresponding Source)

Licenses 129

5 Combined LibrariesYou may place library facilities that are a work based on the Library side by side ina single library together with other library facilities that are not Applications and arenot covered by this License and convey such a combined library under terms of yourchoice if you do both of the followinga Accompany the combined library with a copy of the same work based on the

Library uncombined with any other library facilities conveyed under the terms ofthis License

b Give prominent notice with the combined library that part of it is a work basedon the Library and explaining where to find the accompanying uncombined formof the same work

6 Revised Versions of the GNU Lesser General Public LicenseThe Free Software Foundation may publish revised andor new versions of the GNULesser General Public License from time to time Such new versions will be similarin spirit to the present version but may differ in detail to address new problems orconcernsEach version is given a distinguishing version number If the Library as you receivedit specifies that a certain numbered version of the GNU Lesser General Public Licenseldquoor any later versionrdquo applies to it you have the option of following the terms andconditions either of that published version or of any later version published by theFree Software Foundation If the Library as you received it does not specify a versionnumber of the GNU Lesser General Public License you may choose any version of theGNU Lesser General Public License ever published by the Free Software FoundationIf the Library as you received it specifies that a proxy can decide whether future versionsof the GNU Lesser General Public License shall apply that proxyrsquos public statementof acceptance of any version is permanent authorization for you to choose that versionfor the Library

END OF TERMS AND CONDITIONS

130 OpenSS7 SS7 Stack

GNU Free Documentation License

GNU FREE DOCUMENTATION LICENSEVersion 11 March 2000

Copyright ccopy 2000 Free Software Foundation Inc59 Temple Place Suite 330 Boston MA 02111-1307 USA

Everyone is permitted to copy and distribute verbatim copiesof this license document but changing it is not allowed

Preamble

The purpose of this License is to make a manual textbook or other written document freein the sense of freedom to assure everyone the effective freedom to copy and redistributeit with or without modifying it either commercially or noncommercially Secondarily thisLicense preserves for the author and publisher a way to get credit for their work while notbeing considered responsible for modifications made by others

This License is a kind of ldquocopyleftrdquo which means that derivative works of the documentmust themselves be free in the same sense It complements the GNU General Public Licensewhich is a copyleft license designed for free software

We have designed this License in order to use it for manuals for free software because freesoftware needs free documentation a free program should come with manuals providing thesame freedoms that the software does But this License is not limited to software manualsit can be used for any textual work regardless of subject matter or whether it is publishedas a printed book We recommend this License principally for works whose purpose isinstruction or reference

Terms and Conditions for Copying Distribution and Modification

1 APPLICABILITY AND DEFINITIONS

This License applies to any manual or other work that contains a notice placed bythe copyright holder saying it can be distributed under the terms of this License TheldquoDocumentrdquo below refers to any such manual or work Any member of the public isa licensee and is addressed as ldquoyourdquo

A ldquoModified Versionrdquo of the Document means any work containing the Document ora portion of it either copied verbatim or with modifications andor translated intoanother language

A ldquoSecondary Sectionrdquo is a named appendix or a front-matter section of the Documentthat deals exclusively with the relationship of the publishers or authors of the Documentto the Documentrsquos overall subject (or to related matters) and contains nothing thatcould fall directly within that overall subject (For example if the Document is in part atextbook of mathematics a Secondary Section may not explain any mathematics) Therelationship could be a matter of historical connection with the subject or with relatedmatters or of legal commercial philosophical ethical or political position regardingthem

Licenses 131

The ldquoInvariant Sectionsrdquo are certain Secondary Sections whose titles are designated asbeing those of Invariant Sections in the notice that says that the Document is releasedunder this LicenseThe ldquoCover Textsrdquo are certain short passages of text that are listed as Front-CoverTexts or Back-Cover Texts in the notice that says that the Document is released underthis LicenseA ldquoTransparentrdquo copy of the Document means a machine-readable copy representedin a format whose specification is available to the general public whose contents canbe viewed and edited directly and straightforwardly with generic text editors or (forimages composed of pixels) generic paint programs or (for drawings) some widely avail-able drawing editor and that is suitable for input to text formatters or for automatictranslation to a variety of formats suitable for input to text formatters A copy madein an otherwise Transparent file format whose markup has been designed to thwart ordiscourage subsequent modification by readers is not Transparent A copy that is notldquoTransparentrdquo is called ldquoOpaquerdquoExamples of suitable formats for Transparent copies include plain ascii withoutmarkup Texinfo input format LaTEX input format SGML or XML using apublicly available DTD and standard-conforming simple HTML designed for humanmodification Opaque formats include PostScript PDF proprietary formats that canbe read and edited only by proprietary word processors SGML or XML for which theDTD andor processing tools are not generally available and the machine-generatedHTML produced by some word processors for output purposes onlyThe ldquoTitle Pagerdquo means for a printed book the title page itself plus such followingpages as are needed to hold legibly the material this License requires to appear in thetitle page For works in formats which do not have any title page as such ldquoTitle Pagerdquomeans the text near the most prominent appearance of the workrsquos title preceding thebeginning of the body of the text

2 VERBATIM COPYINGYou may copy and distribute the Document in any medium either commercially ornoncommercially provided that this License the copyright notices and the licensenotice saying this License applies to the Document are reproduced in all copies andthat you add no other conditions whatsoever to those of this License You may not usetechnical measures to obstruct or control the reading or further copying of the copiesyou make or distribute However you may accept compensation in exchange for copiesIf you distribute a large enough number of copies you must also follow the conditionsin section 3You may also lend copies under the same conditions stated above and you may publiclydisplay copies

3 COPYING IN QUANTITYIf you publish printed copies of the Document numbering more than 100 and theDocumentrsquos license notice requires Cover Texts you must enclose the copies in coversthat carry clearly and legibly all these Cover Texts Front-Cover Texts on the frontcover and Back-Cover Texts on the back cover Both covers must also clearly andlegibly identify you as the publisher of these copies The front cover must present thefull title with all words of the title equally prominent and visible You may add other

132 OpenSS7 SS7 Stack

material on the covers in addition Copying with changes limited to the covers as longas they preserve the title of the Document and satisfy these conditions can be treatedas verbatim copying in other respectsIf the required texts for either cover are too voluminous to fit legibly you should putthe first ones listed (as many as fit reasonably) on the actual cover and continue therest onto adjacent pagesIf you publish or distribute Opaque copies of the Document numbering more than 100you must either include a machine-readable Transparent copy along with each Opaquecopy or state in or with each Opaque copy a publicly-accessible computer-networklocation containing a complete Transparent copy of the Document free of added ma-terial which the general network-using public has access to download anonymously atno charge using public-standard network protocols If you use the latter option youmust take reasonably prudent steps when you begin distribution of Opaque copiesin quantity to ensure that this Transparent copy will remain thus accessible at thestated location until at least one year after the last time you distribute an Opaquecopy (directly or through your agents or retailers) of that edition to the publicIt is requested but not required that you contact the authors of the Document wellbefore redistributing any large number of copies to give them a chance to provide youwith an updated version of the Document

4 MODIFICATIONSYou may copy and distribute a Modified Version of the Document under the conditionsof sections 2 and 3 above provided that you release the Modified Version under preciselythis License with the Modified Version filling the role of the Document thus licensingdistribution and modification of the Modified Version to whoever possesses a copy ofit In addition you must do these things in the Modified VersionA Use in the Title Page (and on the covers if any) a title distinct from that of the

Document and from those of previous versions (which should if there were anybe listed in the History section of the Document) You may use the same title asa previous version if the original publisher of that version gives permission

B List on the Title Page as authors one or more persons or entities responsible forauthorship of the modifications in the Modified Version together with at least fiveof the principal authors of the Document (all of its principal authors if it has lessthan five)

C State on the Title page the name of the publisher of the Modified Version as thepublisher

D Preserve all the copyright notices of the DocumentE Add an appropriate copyright notice for your modifications adjacent to the other

copyright noticesF Include immediately after the copyright notices a license notice giving the public

permission to use the Modified Version under the terms of this License in the formshown in the Addendum below

G Preserve in that license notice the full lists of Invariant Sections and required CoverTexts given in the Documentrsquos license notice

H Include an unaltered copy of this License

Licenses 133

I Preserve the section entitled ldquoHistoryrdquo and its title and add to it an item statingat least the title year new authors and publisher of the Modified Version asgiven on the Title Page If there is no section entitled ldquoHistoryrdquo in the Documentcreate one stating the title year authors and publisher of the Document as givenon its Title Page then add an item describing the Modified Version as stated inthe previous sentence

J Preserve the network location if any given in the Document for public access toa Transparent copy of the Document and likewise the network locations given inthe Document for previous versions it was based on These may be placed in theldquoHistoryrdquo section You may omit a network location for a work that was publishedat least four years before the Document itself or if the original publisher of theversion it refers to gives permission

K In any section entitled ldquoAcknowledgmentsrdquo or ldquoDedicationsrdquo preserve the sec-tionrsquos title and preserve in the section all the substance and tone of each of thecontributor acknowledgments andor dedications given therein

L Preserve all the Invariant Sections of the Document unaltered in their text andin their titles Section numbers or the equivalent are not considered part of thesection titles

M Delete any section entitled ldquoEndorsementsrdquo Such a section may not be includedin the Modified Version

N Do not retitle any existing section as ldquoEndorsementsrdquo or to conflict in title withany Invariant Section

If the Modified Version includes new front-matter sections or appendices that qualifyas Secondary Sections and contain no material copied from the Document you may atyour option designate some or all of these sections as invariant To do this add theirtitles to the list of Invariant Sections in the Modified Versionrsquos license notice Thesetitles must be distinct from any other section titlesYou may add a section entitled ldquoEndorsementsrdquo provided it contains nothing butendorsements of your Modified Version by various partiesmdashfor example statements ofpeer review or that the text has been approved by an organization as the authoritativedefinition of a standardYou may add a passage of up to five words as a Front-Cover Text and a passage of upto 25 words as a Back-Cover Text to the end of the list of Cover Texts in the ModifiedVersion Only one passage of Front-Cover Text and one of Back-Cover Text may beadded by (or through arrangements made by) any one entity If the Document alreadyincludes a cover text for the same cover previously added by you or by arrangementmade by the same entity you are acting on behalf of you may not add another butyou may replace the old one on explicit permission from the previous publisher thatadded the old oneThe author(s) and publisher(s) of the Document do not by this License give permissionto use their names for publicity for or to assert or imply endorsement of any ModifiedVersion

5 COMBINING DOCUMENTSYou may combine the Document with other documents released under this Licenseunder the terms defined in section 4 above for modified versions provided that you

134 OpenSS7 SS7 Stack

include in the combination all of the Invariant Sections of all of the original documentsunmodified and list them all as Invariant Sections of your combined work in its licensenoticeThe combined work need only contain one copy of this License and multiple identicalInvariant Sections may be replaced with a single copy If there are multiple InvariantSections with the same name but different contents make the title of each such sectionunique by adding at the end of it in parentheses the name of the original author orpublisher of that section if known or else a unique number Make the same adjustmentto the section titles in the list of Invariant Sections in the license notice of the combinedworkIn the combination you must combine any sections entitled ldquoHistoryrdquo in the variousoriginal documents forming one section entitled ldquoHistoryrdquo likewise combine any sec-tions entitled ldquoAcknowledgmentsrdquo and any sections entitled ldquoDedicationsrdquo You mustdelete all sections entitled ldquoEndorsementsrdquo

6 COLLECTIONS OF DOCUMENTSYou may make a collection consisting of the Document and other documents releasedunder this License and replace the individual copies of this License in the variousdocuments with a single copy that is included in the collection provided that youfollow the rules of this License for verbatim copying of each of the documents in allother respectsYou may extract a single document from such a collection and distribute it individu-ally under this License provided you insert a copy of this License into the extracteddocument and follow this License in all other respects regarding verbatim copying ofthat document

7 AGGREGATION WITH INDEPENDENT WORKSA compilation of the Document or its derivatives with other separate and independentdocuments or works in or on a volume of a storage or distribution medium does notas a whole count as a Modified Version of the Document provided no compilationcopyright is claimed for the compilation Such a compilation is called an ldquoaggregaterdquoand this License does not apply to the other self-contained works thus compiled withthe Document on account of their being thus compiled if they are not themselvesderivative works of the DocumentIf the Cover Text requirement of section 3 is applicable to these copies of the Documentthen if the Document is less than one quarter of the entire aggregate the DocumentrsquosCover Texts may be placed on covers that surround only the Document within theaggregate Otherwise they must appear on covers around the whole aggregate

8 TRANSLATIONTranslation is considered a kind of modification so you may distribute translationsof the Document under the terms of section 4 Replacing Invariant Sections withtranslations requires special permission from their copyright holders but you mayinclude translations of some or all Invariant Sections in addition to the original versionsof these Invariant Sections You may include a translation of this License provided thatyou also include the original English version of this License In case of a disagreementbetween the translation and the original English version of this License the originalEnglish version will prevail

Licenses 135

9 TERMINATIONYou may not copy modify sublicense or distribute the Document except as expresslyprovided for under this License Any other attempt to copy modify sublicense ordistribute the Document is void and will automatically terminate your rights underthis License However parties who have received copies or rights from you under thisLicense will not have their licenses terminated so long as such parties remain in fullcompliance

10 FUTURE REVISIONS OF THIS LICENSEThe Free Software Foundation may publish new revised versions of the GNU FreeDocumentation License from time to time Such new versions will be similar in spiritto the present version but may differ in detail to address new problems or concernsSee httpwwwgnuorgcopyleftEach version of the License is given a distinguishing version number If the Documentspecifies that a particular numbered version of this License ldquoor any later versionrdquoapplies to it you have the option of following the terms and conditions either of thatspecified version or of any later version that has been published (not as a draft) bythe Free Software Foundation If the Document does not specify a version number ofthis License you may choose any version ever published (not as a draft) by the FreeSoftware Foundation

END OF TERMS AND CONDITIONS

136 OpenSS7 SS7 Stack

How to use this License for your documents

To use this License in a document you have written include a copy of the License in thedocument and put the following copyright and license notices just after the title page

Copyright (C) year your name

Permission is granted to copy distribute andor modify this document

under the terms of the GNU Free Documentation License Version 11

or any later version published by the Free Software Foundation

with the Invariant Sections being list their titles with the

Front-Cover Texts being list and with the Back-Cover Texts being list

A copy of the license is included in the section entitled lsquolsquoGNU

Free Documentation Licensersquorsquo

If you have no Invariant Sections write ldquowith no Invariant Sectionsrdquo instead of saying whichones are invariant If you have no Front-Cover Texts write ldquono Front-Cover Textsrdquo insteadof ldquoFront-Cover Texts being listrdquo likewise for Back-Cover TextsIf your document contains nontrivial examples of program code we recommend releasingthese examples in parallel under your choice of free software license such as the GNUGeneral Public License to permit their use in free software

Indices 137

Indices

Index of Concepts

Aapplications 19apt 48 51Architectures 36authors 5

Bbinary debs 54 63 80binary rpms 51 62 79 80bug reports automatic generation 99bug reports generating 98bug reports stand along generation 100bugs 43bugs history 44bugs known 44bugs reporting 97building 77building source dscs 78building source srpm 77building tar ball 78

Ccheckout cvs 59compatibility 34configuration 61configure environment variables 74configure options 67configuring binary debs 63configuring binary rpms 62configuring source dscs 67configuring source srpm 63configuring tar ball 67conformance 31contributors 5conventions 16credits 4cvs 59

Ddefinitions 16device 28device drivers 28downloading 49downloading apt 51downloading binary rpms 51downloading debian debs 54downloading debian dscs 57downloading source srpm 57

downloading tar ball 58downloading yum 49drivers 28

Ggenerating bug reports 98 100generating bug reports automatically 99generating problem reports 98generating problem reports automatically 99generating problem reports stand alone 100GNULinux Distributions 34

Hhistory 46history bugs 44

Iindices 137installation 47installing 79installing binary debs 80installing binary rpms 79installing tar ball 80introduction 15

KKernel 36known bugs 44known problems 101

Llicense AGPL 104license FDL 130license GNU Affero General Public License 104license GNU Free Documentation License 130license GNU General Public License 115license GPL 115license Lesser General Public License 127license LGPL 127licenses 103licensing 1Linux Fast-STREAMS 37Linux STREAMS 37loading 81

138 OpenSS7 SS7 Stack

Mmaintainer 5manual abstract 1manual audience 1manual disclaimer 4manual intent 1manual notice 1manual objective 1manual revisions 2maturity 42

Oobjective 17organization 15overview 15

Ppost-installation checks 96pre-installation checks 93prerequisites 33problem reports 97problems known 101

Qquick start guide 9

Rreference 19release notes 37release strss7-09a-1 42release strss7-09a-2 41release strss7-09a-3 41release strss7-09a-4 41release strss7-09a5 40release strss7-09a6 39release strss7-09a7 38release strss7-09a8 37releases 33removing 80removing binary debs 80removing binary rpms 80removing source dscs 81removing source srpm 81

removing tar ball 81reporting bugs 97repositories 47repositories apt 48repositories yum 47

Sschedule 45source dscs 57 67 78 81source rpms 57 63 77 81sponsors 4ss7 protocol stack 20strss7-dev-09a8-172i686rpm 62strss7-devel-09a8-172i686rpm 62strss7-doc-09a8-172i686rpm 62strss7-LiS-core-2420-287-09a8-172i686rpm

62strss7-LiS-info-2420-287-09a8-172i686rpm

62strss7-LiS-lib-09a8-172i686rpm 62strss7-LiS-util-09a8-172i686rpm 63strss7-source-09a8-172i686rpm 63strss7-streams-core-2420-287-09a8-172i686-

rpm 62strss7-streams-info-2420-287-09a8-172i686-

rpm 62strss7-streams-lib-09a8-172i686rpm 62strss7-streams-util-09a8-172i686rpm 63

Ttar ball 58 67 78 80 81test suites 93test suites running 97troubleshooting 93

Wweb resources 6

Xx400p t400p t100p e400p e100p te405p te410p 29

Yyum 47 49

Indices 139

Index of Data Types

Aapt-get(8) 38

Y

yum(8) 38

140 OpenSS7 SS7 Stack

Index of Functions and Macros

(Index is nonexistent)

Indices 141

Index of Variables and Constants

AAUTOM4TE 77AUTOTEST 77

BBZIP2 75BZIP2_CMD 75

CCHKCONFIG 75

DDEB_BUILD_ARCH 75DEB_BUILD_GNU_CPU 76DEB_BUILD_GNU_SYSTEM 76DEB_BUILD_GNU_TYPE 76DEB_HOST_ARCH 76DEB_HOST_GNU_CPU 76DEB_HOST_GNU_SYSTEM 76DEB_HOST_GNU_TYPE 76DEPMOD 76DESTDIR 76DPKG 75DPKG_BUILDPACKAGE 75DPKG_SOURCE 75

GGENKSYMS 77GNUPGHOME 74GNUPGUSER 74GPG 74GPGPASSWD 74GZIP 75GZIP_CMD 75

IIRQF_DISABLED 37IRQF_SHARED 37

KKGENKSYMS 77

LLDCONFIG 76LSMOD 76LSOF 76

MMAKEWHATIS 75MODPOST_CACHE 77MODPROBE 76MODULE_VERSION 38

NNM 77

OOBJDUMP 77

PPACKAGE_KVERSION 64PIC 75

RREFER 74RPM 75RPMBUILD 75

SSA_INTERRUPT 37SA_SHIRQ 37SOELIM 74

TTBL 74

142 OpenSS7 SS7 Stack

Index of Files and Programs

libmodules2420-287streams 82

Indices 143

Index of Configuration Options

332bit-libs 68

Aarch 69autotest 68

Bbase-major 74

Cchecks 65 68compress-manpages 68cooked-manpages 65 71

Ddeb-epoch 72deb-release 72deb-topdir 72devel 66 69devfs 70docs 66 69

Ggpg-home 71gpg-user 70

Iindep 69initscripts 68

Kk-archdir 73k-build 72k-config 73

k-debug 65 70k-inline 66 70k-linkage 72k-machdir 73k-modules 72k-modversions 66 70k-optimize 65 73k-release 64 72k-safe 66 70k-sysmap 73k-test 65 70

Llfs 67 74lis 67 73

Mmodules 67 69

Ppkg-distdir 71pkg-epoch 71pkg-release 71public 65 68

Rrpm-epoch 71rpm-extra 71rpm-release 71rpm-topdir 71

Sstrconf-master 74

Ttools 66 69

144 OpenSS7 SS7 Stack

Index of Makefile Targets

Aall 82 83

Ccheck 83check-clean 86checklog 88clean 85compilelog 88csig 92

Ddebs 91dist 85distlog 88distcheck 85distchecklog 88distclean 85doxy 92dsc 91

Fforced-release 87forced-release-sign 87

Iinstall 82 83install-mans 86install-strip 82 83installlog 88installcheck 84installchecklog 88

Mmaintainer-clean 86

mans 86mostlyclean 85

Ppr 89 99

Rrebuild 91rebuildlog 88release 87release-archives 89release-clean 87release-clean-archives 90release-sign 87release-sign-archives 90release-signlog 89releaselog 88remove 84removelog 88resign 91resignlog 88retest 84rpms 90

Ssend-pr 89sign 90sigs 91srpm 90srpm-sign 90srpmlog 88

Uuninstall 84uninstall-mans 86uninstalllog 88

Indices 145

Index of Authors

Bidulock Brian 5

146 OpenSS7 SS7 Stack

Index of Manual Pages Referenced

Aapt(8) 9 47 51autoconf(1) 9 52 55 58 60 61 67 79 84autom4te(1) 77automake(1) 60 65 66 67 69 70 80 81 83

84 85 86 87 88autoreconf(1) 83

Bbzip2(1) 75

Cchkconfig(8) 75cvs(1) 9 59

Ddepmod(8) 76devfsd(1) 66devfsd(8) 70doxygen(1) 92dpkg(1) 47 49 58 61 69 71 75 84dpkg(8) 80 81dpkg-buildpackage(1) 75dpkg-source(1) 75

Eethereal(1) 46

Ggcc(1) 11genksyms(8) 60 77gettext(1) 67git(1) 9gpg(1) 70grefer(1) 60 65 71groff(1) 60 65 71gzip(1) 75

Iinit_install(8) 75init_remove(8) 75

Lldconfig(8) 76libtool(1) 67lsmod(8) 76lsof(1) 76

Mmake(1) 61 68makewhatis(8) 75modpost(1) 77modprobe(8) 76

Nnm(1) 77

Oobjdump(1) 77

Ppcap(3) 46pic(1) 65 71 75

Rrefer(1) 65 71 74rpm(1) 47 49 51 58 61 69 71 75 77 79 80

84 87 90rpm(8) 63 79rpmbuild(1) 64 75

Ssoelim(1) 65 71 74STREAMS(9) 1

Ttar(1) 58 85tbl(1) 65 71 74tee(1) 87texinfo(1) 66 69

Wwget(1) 47 58wireshark(1) 46

Yyast(8) 47yum(8) 9 47 49 51

Zzypper(8) 47 49

  • Preface
    • Notice
    • Abstract
      • Objective
      • Intent
      • Audience
        • Revisions
          • Version Control
          • ISO 9000 Compliance
            • Disclaimer
              • US Government Restricted Rights
                • Acknowledgements
                  • Sponsors
                  • Contributors
                    • Authors
                    • Maintainer
                    • Web Resources
                      • Quick Start Guide
                        • OpenSS7 SS7 Stack
                          • Release
                          • Prerequisites
                          • Installation
                          • Brief Installation Instructions
                          • Detailed Installation Instructions
                              • Introduction
                                • Overview
                                • Organization of this Manual
                                • Conventions and Definitions
                                  • Objective
                                  • Reference
                                    • Applications
                                    • SS7 Protocol Stack
                                      • Signalling Data Link (SDL)
                                      • Signalling Data Terminal (SDT)
                                      • Signalling Link (SL)
                                      • Message Transfer Part (MTP)
                                      • Signalling Connection Control Part (SCCP)
                                      • Transaction Capabilities Application Part (TCAP)
                                      • Base Station System Application Part (BSSAP)
                                        • Device Drivers
                                          • Digium Drivers
                                          • SeaLevel ACB56 Drivers
                                              • Conformance
                                              • Releases
                                                • Prerequisites
                                                • Compatibility
                                                  • GNULinux Distributions
                                                  • Kernel
                                                  • Architectures
                                                  • Linux STREAMS
                                                  • Linux Fast-STREAMS
                                                    • Release Notes
                                                      • Major changes for release strss7-09a8
                                                      • Major changes for release strss7-09a7
                                                      • Major changes for release strss7-09a6
                                                      • Major changes for release strss7-09a5
                                                      • Major changes for release strss7-09a-4
                                                      • Major changes for release strss7-09a-3
                                                      • Major changes for release strss7-09a-2
                                                      • Initial release strss7-09a-1
                                                        • Maturity
                                                          • Pre-Alpha Releases
                                                          • Alpha Releases
                                                          • Beta Releases
                                                          • Gamma Releases
                                                          • Production Releases
                                                          • Unstable Releases
                                                            • Bugs
                                                              • Defect Notices
                                                              • Known Defects
                                                              • Defect History
                                                                • Schedule
                                                                • History
                                                                  • Installation
                                                                    • Repositories
                                                                      • Repositories for YUM
                                                                      • Repositories for APT
                                                                        • Downloading
                                                                          • Downloading with YUM
                                                                          • Downloading with APT
                                                                          • Downloading the Binary RPM
                                                                          • Downloading the Debian DEB
                                                                          • Downloading the Source RPM
                                                                          • Downloading the Debian DSC
                                                                          • Downloading the Tar Ball
                                                                          • Downloading from CVS
                                                                            • Configuration
                                                                              • Configuring the Binary RPM
                                                                              • Configuring the Debian DEB
                                                                              • Configuring the Source RPM
                                                                              • Configuring the Debian DSC
                                                                              • Configuring the Tar Ball
                                                                                • Configure Options
                                                                                • Environment Variables
                                                                                • Build
                                                                                    • Building
                                                                                      • Building from the Source RPM
                                                                                      • Building from the Debian DSC
                                                                                      • Building from the Tar Ball
                                                                                        • Native Build
                                                                                        • Cross-Build
                                                                                            • Installing
                                                                                              • Installing the Binary RPM
                                                                                              • Installing the Debian DEB
                                                                                              • Installing the Tar Ball
                                                                                                • Removing
                                                                                                  • Removing the Binary RPM
                                                                                                  • Removing the Debian DEB
                                                                                                  • Removing the Source RPM
                                                                                                  • Removing the Debian DSC
                                                                                                  • Removing the Tar Ball
                                                                                                    • Loading
                                                                                                      • Normal Module Loading
                                                                                                        • Linux Fast-STREAMS Module Loading
                                                                                                        • Linux STREAMS Module Loading
                                                                                                            • Maintenance
                                                                                                              • Makefile Targets
                                                                                                                • User Targets
                                                                                                                • Maintainer Targets
                                                                                                                • Clean Targets
                                                                                                                • Manual Page Targets
                                                                                                                • Release Targets
                                                                                                                • Logging Targets
                                                                                                                • Problem Report Targets
                                                                                                                • Release Archive Targets
                                                                                                                • RPM Build Targets
                                                                                                                • Debian Build Targets
                                                                                                                • Documentation Targets
                                                                                                                  • Troubleshooting
                                                                                                                    • Test Suites
                                                                                                                      • Pre-installation Checks
                                                                                                                        • Pre-Installation System Checks
                                                                                                                        • Pre-Installation Maintenance Checks
                                                                                                                        • Specific Pre-Installation Checks
                                                                                                                          • Post-installation Checks
                                                                                                                            • Running Test Suites
                                                                                                                                • Problem Reports
                                                                                                                                  • Problem Report Guidelines
                                                                                                                                  • Generating Problem Reports
                                                                                                                                  • Automatic Problem Reports
                                                                                                                                  • Stand Alone Problem Reports
                                                                                                                                    • Known Problems
                                                                                                                                      • Licenses
                                                                                                                                        • GNU Affero General Public License
                                                                                                                                          • Preamble
                                                                                                                                          • How to Apply These Terms to Your New Programs
                                                                                                                                            • GNU General Public License
                                                                                                                                              • Preamble
                                                                                                                                              • How to Apply These Terms to Your New Programs
                                                                                                                                                • GNU Lesser General Public License
                                                                                                                                                  • Terms and Conditions
                                                                                                                                                    • GNU Free Documentation License
                                                                                                                                                      • Preamble
                                                                                                                                                      • Terms and Conditions for Copying Distribution and Modification
                                                                                                                                                      • How to use this License for your documents
                                                                                                                                                          • Indices
                                                                                                                                                            • Index of Concepts
                                                                                                                                                            • Index of Data Types
                                                                                                                                                            • Index of Functions and Macros
                                                                                                                                                            • Index of Variables and Constants
                                                                                                                                                            • Index of Files and Programs
                                                                                                                                                            • Index of Configuration Options
                                                                                                                                                            • Index of Makefile Targets
                                                                                                                                                            • Index of Authors
                                                                                                                                                            • Index of Manual Pages Referenced
Page 4: OpenSS7 SS7 Stack Installation and Reference Manual · 2008. 10. 31. · vi OpenSS7 SS7 Stack 6.8.1.5 Release Targets:::::86 6.8.1.6 Logging Targets::::: 87 6.8.1.7 Problem Report

iii

Table of Contents

Preface 1Notice 1Abstract 1

Objective 1Intent 1Audience 1

Revisions 2Version Control 2ISO 9000 Compliance 4

Disclaimer 4US Government Restricted Rights 4

Acknowledgements 4Sponsors 4Contributors 5

Authors 5Maintainer 5Web Resources 6

Quick Start Guide 9OpenSS7 SS7 Stack 9

Release 9Prerequisites 10Installation 11Brief Installation Instructions 12Detailed Installation Instructions 13

1 Introduction 1511 Overview 1512 Organization of this Manual 1513 Conventions and Definitions 16

2 Objective 17

3 Reference 1931 Applications 1932 SS7 Protocol Stack 20

321 Signalling Data Link (SDL) 21322 Signalling Data Terminal (SDT) 22323 Signalling Link (SL) 23324 Message Transfer Part (MTP) 24325 Signalling Connection Control Part (SCCP) 25326 Transaction Capabilities Application Part (TCAP) 26

iv OpenSS7 SS7 Stack

327 Base Station System Application Part (BSSAP) 2733 Device Drivers 28

331 Digium Drivers 29332 SeaLevel ACB56 Drivers 30

4 Conformance 31

5 Releases 3351 Prerequisites 3352 Compatibility 34

521 GNULinux Distributions 34522 Kernel 36523 Architectures 36524 Linux STREAMS 37525 Linux Fast-STREAMS 37

53 Release Notes 37Major changes for release strss7-09a8 37Major changes for release strss7-09a7 38Major changes for release strss7-09a6 39Major changes for release strss7-09a5 40Major changes for release strss7-09a-4 41Major changes for release strss7-09a-3 41Major changes for release strss7-09a-2 41Initial release strss7-09a-1 42

54 Maturity 42541 Pre-Alpha Releases 42542 Alpha Releases 42543 Beta Releases 42544 Gamma Releases 42545 Production Releases 43546 Unstable Releases 43

55 Bugs 43551 Defect Notices 43552 Known Defects 44553 Defect History 44

56 Schedule 4557 History 46

v

6 Installation 4761 Repositories 47

611 Repositories for YUM 47612 Repositories for APT 48

62 Downloading 49621 Downloading with YUM 49622 Downloading with APT 51623 Downloading the Binary RPM 51624 Downloading the Debian DEB 54625 Downloading the Source RPM 57626 Downloading the Debian DSC 57627 Downloading the Tar Ball 58628 Downloading from CVS 59

63 Configuration 61631 Configuring the Binary RPM 62632 Configuring the Debian DEB 63633 Configuring the Source RPM 63634 Configuring the Debian DSC 67635 Configuring the Tar Ball 67

6351 Configure Options 676352 Environment Variables 746353 Build 77

64 Building 77641 Building from the Source RPM 77642 Building from the Debian DSC 78643 Building from the Tar Ball 78

6431 Native Build 796432 Cross-Build 79

65 Installing 79651 Installing the Binary RPM 79652 Installing the Debian DEB 80653 Installing the Tar Ball 80

66 Removing 80661 Removing the Binary RPM 80662 Removing the Debian DEB 80663 Removing the Source RPM 81664 Removing the Debian DSC 81665 Removing the Tar Ball 81

67 Loading 81671 Normal Module Loading 81

6711 Linux Fast-STREAMS Module Loading 826712 Linux STREAMS Module Loading 82

68 Maintenance 82681 Makefile Targets 83

6811 User Targets 836812 Maintainer Targets 856813 Clean Targets 856814 Manual Page Targets 86

vi OpenSS7 SS7 Stack

6815 Release Targets 866816 Logging Targets 876817 Problem Report Targets 896818 Release Archive Targets 896819 RPM Build Targets 9068110 Debian Build Targets 9168111 Documentation Targets 92

7 Troubleshooting 9371 Test Suites 93

711 Pre-installation Checks 937111 Pre-Installation System Checks 937112 Pre-Installation Maintenance Checks 947113 Specific Pre-Installation Checks 94

712 Post-installation Checks 967121 Running Test Suites 97

72 Problem Reports 97721 Problem Report Guidelines 98722 Generating Problem Reports 98723 Automatic Problem Reports 99724 Stand Alone Problem Reports 100

73 Known Problems 101

Licenses 103GNU Affero General Public License 104

Preamble 104How to Apply These Terms to Your New Programs 114

GNU General Public License 115Preamble 115How to Apply These Terms to Your New Programs 126

GNU Lesser General Public License 127Terms and Conditions 127

GNU Free Documentation License 130Preamble 130Terms and Conditions for Copying Distribution and Modification

130How to use this License for your documents 136

Indices 137Index of Concepts 137Index of Data Types 139Index of Functions and Macros 140Index of Variables and Constants 141Index of Files and Programs 142Index of Configuration Options 143Index of Makefile Targets 144Index of Authors 145Index of Manual Pages Referenced 146

Preface 1

Preface

Notice

This package is released and distributed under the AGPL (see [GNU Affero General PublicLicense] page 104) Please note however that there are different licensing terms for themanual pages and some of the documentation (derived from OpenGroup1 publications andother sources) Consult the permission notices contained in the documentation for moreinformationThis manual is released under the FDL (see [GNU Free Documentation License] page 130)with no sections invariant

Abstract

This manual provides a Installation and Reference Manual for OpenSS7 SS7 Stack

Objective

The objective of this manual is to provide a guide for the STREAMS programmer whendeveloping STREAMS modules drivers and application programs for OpenSS7 SS7 StackThis guide provides information to developers on the use of the STREAMS mechanism atuser and kernel levelsSTREAMS was incorporated in UNIX System V Release 3 to augment the character in-putoutput (IO) mechanism and to support development of communication servicesSTREAMS provides developers with integral functions a set of utility routines and facilitiesthat expedite software design and implementation

Intent

The intent of this manual is to act as an introductory guide to the STREAMS programmerIt is intended to be read alone and is not intended to replace or supplement the OpenSS7 SS7Stack manual pages For a reference for writing code the manual pages (see STREAMS(9))provide a better reference to the programmer Although this describes the features of theOpenSS7 SS7 Stack package OpenSS7 Corporation is under no obligation to provide anysoftware system or feature listed herein

Audience

This manual is intended for a highly technical audience The reader should already befamiliar with Linux kernel programming the Linux file system character devices driverinput and output interrupts software interrupt handling scheduling process contextsmultiprocessor locks etcThe guide is intended for network and systems programmers who use the STREAMSmechanism at user and kernel levels for Linux and UNIX system communication servicesReaders of the guide are expected to possess prior knowledge of the Linux and UNIX systemprogramming networking and data communication

1 Formerly XOpen and UNIX International

2 OpenSS7 SS7 Stack

Revisions

Take care that you are working with a current version of this manual you will not benotified of updates To ensure that you are working with a current version contact theAuthor or check The OpenSS7 Project website for a current versionA current version of this manual is normally distributed with the OpenSS7 SS7 Stackpackage strss7-09a82

Version Controlstrss7texiv

Revision 09227 2008-09-20 110426 brian

- added package patchlevel

Revision 09226 2008-08-03 060328 brian

- protected agains texinfo commands in log entries

Revision 09225 20080727 084858 brian

- no invariant sections more libtool ignores

Revision 09224 2008-04-29 071035 brian

- updating headers for release

Revision 09223 2008-04-25 115046 brian

- updates to AGPLv3

Revision 09222 20070815 051816 brian

- GPLv3 updates

Revision 09221 20070812 064407 brian

- updated licenses in manuals

Revision 09220 20070803 133451 brian

- manual updates put ss7 modules in public release

Revision 09219 20070228 063035 brian

- updates and corrections ifdef instead of if

Revision 09218 20061002 113129 brian

- changes to get master builds working for RPM and DEB

- added outside licenses to package documentation

- added LICENSE automated release file

- copy MANUAL to source directory

- add and remove devices in -dev debian subpackages

- get debian rules working better

- release library version files

- added notes to debian changelog

- corrections for cooked manual pages in spec files

- added release documentation to spec and rules files

- copyright header updates

- moved controlling tty checks in stream head

- missing some defines for LiS build in various source files

- added OSI headers to striso package

- added includes and manual page paths to acincludes for various packages

- added sunrpc uidlpi uinpi and uitpi licenses to documentation and release

files

2 httpwwwopenss7orgtarballsstrss7-09a8tarbz2

Preface 3

- moved pragma weak statements ahead of declarations

- changes for master build of RPMS and DEBS with LiS

Revision 09217 20060828 104655 brian

- correction

Revision 09216 20060828 103246 brian

- updated references

Revision 09215 20060827 122638 brian

- finalizing auto release files

Revision 09214 20060826 091650 brian

- better release file generation

Revision 09213 20060823 110028 brian

- added preface corrections and updates for release

Revision 09212 20060822 124409 brian

- documentation updates

Revision 09211 20060322 100200 brian

- added makefile target index

Revision 09210 20060303 120609 brian

- 3264-bit compatibility

Revision 0929 20050708 131556 brian

- updates to documentation

Revision 0928 20050624 133859 brian

- added troubleshooting section to manuals

Revision 0927 20050514 083346 brian

- copyright header correction

Revision 0926 20050412 092906 brian

- corrections

Revision 0925 20050411 204840 brian

- documentation updates and corrections

Revision 0924 20050315 005650 brian

- Updated version numbering in texinfo files

Revision 0923 20050315 005147 brian

- Updated version numbering in texinfo files

Revision 0922 20050217 200011 brian

- Fixes for texi documentation

Revision 0921 20050126 082418 brian

- Changed name of texinfo file

Revision 09 20050126 082418 brian

file strss7texi was initially added on branch OpenSS7-0_9_2

4 OpenSS7 SS7 Stack

ISO 9000 Compliance

Only the TEX texinfo or roff source for this manual is controlled An opaque (printedpostscript or portable document format) version of this manual is an UNCONTROLLEDVERSION

Disclaimer

OpenSS7 Corporation disclaims all warranties with regard to this documentation includingall implied warranties of merchantability fitness for a particular purpose non-infringementor title that the contents of the manual are suitable for any purpose or that the implemen-tation of such contents will not infringe on any third party patents copyrights trademarksor other rights In no event shall OpenSS7 Corporation be liable for any direct indirectspecial or consequential damages or any damages whatsoever resulting from loss of usedata or profits whether in an action of contract negligence or other tortious action arisingout of or in connection with any use of this manual or the performance or implementationof the contents thereof

OpenSS7 Corporation reserves the right to revise this software and documentation for anyreason including but not limited to conformity with standards promulgated by variousagencies utilization of advances in the state of the technical arts or the reflection of changesin the design of any techniques or procedures embodied described or referred to hereinOpenSS7 Corporation is under no obligation to provide any feature listed herein

US Government Restricted Rights

If you are licensing this Software on behalf of the US Government (Government) thefollowing provisions apply to you If the Software is supplied by the Department of Defense(DoD) it is classified as Commercial Computer Software under paragraph 252227-7014of the DoD Supplement to the Federal Acquisition Regulations (DFARS) (or any successorregulations) and the Government is acquiring only the license rights granted herein (thelicense rights customarily provided to non-Government users) If the Software is suppliedto any unit or agency of the Government other than DoD it is classified as RestrictedComputer Software and the Governmentrsquos rights in the Software are defined in paragraph52227-19 of the Federal Acquisition Regulations (FAR) (or any successor regulations) orin the cases of NASA in paragraph 1852227-86 of the NASA Supplement to the FAR (orany successor regulations)

Acknowledgements

As with most open source projects this project would not have been possible withoutthe valiant efforts and productive software of the Free Software Foundation and the LinuxKernel Community

Sponsors

Funding for completion of the OpenSS7 OpenSS7 SS7 Stack package was provided in partby

bull OpenSS7 Corporation

Additional funding for The OpenSS7 Project was provided by

Preface 5

bull OpenSS7 Corporationbull Lockheed Martin Cobull Motorolabull HOB Internationalbull Comverse Ltdbull Sonus Networks Incbull France Telecombull SS8 Networks Incbull Nortel Networksbull Verisignbull eServGlobal (NZ) Pty Ltdbull NetCentrex S Abull SysMaster Corporationbull GeoLink SAbull AirNet Communicationsbull TECOREbull Tumsan Oybull Vodare Ltdbull Excel Telecommunications

Contributors

The primary contributor to the OpenSS7 OpenSS7 SS7 Stack package is Brian F G Bidu-lock The following is a list of significant contributors to The OpenSS7 Project

minus Per Berquistminus John Boydminus Chuck Wintersminus Peter Courtneyminus Tom Chandlerminus Gurol Ackmanminus Kutluk Testiciogluminus John Wenkerminus Others

Authors

The authors of the OpenSS7 OpenSS7 SS7 Stack package includeminus Brian Bidulock

See [Index of Authors] page 145 for a complete listing and cross-index of authors to sectionsof this manual

Maintainer

The maintainer of the OpenSS7 OpenSS7 SS7 Stack package isminus Brian Bidulock

Please send bug reports to bugsopenss7org using the lsquosend-prrsquo script included in thepackage only after reading the lsquoBUGSrsquo file in the release or See Section 72 [Problem Re-ports] page 97

6 OpenSS7 SS7 Stack

Web Resources

The OpenSS7 Project provides a website dedicated to the software packages released by theOpenSS7 Project

Bug Reports

Please send bug reports to bugsopenss7org using the lsquosend-prrsquo script included inthe OpenSS7 SS7 Stack package only after reading the lsquoBUGSrsquo file in the release or SeeSection 72 [Problem Reports] page 97 You can access the OpenSS7 GNATS databasedirectly via the web however the preferred method for sending new bug reports is viamail with the lsquosend-prrsquo script

Mailing Lists

The OpenSS7 Project provides a number of general discussion Mailing Lists for discussionconcerning the OpenSS7 OpenSS7 SS7 Stack package as well as other packages released byThe OpenSS7 ProjectThese are mailman mailing lists and so have convenient web interfaces for subscribers tocontrol their settings See httpwwwopenss7orgmailinglisthtmlThe mailing lists are as follows

lsquoopenss7rsquo The lsquoopenss7rsquo mailing list is for general enquiries information exchange andannouncements regarding the OpenSS7 Project This is our original mailinglist and takes the highest amount of traffic

lsquoopenss7-announcersquoThe lsquoopenss7-announcersquo mailing list is for announcements related to theOpenSS7 Project This list will accept announcements posted by subscribersSubscribe to this list if you are interested in announcements from theOpenSS7 Project subscribers and sponsors related to the OpenSS7 Projector STREAMS SS7 SIGTRAN or SCTP in general

lsquoopenss7-cvsrsquoThe lsquoopenss7-cvsrsquo mailing list is for automatic CVS log reporting You mustget permission of the owner to subscribe to this list Subscribers are not allowedto post to this list this is merely for distributing notification of changes to theCVS repositoryh

lsquoopenss7-developrsquoThe lsquoopenss7-developrsquo mailing list is for email exchange related to the de-velopment projects under the OpenSS7 Project This includes developmentrequests proposals requests for comment or proposal Subscribe to this listif you are interested in ongoing development details regarding the OpenSS7Project

lsquoopenss7-testrsquoThe lsquoopenss7-testrsquo mailing list is for email exchange related to the testingof code under the OpenSS7 Project This specifically relates to conformancetesting verification testing interoperability testing and beta testing Subscribeto this list if you are interested in participating in and receiving ongoing detailsof test activities under the OpenSS7 Project

Preface 7

lsquoopenss7-bugsrsquoThe lsquoopenss7-bugsrsquo mailing list is specifically tailored to bug tracking Themailing list takes a feed from the OpenSS7 GNATS bug tracking system andaccepts posting of responses to bug reports tracking and resolution Subscribeto this list if you are interested in receiving detailed OpenSS7 release code bugtracking information This list is not archived for historical information onproblem reports see our GNATS databases

lsquoopenss7-updatesrsquoThe lsquoopenss7-updatesrsquo mailing list provides updates on OpenSS7 Project codereleases and ongoing activities Subscribers are not allowed to post to this listthis list is for official OpenSS7 Project announcements only Subscribe to thislist if you are interested in receiving updates concerning official releases andactivities of the OpenSS7 Project

lsquoopenss7-streamsrsquoThe lsquoopenss7-streamsrsquo mailing list is for email exchange related to theSTREAMS development projects under the OpenSS7 Project This includesdevelopment requests proposals requests for comment or proposal Subscribeto this list if you are interested in ongoing development details regarding theOpenSS7 Project STREAMS components

lsquolinux-streamsrsquoThe lsquolinux-streamsrsquo mailing list is for mail exchange related to LinuxFast-STREAMS or Linux STREAMS This includes patches developmentrequests proposals requests for comment or proposal Subscribe to this list ifyou are interested in ongoing development details regarding the STREAMSfor Linux components This is the the new (September 2006) home of thelsquolinux-streamsrsquo list formerly of gsycesceturjces

Spam

To avoid spam being sent to the members of the OpenSS7 mailing list(s) we have blockedmail from non-subscribers Please subscribe to the mailing list before attempting to postto them (Attempts to post when not subscribed get bounced)As an additional measure against spam subscriber lists for all OpenSS7 mailing lists arenot accessible to non-subscribers for most lists subscriber lists are only accessible to thelist administrator This keeps your mailing address from being picked off our website bybulk mailers

Acceptable Use Policy

It is acceptable to post professional and courteous messages regarding the OpenSS7 packageor any general information or questions concerning STREAMS SS7 SIGTRAN SCTP ortelecommunications applications in general

Large Attachments

The mailing list is blocked from messages of greater than 40k If you have attachments(patches test programs etc) and you mail them to the list it will bounce to the listadministrator If you are interested in making your patches test programs test results or

8 OpenSS7 SS7 Stack

other large attachments available to the members of the mailing list state in the messagethat you would like them posted and the list administrator will place them in the mailarchives

Quick Start Guide 9

Quick Start Guide

OpenSS7 SS7 Stack

Package strss7-09a8 was released under AGPLv3 2008-10-31

The OpenSS7 SS7 Stack package includes a wide array of kernel modules SVR 42STREAMS drivers modules libraries utilities test programs daemons and developmentenvironment for the development and execution of Signalling System Number 7 (SS7)Signalling Transport (SIGTRAN) Integrated Services Digital Network (ISDN) and Voiceover IP (VoIP) protocol stack components and applications for the Linux Fast-STREAMSenvironment

However the current package has had ISDN components moved to the lsquostrisdnrsquo packageSIGTRAN components moved to the lsquosigtranrsquo package and VoIP components moved tothe lsquostrvoiprsquo package Only SS7 components remain in the lsquostrss7rsquo package

This distribution is only currently applicable to Linux 24 and 26 kernels and was tar-geted at ix86 x86_64 ppc and ppc64 architectures but should build and install for otherarchitectures as well

Release

This is the strss7-09a8 package released 2008-10-31 This lsquo09a8rsquo release and thelatest version can be obtained from the download area of The OpenSS7 Project websiteusing a command such as

$gt wget httpwwwopenss7orgtarballsstrss7-09a8tarbz2

The release is available as an autoconf(1) tarball lsquosrcrpmrsquo or lsquodscrsquo as a set of binarylsquorpmrsquos or lsquodebrsquos or as a yum(8) or apt(8) repository See the download page for theautoconf(1) tarballs lsquosrcrpmrsquos lsquodscrsquos or repository access instructions See the strss7package page for tarballs source and binary packages

Please see the lsquoNEWSrsquo file for release notes and history of user visible changes for the currentversion and the lsquoChangeLogrsquo file for a more detailed history of implementation changesThe lsquoTODOrsquo file lists features not yet implemented and other outstanding items

Please see the lsquoINSTALLrsquo lsquoINSTALL-strss7rsquo and lsquoREADME-makersquo files (or see Chapter 6[Installation] page 47) for installation instructions

When working from cvs(1) or git(1) please see the lsquoREADME-cvsrsquo file (or see Section 628[Downloading from CVS] page 59) An abbreviated installation procedure that works formost applications appears below

This release of the package is published strictly under Version 3 of the GNU Affero PublicLicense which can be found in the file lsquoCOPYINGrsquo Package specific licensing terms (if any)can be found in the file lsquoLICENSESrsquo Please respect these licensing arrangements If youare interested in different licensing terms please contact the copyright holder or OpenSS7Corporation ltsalesopenss7comgt

See lsquoREADME-alpharsquo (if it exists) for alpha release information

10 OpenSS7 SS7 Stack

Prerequisites

The quickest and easiest way to ensure that all prerequisites are met is to download andinstall this package from within the OpenSS7 Master Package openss7-092G insteadof separatelyPrerequisites for the OpenSS7 SS7 Stack package are as follows1 Linux distribution somewhat Linux Standards Base compliant with a 24 or 26 kernel

and the appropriate tool chain for compiling out-of-tree kernel modules Most recentLinux distributions are usable out of the box but some development packages must beinstalled For more information see Section 52 [Compatibility] page 34

minus A fairly LSB compliant GNULinux distribution1

minus Linux 24 kernel (2410 - 2427) orminus Linux 26 kernel (263 - 2626)minus glibc2 or betterminus GNU groff (for man pages)2

minus GNU texinfo (for info files)minus GNU bison and flex (for config programs)minus net-snmp (for SNMP agents)3

(Note If you acquired strss7 a part of the OpenSS7 Master Package then the dependencieslisted below will already have been met by unpacking the master package)2 OpenSS7 Linux Fast-STREAMS streams-09244

3 OpenSS7 STREAMS Compatibility Modules strcompat-09274 OpenSS7 STREAMS XNS strxns-09275 OpenSS7 STREAMS XTITLI strxnet-092126 OpenSS7 STREAM Network Services Library strnsl-0924 (Optional)7 OpenSS7 STREAMS Sockets strsock-0924 (Optional)8 OpenSS7 STREAMS INET strinet-09279 OpenSS7 STREAMS SCTP strsctp-0929

10 OpenSS7 STREAMS Channels strchan-092411 OpenSS7 STREAMS X25 strx25-092112 OpenSS7 STREAMS ISO striso-092413 OpenSS7 STREAMS ISDN strisdn-0924

When configuring and building multiple OpenSS7 Project release packages place all of thesource packages (unpacked tarballs) at the same directory level and all build directories atthe same directory level (eg all source packages under lsquousrsrcrsquo)When installing packages that install as kernel modules it is necessary to have the correctkernel development package installed For the following distributions use the followingcommands

1 See Section 521 [GNULinux Distributions] page 34 for more information2 If you are using a Debian release please make sure to install the groff extension package (lsquogroff_extrsquo) as

it contains the refer or grefer commands necessary for including references in the manual pages3 A wide range of net-snmp releases are supported from UCD-SNMP 425 through net-snmp 544 Although at one time this package supported LiS LiS is now deprecated and unsupported

Quick Start Guide 11

Ubuntu $gt apt-get install linux-headersDebian $gt apt-get install kernel-headersFedora $gt yum install kernel-devel

You also need the same version of gcc(1) compiler with which the kernel was built If it isnot the default add lsquoCC=kgccrsquo on the line after lsquoconfigurersquo for example

$gt strss7-09a8configure CC=rsquogcc-34rsquo

Installation

The following commands will download configure build check install validate uninstalland remove the package

$gt wget httpwwwopenss7orgtarballsstrss7-09a8tarbz2$gt tar -xjvf strss7-09a8tarbz2$gt mkdir build$gt pushd build$gt strss7-09a8configure --enable-autotest$gt make$gt make check$gt sudo make install$gt sudo make installcheck$gt sudo make uninstall$gt popd$gt sudo rm -rf build$gt rm -rf strss7-09a8$gt rm -f strss7-09a8tarbz2

If you have problems try building with the logging targets instead If the make of a loggingtarget fails an automatic problem report will be generated that can be mailed to TheOpenSS7 Project5 Installation steps using the logging targets proceed as follows

$gt wget httpwwwopenss7orgtarballsstrss7-09a8tarbz2$gt tar -xjvf strss7-09a8tarbz2$gt mkdir build$gt pushd build$gt strss7-09a8configure --enable-autotest$gt make compilelog$gt make checklog$gt sudo make installlog$gt sudo make installchecklog$gt sudo make uninstalllog$gt popd$gt sudo rm -rf build$gt rm -rf strss7-09a8$gt rm -f strss7-09a8tarbz2

See lsquoREADME-makersquo for additional specialized make targets

5 Please see Section 72 [Problem Reports] page 97 or the file lsquoPROBLEMSrsquo in the release directory for moreinformation on filing a proper Problem Report

12 OpenSS7 SS7 Stack

For custom applications see the lsquoINSTALLrsquo and lsquoINSTALL-strss7rsquo files or the see Chapter 6[Installation] page 47 as listed below If you encounter troubles see Chapter 7 [Trou-bleshooting] page 93 before issuing a bug report

Brief Installation Instructions

The OpenSS7 SS7 Stack package is available from the downloads area of The OpenSS7Project website using a command such as

$gt wget httpwwwopenss7orgtarballsstrss7-09a8tarbz2

Unpack the tarball using a command such as$gt tar -xjvf strss7-09a8tarbz2

The tarball will unpack into the relative subdirectory named after the package name strss7-09a8The package builds using the GNU autoconf utilities and the lsquoconfigurersquo script To buildthe package we recommend using a separate lsquobuildrsquo directory as follows

$gt mkdir build$gt cd build$gt strss7-09a8configure

In general the package configures and builds without adding any special options to thelsquoconfigurersquo script For general options to the lsquoconfigurersquo script see the GNU lsquoINSTALLrsquofile in the distribution

$gt less strss7-09a8INSTALL

For specific options to the lsquoconfigurersquo script see the lsquoINSTALL-strss7rsquo file in the distri-bution or simply execute the configure script with the lsquo--helprsquo option like so

$gt strss7-09a8configure --help

After configuring the package the package can be compiled simply by issuing the lsquomakersquocommand

$gt make

Some specialized makefile targets exists see the lsquoREADME-makersquo file in the distribution orsimply invoke the lsquohelprsquo target like so

$gt make help | less

After successfully building the package the package can be checked by invoking the lsquocheckrsquomake target like so

$gt make check

After successfully checking the package the package can be installed by invoking thelsquoinstallrsquo make target (as root) like so

$gt sudo make install

The test suites that ship with the package can be invoked after the package has been installedby invoking the lsquoinstallcheckrsquo target This target can either be invoked as root or as anormal user like so

$gt make installcheck

(Note you must add the lsquo--enable-autotestrsquo flag to lsquoconfigurersquo above for the test suitesto be invoked with lsquomake installcheckrsquo)The package can be cleanly removed by invoking the lsquouninstallrsquo target (as root)

Quick Start Guide 13

$gt sudo make uninstall

Then the build directory and tarball can be simply removed$gt cd $gt rm -rf build$gt rm -rf strss7-09a8$gt rm -f strss7-09a8tarbz2

Detailed Installation Instructions

More detailed installation instructions can be found in the Chapter 6 [Installation] page 47contained in the distribution in lsquotextrsquo lsquoinforsquo lsquohtmlrsquo and lsquopdfrsquo formats

$gt cd strss7-09a8$gt less docmanualstrss7txt$gt lynx docmanualstrss7html$gt info docmanualstrss7info$gt xpdf docmanualstrss7pdf

The lsquotextrsquo version of the manual is always available in the lsquoMANUALrsquo file in the releaseThe current manual is also always available online from The OpenSS7 Project website at

$gt lynx httpwwwopenss7orgstrss7_manualhtml

Chapter 1 Introduction 15

1 Introduction

This manual documents the design implementation installation operation and future de-velopment schedule of the OpenSS7 SS7 Stack package

11 Overview

This manual documents the design implementation installation operation and future de-velopment of the OpenSS7 SS7 Stack packageThe OpenSS7 SS7 Stack package is an SS7 SIGTRAN ISDN VoIP package for Linux thatcan be used with Linux Fast-STREAMS1 or Linux STREAMS2 It includes developmenttools header files and manual pages forbull Communications Device Interface (CDI)bull Data Link Provider Interface (DLPI)bull Network Provider Interface (NPI)bull Transport Provider Interface (TPI)bull Signalling Data Link Interface (SDLI)bull Signalling Data Terminal Interface (SDTI)bull Message Transfer Part Interface (MTPI)bull Call Control Interface (CCI)bull Transaction Interface (TRI)bull Transaction Component Interface (TCI) andbull Mobile Application Part Interface (MAPI)

Also it provides STREAMS drivers and modules for SS7 SIGTRAN ISDN and VoIPincludingbull

The OpenSS7 SS7 Stack package is essential to the development and support of SS7 andISDN networking and call control modules and drivers and provides a fundamental set ofSS7 header files and manual pages for such developmentThe OpenSS7 SS7 Stack does not provide the STREAMS components See the manualsreferenced above

12 Organization of this Manual

This manual is organized (loosely) into several sections as followsChapter 1 [Introduction] page 15 This introductionChapter 2 [Objective] page 17 Objective of the packageChapter 3 [Reference] page 19 Contents of the packageChapter 4 [Conformance] page 31 Conformance of the packageChapter 5 [Releases] page 33 Releases of the packageChapter 6 [Installation] page 47 Installation of the packageChapter 7 [Troubleshooting] page 93 Troubleshooting of the package

1 See Section ldquoAbout This Manualrdquo in Linux Fast-STREAMS (LfS) Reference Manual2 See Section ldquoAbout This Manualrdquo in Linux STREAMS (LiS) Reference Manual

16 OpenSS7 SS7 Stack

13 Conventions and Definitions

This manual uses texinfo typographic conventions

Chapter 2 Objective 17

2 Objective

Chapter 3 Reference 19

3 Reference

31 Applications

20 OpenSS7 SS7 Stack

32 SS7 Protocol Stack

The SS7 Protocol Stack consists of a number of components

Chapter 3 Reference 21

321 Signalling Data Link (SDL)

22 OpenSS7 SS7 Stack

322 Signalling Data Terminal (SDT)

Chapter 3 Reference 23

323 Signalling Link (SL)

24 OpenSS7 SS7 Stack

324 Message Transfer Part (MTP)

Chapter 3 Reference 25

325 Signalling Connection Control Part (SCCP)

26 OpenSS7 SS7 Stack

326 Transaction Capabilities Application Part (TCAP)

Chapter 3 Reference 27

327 Base Station System Application Part (BSSAP)

28 OpenSS7 SS7 Stack

33 Device Drivers

Chapter 3 Reference 29

331 Digium Drivers

30 OpenSS7 SS7 Stack

332 SeaLevel ACB56 Drivers

Chapter 4 Conformance 31

4 Conformance

Chapter 5 Releases 33

5 Releases

This is the OpenSS7 Release of the OpenSS7 SS7 Stack tools drivers and modules usedwith the Linux Fast-STREAMS or Linux STREAMS1 SVR 42 STREAMS releasesThe purpose of providing a separate release of this package was to separate the OpenSS7SS7 Stack tools headers drivers and modules from the Linux STREAMS2 package for usewith both Linux STREAMS3 and Linux Fast-STREAMS in preparation for replacement ofthe former by the laterThe following sections provide information on OpenSS7 SS7 Stack releases as well as com-patibility information of OpenSS7 release to the original GCOM releases of these modulesand drivers as well as Linux kernel compatibility

51 Prerequisites

The quickest and easiest way to ensure that all prerequisites are met is to download andinstall this package from within the OpenSS7 Master Package openss7-092G insteadof separatelyPrerequisites for the OpenSS7 SS7 Stack package are as follows1 Linux distribution somewhat Linux Standards Base compliant with a 24 or 26 kernel

and the appropriate tool chain for compiling out-of-tree kernel modules Most recentLinux distributions are usable out of the box but some development packages must beinstalled For more information see Section 52 [Compatibility] page 34

minus A fairly LSB compliant GNULinux distribution4

minus Linux 24 kernel (2410 - 2427) orminus Linux 26 kernel (263 - 2626)minus glibc2 or betterminus GNU groff (for man pages)5

minus GNU texinfo (for info files)minus GNU bison and flex (for config programs)minus net-snmp (for SNMP agents)6

(Note If you acquired strss7 a part of the OpenSS7 Master Package then the dependencieslisted below will already have been met by unpacking the master package)2 OpenSS7 Linux Fast-STREAMS streams-09247

3 OpenSS7 STREAMS Compatibility Modules strcompat-09274 OpenSS7 STREAMS XNS strxns-09275 OpenSS7 STREAMS XTITLI strxnet-09212

1 Linux STREAMS is buggy unsupported and deprecated Do not use it2 Linux STREAMS is buggy unsupported and deprecated Do not use it3 Linux STREAMS is buggy unsupported and deprecated Do not use it4 See Section 521 [GNULinux Distributions] page 34 for more information5 If you are using a Debian release please make sure to install the groff extension package (lsquogroff_extrsquo) as

it contains the refer or grefer commands necessary for including references in the manual pages6 A wide range of net-snmp releases are supported from UCD-SNMP 425 through net-snmp 547 Although at one time this package supported LiS LiS is now deprecated and unsupported

34 OpenSS7 SS7 Stack

6 OpenSS7 STREAM Network Services Library strnsl-0924 (Optional)7 OpenSS7 STREAMS Sockets strsock-0924 (Optional)8 OpenSS7 STREAMS INET strinet-09279 OpenSS7 STREAMS SCTP strsctp-0929

10 OpenSS7 STREAMS Channels strchan-092411 OpenSS7 STREAMS X25 strx25-092112 OpenSS7 STREAMS ISO striso-092413 OpenSS7 STREAMS ISDN strisdn-0924

If you need to rebuild the package from sources with modifications you will need a largerGNU tool chain as described in See Section 628 [Downloading from CVS] page 59

52 Compatibility

This section discusses compatibility with major prerequisites

521 GNULinux Distributions

OpenSS7 SS7 Stack is compatible with the following Linux distributions8

bull CentOS Enterprise Linux 34 (centos34) TBDbull CentOS Enterprise Linux 40 (centos4) TBDbull CentOS Enterprise Linux 492 (centos49) TBDbull CentOS Enterprise Linux 50 (centos5)bull CentOS Enterprise Linux 51 (centos51)bull CentOS Enterprise Linux 52 (centos52)bull Debian 30r2 Woody (deb30) TBDbull Debian 31r0a Sarge (deb31) TBDbull Debian 40r1 Etch (deb40)bull Debian 40r2 Etch (deb40)bull Debian 40r3 Etch (deb40)bull Fedora Core 1 (FC1) TBDbull Fedora Core 2 (FC2) TBDbull Fedora Core 3 (FC3) TBDbull Fedora Core 4 (FC4) TBDbull Fedora Core 5 (FC5) TBDbull Fedora Core 6 (FC6) TBDbull Fedora 7 (FC7)bull Fedora 8 (FC8)bull Fedora 9 (FC9)bull Gentoo 20061 (untested) TBD

8 Items marked as lsquoTBDrsquo are scheduled to have support deprecated That is in a future release the distributionsmarked lsquoTBDrsquo will not longer be validated before release

Chapter 5 Releases 35

bull Gentoo 20071 (untested) TBDbull Lineox 4026 (LEL4) TBDbull Lineox 4053 (LEL4) TBDbull Mandrakelinux 92 (MDK92) TBDbull Mandrakelinux 100 (MDK100) TBDbull Mandrakelinux 101 (MDK101) TBDbull Mandriva Linux LE2005 (MDK102) TBDbull Mandriva Linux LE2006 (MDK103) TBDbull Mandriva One (untested)bull RedHat Linux 72 (RH7)bull RedHat Linux 73 (RH7)bull RedHat Linux 80 (RH8) TBDbull RedHat Linux 9 (RH9) TBDbull RedHat Enterprise Linux 30 (EL3) TBDbull RedHat Enterprise Linux 4 (EL4)bull RedHat Enterprise Linux 5 (EL5)bull SuSE 80 Professional (SuSE80) TBDbull SuSE 91 Personal (SuSE91) TBDbull SuSE 92 Professional (SuSE92) TBDbull SuSE OpenSuSE (SuSEOSS) TBDbull SuSE 100 (SuSE100) TBDbull SuSE 101 (SuSE101) TBDbull SuSE 102 (SuSE102) TBDbull SuSE 103 (SuSE103) TBDbull SuSE 110 (SuSE110)bull SLES 9 (SLES9) TBDbull SLES 9 SP2 (SLES9) TBDbull SLES 9 SP3 (SLES9) TBDbull SLES 10 (SLES10)bull Ubuntu 510 (ubu510) TBDbull Ubuntu 603 LTS (ubu603) TBDbull Ubuntu 610 (ubu610) TBDbull Ubuntu 704 (ubu704) TBDbull Ubuntu 710 (ubu710)bull Ubuntu 804 (ubu804)bull WhiteBox Enterprise Linux 30 (WBEL3) TBDbull WhiteBox Enterprise Linux 4 (WBEL4) TBD

When installing from the tarball (see Section 653 [Installing the Tar Ball] page 80) thisdistribution is probably compatible with a much broader array of distributions than thoselisted above These are the distributions against which the current maintainer creates andtests builds

36 OpenSS7 SS7 Stack

522 Kernel

The OpenSS7 SS7 Stack package compiles as a Linux kernel module It is not necessaryto patch the Linux kernel to build or use the package9 Nor do you have to recompile yourkernel to build or use the package OpenSS7 packages use autoconf scripts to adapt thepackage source to your existing kernel The package builds and runs nicely against produc-tion kernels from the distributions listed above Rather than relying on kernel versions theautoconf scripts interrogate the kernel for specific features and variants to better adaptto distribution production kernels that have had patches applied over the official kernelorgsources

The OpenSS7 SS7 Stack package is compatible with 24 kernel series after 2410 and hasbeen tested up to and including 2427 It has been tested from 263 up to and including2626 (with Fedora 9 openSUSE 110 and Ubuntu 804 patchsets) Please note that yourmileage may vary if you use a kernel more recent than 26264 it is difficult to anticipatechanges that kernel developers will make in the future Many kernels in the 26 seriesnow vary widely by release version and if you encounter problems try a kernel within thesupported series

UP validation testing for kernels is performed on all supported architectures SMP valida-tion testing was initially performed on UP machines as well as on an Intel 30GHz PentiumIV 630 with HyperThreading enabled (2x) Because HyperThreading is not as independentas multiple CPUs SMP validation testing was limited Current releases have been testedon dual 18GHz Xeon HP servers (2x) as well as dual quad-core SunFire (8x) servers

It should be noted that while the packages will configure build and install against XENkernels that problems running validation test suites against XEN kernels has been reportedXEN kernels are explicitly not supported This may change at some point in the future ifsomeone really requires running OpenSS7 under a XEN kernel

523 Architectures

The OpenSS7 SS7 Stack package compiles and installs on a wide range of architecturesAlthough it is believed that the package will work on all architectures supported by theLinux kernel being used validation testing has only been performed with the followingarchitectures

bull ix86

bull x86 64

bull ppc (MPC 860)

bull ppc64

32-bit compatibility validation testing is performed on all 64-bit architectures supporting32-bit compatibility If you would like to validate an OpenSS7 package on a specific machinearchitecture you are welcome to sponsor the project with a test machine

9 At a later date it is possible to move this package into the kernel however with continued resistance toSTREAMS from within the Linux developer community this is currently unlikely

Chapter 5 Releases 37

524 Linux STREAMS

The OpenSS7 SS7 Stack package is currently compatible with Linux STREAMS10 howeverto use the OpenSS7 SS7 Stack package with LiS requires use of the OpenSS7 release packagesof LiS The OpenSS7 SS7 Stack package is compatible with the OpenSS7 LiS-2187 releasethat is available from the The OpenSS7 Project Downloads Page But do not use LiS itis buggy unsupported and deprecated Use Linux Fast-STREAMS instead

525 Linux Fast-STREAMS

The OpenSS7 SS7 Stack package is currently compatible with Linux Fast-STREAMS (LfS)The OpenSS7 SS7 Stack package is compatible with the OpenSS7 streams-0924 releasethat is available from the The OpenSS7 Project Downloads Page

53 Release Notes

The sections that follow provide information on OpenSS7 releases of the OpenSS7 SS7 Stackpackage

Major changes for release strss7-09a8

The OpenSS7 SS7 Stack package contains a wide array of SS7 drivers and components forLinux Fast-STREAMS This is the public release package which has most of the componentsremoved Subscribers and sponsors of the OpenSS7 Project have access to the full array ofcomponents

This is the eighth release of the OpenSS7 SS7 Stack strss7 package that contains SS7(Signalling System No 7) signalling stack components for Linux Fast-STREAMS Thepackage contains the necessary header files manual pages and other documentation for SS7components in a separate autoconf tarball

The release includes maintenance support for recent distributions and tool chain but alsoincludes some performance and feature upgrades and inspection bug fixes It deprecatesprevious releases Please upgrade before reporting bugs on previous releases

This release is primarily a maintenance release

Major features since the last public release are as follows

- Minor documentation corrections- Kernel module license made explicit GPL v2 And then changed back to GPL- License upgrade to AGPL Version 3- Modifications to build under Fedora lsquo26225-49rsquo kernel These changes also sup-

port lsquo26229-91fc7rsquo kernel Use IRQF_DISABLED and IRQF_SHARED instead ofdeprecated SA_INTERRUPT and SA_SHIRQ Use pci_register_driver instead of pci_module_init

- Ability to strap out major documentation build and installation primarily for embeddedtargets

- Improvements to common build process for embedded and cross-compile targets- Modifications to build under Fedora lsquo2625-45fc9rsquo and lsquo26265-45fc9rsquo kernels

10 Linux STREAMS is buggy unsupported and deprecated Do not use it

38 OpenSS7 SS7 Stack

- Updated tool chain to lsquom4-1412rsquo lsquoautoconf-263rsquo and lsquotexinfo-413rsquo- Conversion of RPM spec files to common approach for major subpackages- Updated references database for manual pages and roff documents- Build system now builds yum(8) repositories for RPMs and apt-get(8) repositories

for DEBs Installation documentation has been updated to include details of repositoryinstall sourcesref

- Added MODULE_VERSION to all modules and drivers- Corrections for recent RHAS4 kernels defining irq handler t with 3 argument function

template- Added sdl-pmod and sdt-pmod STREAMS modules and manual pages These

two STREAMS modules simluate an SDT and SDL interface connection using aSTREAMS-based pipe for testing purposes

- Added MTPI specification texinfo (info html pdf) document- Added CNAM project document The CNAM projects provides a locally attached

TCAP CNAM database front-end that performs SS7 stack functions local to the switch-ing office and queries a back-end CNAM database using IP over the Internet

- Added SDLI SDTI and SLI specifications texinfo (info html pdf) document- Added manual pages for LMI and all LMI primitives- Added manual pages for SDLI and all SDLI primitives- Added manual pages for SDTI and all SDTI primitives- Added manual pages for SLI and all SLI primitives

This is a public beta release of the package it deprecates previous releases Please upgradeto the current release before reporting bugs Please see lsquoREADME-alpharsquo in the release orSection 54 [Maturity] page 42

As with other OpenSS7 releases this release configures compiles installs and builds RPMsand DEBs for a wide range of Linux 24 and 26 RPM- and DPKG-based distributions andcan be used on production kernels without patching or recompiling the kernel

This package is publicly released under the GNU Affero General Public License Version 3The release is available as an autoconf tarball SRPM DSC and set of binary RPMs andDEBs See the downloads page for the autoconf tarballs SRPMs and DSCs For tarballsSRPMs DSCs and binary RPMs and DEBs see the strss7 package page

See httpwwwopenss7orgcodefilesstrss7-09a8ChangeLog andhttpwwwopenss7orgcodefilesstrss7-09a8NEWS in the release formore information Also see the lsquostrss7pdfrsquo manual in the release (also in htmlhttpwwwopenss7orgstrss7_manualhtml)

For the news release see httpwwwopenss7orgrel20081029_5html

Major changes for release strss7-09a7

The OpenSS7 SS7 Stack package contains a wide array of SS7 drivers and components forLinux Fast-STREAMS This is the public release package which has most of the componentsremoved Subscribers and sponsors of the OpenSS7 Project have access to the full array ofcomponents

Chapter 5 Releases 39

This is the seventh release of the OpenSS7 SS7 Stack strss7 package that contains SS7(Signalling System No 7) signalling stack components for Linux Fast-STREAMS Thepackage contains the necessary header files manual pages and other documentation for SS7components in a separate autoconf tarball

This release is primarily to support recent compilers kernels and distributions

Major features since the last public release are as follows

- Support build on openSUSE 102

- Support build on Fedora 7 with 2621 kernel

- Support build on CentOS 50 (RHEL5)

- Support build on Ubuntu 704

- Updated to gettext 0161

- Changes to support build on 2620-12307fc5 and 2620-12933fc6 kernel

- Supports build on Fedora Core 6

- Support for recent distributions and tool chains

Major changes for release strss7-09a6

The OpenSS7 SS7 Stack package contains a wide array of SS7 drivers and components forLinux Fast-STREAMS This is the public release package which has most of the componentsremoved Subscribers and sponsors of the OpenSS7 Project have access to the full array ofcomponents

This is the sixth release of the OpenSS7 SS7 Stack strss7 package that contains SS7 (Sig-nalling System No 7) signalling stack components for Linux Fast-STREAMS The packagecontains the necessary header files manual pages and other documentation for SS7 compo-nents in a separate autoconf tarball

This release is primarily to support recent compilers kernels and distributions

Major features since the last public release are as follows

- Corrected support for the DS2152213522155221542135221555 chips present inolder V400P cards (See httpwwwopenss7orgcodefilesstrss7-09a8BUGSin the release for more information)

- Support for the DS2156 chip present in recent V401PE cards (Seehttpwwwopenss7orgcodefilesstrss7-09a8BUGS in the releasefor more information)

- Corrections for timer bugs in the X400P-SS7 driver (See httpwwwopenss7orgcodefilesstrss7-09a8BUGSin the release for more information)

- Improvements to the common build environment with better support for standalonepackage builds on 24 kernels

- Support for autoconf 261 automake 110 and gettext 016

- Support for Ubuntu 610 distribution and bug fixes for i386 kernels

- The package now looks for other subpackages with a version number as unpacked byseparate tarball

40 OpenSS7 SS7 Stack

Major changes for release strss7-09a5

The OpenSS7 SS7 Stack package contains a wide array of SS7 SIGTRAN ISDN and VoIPdrivers and components for Linux Fast-STREAMS This is the public release package whichhas most of the components removed Subscribers and sponsors of the OpenSS7 Projecthave access to the full array of components

This is the fifth release of the OpenSS7 SS7 Stack strss7 package that contains SS7 (Sig-nalling System No 7) SIGTRAN (SIGnalling TRANsport) ISDN (Integrated ServicesDigital Network) and VoIP (Void over Internet Protocol) signalling stack components forLinux Fast-STREAMS The package contains the necessary header files manual pages andother documentation for SS7SIGTRANISDNVoIP components in a separate autoconftarball

This release is primarily to support recent compilers kernels and distributions and toupgrade the X400P-SS7 driver with support for the Varion V401P (Tormenta III) cardsAlso this is the first release that has ISDN SIGTRAN and VoIP components moved toseparate packages (but will still build all components)

- The X400P-SS7 driver has been upgraded to support the Varion V401P (Tormenta III)card This driver passes all validation test suites and is production grade The driverstill supports the older cards Also an autoconf style validation test suite was addedand the lsquotest-x400prsquo test case executable upgraded

- Support for most recent 2618 kernels (including Fedora Core 5 with inode diet patch-set)

- The package will now build doxygen(1) html documentation with the rsquodoxyrsquo maketarget See rsquomake helprsquo or README-make in the distribution for more information

- Now builds 32-bit compatibility libraries and tests them against 64-bit kernel modulesand drivers The lsquomake installcheckrsquo target will now automatically test both 64-bitnative and 32-bit compatibility versions one after the other on 64-bit platforms

- Added versions to all library symbols

- Many documentation updates for all OpenSS7 packages Automated release file gener-ation making for vastly improved and timely text documentation present in the releasedirectory

- Dropped support for LiS

- Package will now support extended ranges of minor devices on 26 kernels under LinuxFast-STREAMS only

- Better detection of SUSE distributions release numbers and SLES distributions sup-port for additional SuSE distributions on ix86 as well as x86_64 Added distributionsupport includes SLES 9 SLES 9 SP2 SLES 9 SP3 SLES 10 SuSE 101

- Improved compiler flag generation and optimizations for recent gcc compilers and someidiosyncratic behaviour for some distributions (primarily SUSE)

- Optimized compilation is now available also for user level programs in addition to kernelprograms Added new lsquo--with-optimizersquo option to configure to accomplish this

- Automated release file generation making for vastly improved and timely text docu-mentation present in the release directory

Chapter 5 Releases 41

- Added --disable-devel configure option to suppress building and installing devel-opment environment This feature is for embedded or pure runtime targets that do notneed the development environment (static libraries manual pages documentation)

- Added send-pr script for automatic problem report generation

Major changes for release strss7-09a-4

This release is primarily to support additional compilers (gcc 402) architectures (x86 64SMP 32-bit compatibility) recent Linux distributions (EL4 SuSE 10 LE2006 OpenSuSE)and kernels (2615)

- Changes necessary for LP64 compatible builds Changes to support 32-bit ioctlcompatibility for LP64 architectures Binary compatibility should not have beendisrupted At the same time as the ioctl32 changes TRANSPARENT ioctl supportfor most of the IO controls for the ldl(4) driver has been added

- Changes to satisfy gcc 402 compiler

- Corrections for and testing of 64-bit clean compile and test runs on x86 64 architectureSome bug corrections resulting from gcc 402 compiler warnings

- Corrected build flags for Gentoo and 2615 kernels as reported on mailing list

- Initial corrections for and testing of SMP operation on Intel 630 Hyper-Threaded SMPon x86 64 This package should now run well on N-way Xeons even with Hyper-Threading enabled

- Corrections and validation of 32-bit compatibility over 64-bit on x86 64 Should applywell to other 64-bit architectures as well

This is a public alpha release of the package

Major changes for release strss7-09a-3

This is primarily a bug fixes release and corrections resulting from testing This isa major bug fix release The previous release was largely untested This release hasbeen verified (conformance test suite passes) for operation with Linux Fast-STREAMS(lsquostreams-07a4rsquo)

With this release version numbers were changed to reflect an upstream version only tobe consistent with other OpenSS7 package releases All RPM release numbers will belsquo-1$(PACKAGE_RPMEXTRA)rsquo and all Debian release numbers will be lsquo_0rsquo If you wish toapply patches and release the package please bump up the release number and apply asuitable release suffix for your organization We leave Debian release number lsquo_1rsquo reservedfor your use so you can still bundle the source in the lsquodscrsquo file

Major changes for this release include build against Linux 26 kernels and popular distri-butions based on the 26 kernel as well as wider distribution support The package alsosupports both lsquoLiS-2181rsquo as well as lsquostreams-07arsquo on both kernels

Not publicly released

Major changes for release strss7-09a-2

Not publicly released

42 OpenSS7 SS7 Stack

Initial release strss7-09a-1

Initial autoconfRPM packaging of the strss7 releaseNot publicly released

54 Maturity

The OpenSS7 Project adheres to the following release philosophybull pre-alpha releasebull alpha releasebull beta releasebull gamma releasebull production releasebull unstable release

541 Pre-Alpha Releases

Pre-alpha releases are releases that have received no testing whatsoever Code in the releaseis not even known to configure or compile The purpose of a pre-alpha release is to makecode and documentation available for inspection only and to solicit comments on the designapproach or other characteristics of the software packagePre-alpha release packages ship containing warnings recommending that the user not evenexecute the contained code

542 Alpha Releases

Alpha releases are releases that have received little to no testing or that have been testedand contains known bugs or defects that make the package unsuitable even for testing Thepurpose for an alpha release are the same as for the pre-alpha release with the additionalpurpose that it is an early release of partially functional code that has problems that anexternal developer might be willing to fix themselves and contribute back to the projectAlpha release packages ship containing warnings that executing the code can crash machinesand might possibly do damage to systems upon which it is executed

543 Beta Releases

Beta releases are releases that have received some testing but the testing to date is notexhaustive Beta release packages do not ship with known defects All known defectsare resolved before distribution however as exhaustive testing has not been performedunknown defects may exist The purpose for a beta release is to provide a baseline for otherorganizations to participate in the rigorous testing of the packageBeta release packages ship containing warnings that the package has not been exhaustivelytested and that the package may cause systems to crash Suitability of software in thiscategory for production use is not advised by the project however as always is at thediscretion of the user of the software

544 Gamma Releases

Gamma releases are releases that have received exhaustive testing within the project butexternal testing has been minimal Gamma release packages do not ship with known defects

Chapter 5 Releases 43

As exhaustive internal testing has been performed unknown defects should be few Pleaseremember that there is NO WARRANTY on public release packagesGamma release packages typically resolve problems in previous beta releases and mightnot have had full regression testing performed Suitability of software in this categoryfor production use is at the discretion of the user of the software The OpenSS7 Projectrecommends that the complete validation test suites provided with the package be performedand pass on target systems before considering production use

545 Production Releases

Production releases are releases that have received exhaustive testing within the projectand validated on specific distributions and architectures Production release packages donot ship with known defects Please remember that there is NO WARRANTY on publicrelease packagesProduction packages ship containing a list of validated distributions and architectures Fullregression testing of any maintenance changes is performed Suitability of software in thiscategory for production use on the specified target distributions and architectures is at thediscretion of the user It should not be necessary to preform validation tests on the set ofsupported target systems before considering production use

546 Unstable Releases

Unstable releases are releases that have received extensive testing within the project andvalidated on a a wide range of distributions and architectures however is has tested un-stable and found to be suffering from critical problems and issues that cannot be resolvedMaintenance of the package has proved impossible Unstable release packages ship withknown defects (and loud warnings) Suitability of software in this category for productionuse is at the discretion of the user of the software The OpenSS7 Project recommendsthat the problems and issues be closely examined before this software is used even in anon-production environment Each failing test scenario should be completely avoided bythe application OpenSS7 beta software is more stable that software in this category

55 Bugs

551 Defect Notices

OpenSS7 SS7 Stack has unknown defects This is an alpha release Some defects couldbe harmful No validation testing whatsoever has been performed by the OpenSS7 Projecton this software The software might fail to configure or compile on some systems TheOpenSS7 Project recommends that you do not use this software for purposes other thandeveloment or evaluation and then only with great care Use at your own risk Rememberthat there is NO WARRANTY11

This software is alpha software As such it can likely crash your kernel Installation of thesoftware can irreparably mangle your header files or Linux distribution in such a way asto make it unusable Crashes could lock your system and rebooting the system might notrepair the problem You can possibly lose all the data on your system Because this software

11 See sections Disclaimer of Warranty and Limitation of Liability under [GNU Affero General Public License]page 104

44 OpenSS7 SS7 Stack

can crash your kernel the resulting unstable system could destroy computer hardware orperipherals making them unusable You could void the warranty on any system on whichyou run this software YOU HAVE BEEN WARNED

552 Known Defects

With the exception of packages not originally created by the OpenSS7 Project the OpenSS7Project software does not ship with known bugs in any release stage except pre-alphaOpenSS7 SS7 Stack had no known bugs at the time of release

553 Defect History

This section contains historical bugs that were encountered during development and theirresolutions This list serves two purposes1 It captures bugs encountered between releases during development that could possibly

reoccur (and the Moon is made of blue cheese) It therefore provides a place for usersto look if they encounter a problem

2 It provides a low overhead bug list between releases for developers to use as a lsquoTODOrsquolist

Bugs

006 2008-08-17T034223+0000The xnet library was discovered to contain a thread-safety bug caused by newerbehaviour of pthread once() causing the library to core dump when used onrecent implementations of pthreads (nptl)The xnet library is no longer normally compiled as part of the lsquostrss7rsquo packagefixed in strss7-09a8

005 2007-07-21T171502-0600It was discovered that recent kernel on RHAS4 are defining irq handler t buthave the old 3 argument function template for irq handlers The detectionlogic assumed that if irq hander t existed that the newer 2 argument functiontemplate for irq handlers were in effect This caused builds to fail on theseRHAS4 kernelsfixed in strss7-09a8rc1A check was added to the configure script to test whether the irq handler t hasthe newer 2 argument template

004 2007-03-13T233637-0600 (x400p-ss75766)Older chips were not being recognized correctly either Reflected device tableand a few missing break statements was the causefixed in strss7-09a6

003 2007-03-13T024038-0600 (x400p-ss75766)It appears that V401PE cards were almost loading (configuring mappingdownloading firmware) but were failing to configure at the final stage of theprocess (matching device id to board type) The device id for the 2155 is sup-posed to be b4 regardless of E1 or T1 but I just guess that the card is reporting

Chapter 5 Releases 45

34 instead of b4 for E1 (it might be the firmware setting or unsetting the highbit as was done for the other devices) I changed the sl x400pc driver to printerror messages when loading if such mismatches occur and set the device idsto accept 0x3X as an E1 2155 device and 0bX as a T1J1 2155 device (eventhough they are all the same)As it turns out the V401PE cards have a DS2156 chip instead of a DS2155chip The only difference is the lack of Tx fixed gain control (register 0x7d)and the DS2156 supports a UTOPIA II bus that is not used on the V401PEI changed the driver to recognize the DS2156 and skip register 0x7d when itexists The DS2156 chip will work for both V401T (D33D) and V401E (D44D)cardsfixed in strss7-09a6

002 2007-03-08T210547-0700Timers were message up (using HZ instead of milliseconds) on the X400P driverThis did not affect architectures with 1000 HZ or 1024 HZ tick clocks but 100HZ systems objectfixed in strss7-09a6

001 2007-03-05T155814-0700For some reason the package was always building and installing the lsquolibxnetrsquotexinfo document which was keeping the RPM from installing after thelsquostrxnetrsquo package This was fixed in lsquodocmanualMakefileamrsquo with theaddition of a lsquoWITH_XNETrsquo conditionalfixed in strss7-09a6

56 Schedule

Current Plan

The current plan includes the public production release of SCCP ISUP and TCAP com-ponents MTP3 has not yet been publicly released and is not currently scheduled (Imple-menting the AS-side of M3UA is taking precedence) The first public production releases ofSCCP ISUP and TCAP are planned for the end of July 2007 This will be followed by laband limitied field trial testing with a lead customer in August and production deploymentin the lead customerrsquos network in 1Q2008 Expect that over the next 8 months releases ofthis package will include major new development and validation testing as well as includingSCCP ISUP and TCAP components that have nor heretofore been publicly released

Things to Do

There is a great long list of these but here is a crack at the first onesminus Compile entire (private) package against Linux Fast-STREAMSminus Convert test programs into conformance test suites under GNU autotest This should

be straight forward matterminus Start retesting SIGTRAN components against SCTP and Linux Fast-STREAMS start-

ing with M2PAminus Start retesting SS7 Device Drivers under Linux Fast-STREAMS starting with X400P

46 OpenSS7 SS7 Stack

minus Start retesting SS7 Stack components (MTP2 MTP3 SCCP ISUP TCAP) underLinux Fast-STREAMS

minus Package a public release It has been way too long since a public release of this packageThe package has almost a million lines of code in it most of which the public has neverseen

minus Complete the SL-MUX driver and utility programsminus Complete the libslpcap library (pcap(3)) for live capture of SS7 link SDUs using

ethereal(1) or wireshark(1)

57 History

For the latest developments with regard to history of changes please see the lsquoChangeLogrsquofile in the release package

Chapter 6 Installation 47

6 Installation

61 Repositories

The OpenSS7 SS7 Stack package release can be accessed from the repositories of TheOpenSS7 Project For rpm(1) based systems the package is available in a yum(8) reposi-tory based on lsquorepomdrsquo XML and may also be accessed using zypper(8) or yast(8) Fordpkg(1) based systems the package is available in a apt(8) repository

By far the easiest (most repeatable and manageable) form for installing and using OpenSS7packages is to install packages from the yum(8) or apt(8) repositories If your distributiondoes not support yum(8) zypper(8) yast(8) or apt(8) then it is still possible to installthe RPMs or DEBs from the repositories using rpm(1) dpkg(1) or by using wget(1) andthen installing them from RPM or DEB using rpm(1) or dpkg(1) locally

If binaries are not available for your distribution or specific kernel but your distributionsupports rpm(1) or dpkg(1) the next best method for installing and using OpenSS7 pack-ages is to download and rebuild the source RPMs or DSCs from the repository This canalso be performed with yum(8) zypper(8) yast(8) apt(8) or directly using wget(1)rpm(1) or dpkg(1)

If your architecture does not support rpm(1) or dpkg(1) at all or you have special needs(such as cross-compiling for embedded targets) the final resort method is to downloadconfigure build and install from tarball In this later case the easiest way to build andinstall OpenSS7 packages from tarball is to use the tarball for the OpenSS7 Master Packageopenss7-092G

611 Repositories for YUM

To install or upgrade from the OpenSS7 lsquorepomdrsquo repositories you will need a file inyour lsquoetcyumrepodrsquo directory This file can be obtained directly from the OpenSS7repository like so

$gt REPOS=httpwwwopenss7orgreposrpms$gt wget $REPOScentos52x86_64repodataopenss7repo$gt sudo cp -f openss7repo etcyumrepod$gt sudo yum makecache

This example assumes the the distribution is lsquocentosrsquo and the distribution releaseis lsquo52rsquo and the architecture requires is lsquox86_64rsquo Another example would belsquo$REPOSi686suse110i686repodataopenss7reporsquo for using yum(8) with SUSE

Once the repository is set up OpenSS7 includes a number of virtual package definitionsthat eas the installation and removal of kernel modules libraries and utilities Downloadingconfiguring building and installation for a single-kernel distribution is as easy as

$gt sudo yum install strss7

Removing the package is as easy as

$gt sudo yum remove strss7

If you have difficulty downloading the lsquoopenss7reporsquo file edit the following informationinto the file and place it into the lsquoetcyumrepodopenss7reporsquo file

48 OpenSS7 SS7 Stack

-| [openss7]-| enabled = 1-| name = OpenSS7 Repository-| baseurl = httpwwwopenss7orgreposrpmscentos52x86_64-| gpgcheck = 1-| gpgkey = httpwwwopenss7orgpubkeyasc

Note that it is also possible to point to these repositories as an additional installation sourcewhen installing CentOS RedHat Fedora or others You will have an additional STREAMScategory from which to choose installation packagesSome additional installation real or virtual package names and the installations they ac-complish are as follows

lsquostrss7rsquoThis package can be used to install or remove the entire OpenSS7 SS7 Stackpackage When installing kernel modules will be installed automatically forthe highest version kernel on your system When removing all correspondingkernel modules will also be removed

lsquostrss7-develrsquoThis package can be used to install or remove the development components ofthe OpenSS7 SS7 Stack package When installing lsquostrss7rsquo and appropriatekernel module and kernel module development and debug packages will alsobe installed When removing the development package and all kernel moduledevelopment and debug packages will also be removed

lsquostrss7-2420-287rsquoThis package can be used to install or remove the package for a specific kernelversion When installing the lsquostrss7rsquo package will also be installed if necessaryWhen removing the last kernel module package the lsquostrss7rsquo package will alsobe removedNote that the version lsquo2420-287rsquo is just an example Use the version re-turned by lsquo$(uname -r)rsquo for the kernel for which you wish to install or removethe packages

lsquostrss7-2420-287-develrsquoThis package can be used to install or remove the development and debugpackages for a specific kernel version When installing the lsquostrss7rsquo andlsquostrss7-develrsquo packages will also be installed if necessary When removingthe development and debug for kernel modules for the last kernel thelsquostrss7-develrsquo package will also be removedNote that the version lsquo2420-287rsquo is just an example Use the version re-turned by lsquo$(uname -r)rsquo for the kernel for which you wish to install or removethe packages

For assistance with specific RPMs see Section 623 [Downloading the Binary RPM]page 51

612 Repositories for APT

For assistance with specific DEBs see Section 624 [Downloading the Debian DEB] page 54

Chapter 6 Installation 49

62 Downloading

The OpenSS7 SS7 Stack package releases can be downloaded from the downloads page ofThe OpenSS7 Project The package is available as a binary RPM (for popular architectures)a source RPM Debian binary DEB and source DSC or as a tar ball If you are using abrowsable viewer you can obtain the OpenSS7 release of strss7 from the links in thesections that followBy far the easiest (most repeatable and manageable) form for installing and using OpenSS7packages is to download and install individual packages from binary RPM or DEB If binaryRPMs or DEBs are not available for your distribution but your distribution supportsrpm(1) or dpkg(1) the next best method for installing and using OpenSS7 packages is todownload and rebuild the source RPMs or DSCsIf your architecture does not support rpm(1) or dpkg(1) at all or you have special needs(such as cross-compiling for embedded targets) the final resort method is to downloadconfigure build and install from tarball In this later case the easiest way to build andinstall OpenSS7 packages from tarball is to use the tarball for the OpenSS7 Master Packageopenss7-092G

621 Downloading with YUM

OpenSS7 repositories support yum(8) and zypper(8) in repomd XML format as well asYaST and YaST2 formatsOpenSS7 includes virtual packages that ease the installation and removal of kernel moduleslibraries and utilities Downloading configuration building and installation for a signle-kernel distribution installation is as easy as sudo yum install strss7

This and additional packages for installation are detailed as follows

lsquostrss7rsquo Install this package if you need the runtime lsquostrss7rsquo package sudo yum install strss7

This will install the lsquostrss7rsquo lsquostrss7-librsquo and lsquostrss7-KVERSIONrsquo RPMswhere lsquoKVERSIONrsquo is the highest version number kernel on your systemRemove this package if you need to remove all vestages of the lsquostrss7rsquo package

sudo yum remove strss7

This will remove the lsquostrss7rsquo lsquostrss7-librsquo lsquostrss7-develrsquolsquostrss7-KVERSIONrsquo and lsquostrss7-devel-KVERSIONrsquo RPMs for allkernels on your system

lsquostrss7-develrsquoInstall this package if you need the development lsquostrss7rsquo package

sudo yum install strss7-devel

This will install the lsquostrss7rsquo lsquostrss7-librsquo lsquostrss7-develrsquolsquostrss7-KVERSIONrsquo and lsquostrss7-devel-KVERSIONrsquo RPMs wherelsquoKVERSIONrsquo is the highest version number kernel on your systemRemove this package if you do not need development capabilities for thelsquostrss7rsquo package for any kernel

50 OpenSS7 SS7 Stack

sudo yum remove strss7-devel

This will remove the lsquostrss7-develrsquo and lsquostrss7-devel-KVERSIONrsquo RPMs forall kernels on your system

lsquostrss7-2420-287rsquoInstall this package if you need the runtime lsquostrss7rsquo for kernel versionlsquo2420-287rsquo The value lsquo2420-287rsquo is just an example For the runningkernel you can install the runtime lsquostrss7rsquo components with

sudo yum install strss7-$(uname -r)

This will install the lsquostrss7rsquo lsquostrss7-librsquo and lsquostrss7-2420-287rsquo RPMswhere lsquo2420-287rsquo is the kernel version specified

Remove this package if you no longer need the runtime lsquostrss7rsquo for kernelversion lsquo2420-287rsquo The value lsquo2420-287rsquo is just an example For therunning kernel you can remove the runtime lsquostrss7rsquo components with

sudo yum remove strss7-$(uname -r)

This will remove the lsquostrss7-2420-287rsquo and lsquostrss7-devel-2420-287rsquoRPMs where lsquo2420-287rsquo is the kernel version specified Also if this is thelast kernel for which lsquostrss7rsquo was installed the lsquostrss7rsquo lsquostrss7-librsquo andlsquostrss7-develrsquo RPMs will also be removed

Note that this is a virtual package name the actual RPMs installed or removedfrom the system is a kernel module package whose precise name will dependupon the system being used

lsquostrss7-devel-2420-287rsquoInstall this package if you need the development lsquostrss7rsquo package for kernelversion lsquo2420-287rsquo The value lsquo2420-287rsquo is just an example For therunning kernel you can install the kernel development lsquostrss7rsquo componentswith

sudo yum install strss7-devel-$(uname -r)

This will install the lsquostrss7rsquo lsquostrss7-librsquo lsquostrss7-develrsquolsquostrss7-2420-287rsquo and lsquostrss7-devel-2420-287rsquo RPMswhere lsquo2420-287rsquo is the kernel version specified

Remove this package if you no longer need the development capabilities for thelsquostrss7rsquo package for kernel version lsquo2420-287rsquo The value lsquo2420-287rsquo isjust an example For the running kernel you can remove the kernel developmentlsquostrss7rsquo components with

sudo yum remove strss7-devel-$(uname -r)

This will remove the lsquostrss7-devel-2420-287rsquo RPMs wherelsquo2420-287rsquo is the kernel version specified Also if this is the last kernel forwhich lsquostrss7rsquo was installed the lsquostrss7-develrsquo RPMs will also be removed

Note that this is a virtual package name the actual RPMs installed or removedfrom the system is a kernel module package whose precise name will dependupon the system being used

Chapter 6 Installation 51

lsquostrss7-librsquoThis package is an auxillary package that should be removed and inserted au-tomatically by yum(8) In rare instances you might need to remove or installthis package explicitly

622 Downloading with APT

OpenSS7 repositries support apt(8) repositorie digests and signatures

623 Downloading the Binary RPM

To install from binary RPM you will need several of the RPM for a complete installationBinary RPM fall into several categories To download and install a complete packagerequires the appropriate RPM from each of the several categories below as applicableSome release packages do not provide RPMs in each of the several categories

To install from Binary RPM you will need all of the following kernel independent packagesfor your architecture and one of the kernel-dependent packages from the next section

Independent RPM

Independent RPM are dependent on neither the Linux kernel version nor the STREAMSpackage For example the source package lsquostrss7-source-09a8-172noarchrpmrsquo isnot dependent on kernel nor STREAMS package

All of the following kernel and STREAMS independent RPM are required for your architec-ture Binary RPMs listed here are for example only additional binary RPMs are availablefrom the downloads site If your architecture is not available you can build binary RPMfrom the source RPM (see see Section 641 [Building from the Source RPM] page 77)

Architecture Independent

strss7-dev-09a8-172noarchrpmThe lsquostrss7-devrsquo package contains the device definitions necessary to run ap-plications programs developed for OpenSS7 SS7 Stack1

strss7-doc-09a8-172noarchrpmThe lsquostrss7-docrsquo package contains this manual in plain text postscript lsquopdfrsquoand lsquohtmlrsquo forms along with the meta-information from the lsquostrss7rsquo packageIt also contains all of the manual pages necessary for developing OpenSS7 SS7Stack applications and OpenSS7 SS7 Stack STREAMS modules or drivers

strss7-init-09a8-172noarchrpmThe lsquostrss7-initrsquo package contains the init scripts and provides thelsquopostinstrsquo scripts necessary to create kernel module preloads and modulesdefinitions for all kernel module lsquocorersquo subpackages

1 Not all distributions support the lsquodevrsquo RPM macro a case in point is the SuSE 80 distribution whichuses an older version of rpm(1) Distributions that do not support the lsquodevrsquo macro will build devices asa lsquopostrsquo operation Note also that not all release packages contain devices Only packages that provideSTREAMS character device drivers need devices and then only when the lsquospecfsrsquo or lsquodevfsdrsquo is not beingused

52 OpenSS7 SS7 Stack

strss7-source-09a8-172noarchrpmThe lsquostrss7-sourcersquo package contains the source code necessary for buildingthe OpenSS7 SS7 Stack release It includes the autoconf(1) configurationutilities necessary to create and distribute tarballs lsquorpmrsquo and lsquodebrsquolsquodscrsquo2

Architecture Dependent

strss7-devel-09a8-172i686rpmThe lsquostrss7-develrsquo package contains library archives for static compilationheader files to develop OpenSS7 SS7 Stack modules and drivers This alsoincludes the header files and static libraries required to compile OpenSS7 SS7Stack applications programs

strss7-lib-09a8-172i686rpmThe lsquostrss7-librsquo package contains the run-time shared libraries necessary torun application programs and utilities developed for the lsquostrss7rsquo package3

STREAMS-Dependent RPM

STREAMS-Dependent RPM are dependent upon the specific STREAMS package beingused either Linux STREAMS or Linux Fast-STREAMS Packages dependent uponLinux STREAMS will have lsquoLiSrsquo in the package name Packages dependent uponLinux Fast-STREAMS will have lsquostreamsrsquo in the package name Note that someSTREAMS-Dependent RPM are also Kernel-Dependent RPM as described below

One of the following STREAMS-Dependent packages is required for your architecture Ifyour architecture is not on the list you can build binary RPM from the source RPM (seesee Section 641 [Building from the Source RPM] page 77)

strss7-LiS-util-09a8-172i686rpmThe lsquostrss7-LiS-utilrsquo package provides administrative and configuration testutilities and commands associated with the OpenSS7 SS7 Stack package Be-cause this package must link a STREAMS-specific library it is a STREAMS-Dependent package Use the lsquostrss7-LiS-utilrsquo package if you have LiS in-stalled

strss7-streams-util-09a8-172i686rpmThe lsquostrss7-streams-utilrsquo package provides administrative and configura-tion test utilities and commands associated with the OpenSS7 SS7 Stack pack-age Because this package must link a STREAMS-specific library it is aSTREAMS-Dependent package Use the lsquostrss7-streams-utilrsquo package ifyou have streams installed

Kernel-Dependent RPM

Kernel-Dependent RPM are dependent on specific Linux Kernel Binary RPM releasesPackages are provided for popular released RedHat kernels Packages dependent upon Red-

2 Note that not all releases have source RPM packages Release packages that do not contain kernel modulesdo not generate a source RPM package

3 Note that not all release packages contain shared libraries and therefore not all release packages containthis package

Chapter 6 Installation 53

Hat or other kernel RPM will have the lsquo_kversionrsquo kernel package version in the packagenameOne of the following Kernel-Dependent packages is required for your architecture and kernelversion If your architecture or kernel version is not on the list you can build binary RPMfrom the source RPM (see see Section 641 [Building from the Source RPM] page 77)4

strss7-core-2420-287-09a8-172i686rpmThe lsquostrss7-corersquo package contains the loadable kernel modules that dependonly on the kernel This package is heavily tied to the kernel for which it wascompiled This particular package applies to kernel version lsquo2420-287rsquo5

strss7-info-2420-287-09a8-172i686rpmThe lsquostrss7-inforsquo package6 contains the module symbol version informationfor the lsquocorersquo subpackage above It is possible to load this subpackage andcompile modules that use the exported symbols without loading the actualkernel modules (from the lsquocorersquo subpackage above) This package is heavilytied to the kernel for which it was compiled This particular package applies tokernel version lsquo2420-287rsquo7

strss7-LiS-core-2420-287-09a8-172i686rpmThe lsquostrss7-LiS-corersquo package contains the kernel modules that providethe OpenSS7 SS7 Stack STREAMS modules and drivers This package isheavily tied to the STREAMS package and kernel for which it was compiledThis particular package applies to lsquoLiSrsquo (Linux STREAMS) on kernel versionlsquo2420-287rsquo8

strss7-streams-core-2420-287-09a8-172i686rpmThe lsquostrss7-streams-corersquo package contains the kernel modules that pro-vide the OpenSS7 SS7 Stack STREAMS modules and drivers This package isheavily tied to the STREAMS package and kernel for which it was compiledThis particular package applies to lsquostreamsrsquo (Linux Fast-STREAMS) on kernelversion lsquo2420-287rsquo9

strss7-LiS-info-2420-287-09a8-172i686rpmThe lsquostrss7-LiS-inforsquo package10 contains the module symbol version infor-mation for the lsquoLiS-corersquo subpackage above It is possible to load this sub-package and compile modules that use the exported symbols without loaded the

4 Note that on Mandrakelinux unlike other RPM kernel distributions kernel packages for the ix86 architec-tures are always placed in i586 architecture packages regardless of the true processor architecture of thekernel package lsquoconfigurersquo detects this and builds the appropriate packages

5 Note that the lsquo_kversionrsquo of lsquo2420-287rsquo is only an example Note also that only release packages thatcontain kernel modules will contain a lsquocorersquo subpackage

6 Note that only release packages that contain kernel modules and that export versioned symbols will containa lsquoinforsquo subpackage Also this subpackage is only applicable to 24 series kernels and is not necessary andnot built for 26 series kernels

7 Note that the lsquo_kversionrsquo of lsquo2420-287rsquo is only an example8 Note that the lsquo_kversionrsquo of lsquo2420-287rsquo is only an example9 Note that the lsquo_kversionrsquo of lsquo2420-287rsquo is only an example

10 Note that only release packages that contain kernel modules and that export versioned symbols will containa lsquoLiS-inforsquo subpackage

54 OpenSS7 SS7 Stack

actual kernel modules (from the lsquoLiS-corersquo subpackage above) This packageis heavily tied to the STREAMS package and kernel for which it was compiledThis particular package applies to lsquoLiSrsquo (Linux STREAMS) on kernel versionlsquo2420-287rsquo11

strss7-streams-info-2420-287-09a8-172i686rpmThe lsquostrss7-streams-inforsquo package12 contains the module symbol version in-formation for the lsquostreams-corersquo subpackage above It is possible to loadthis subpackage and compile modules that use the exported symbols withoutloaded the actual kernel modules (from the lsquostreams-corersquo subpackage above)This package is heavily tied to the STREAMS package and kernel for whichit was compiled This particular package applies to lsquostreamsrsquo (Linux Fast-STREAMS) on kernel version lsquo2420-287rsquo13

Configuration and Installation

To configure build and install the binary RPM See Section 631 [Configuring the BinaryRPM] page 62

624 Downloading the Debian DEB

To install from binary DEB you will need several of the DEB for a complete installationBinary DEB fall into several categories To download and install a complete package requiresthe appropriate DEB from each of the several categories below as applicable Some releasepackages do not provide DEBs in each of the several categories

To install from Binary DEB you will need all of the following kernel independent packagesfor your architecture and one of the kernel-dependent packages from the next section

Independent DEB

Independent DEB are dependent on neither the Linux kernel version nor the STREAMSpackage For example the source package lsquostrss7-source_09a8-0_i386debrsquo is notdependent on kernel nor STREAMS package

All of the following kernel and STREAMS independent DEB are required for your architec-ture Binary DEBs listed here are for example only additional binary DEBs are availablefrom the downloads site If your architecture is not available you can build binary DEBfrom the Debian DSC (see see Section 642 [Building from the Debian DSC] page 78)

Architecture Independent

strss7-dev 09a8-0 alldebThe lsquostrss7-devrsquo package contains the device definitions necessary to run ap-plications programs developed for OpenSS7 SS7 Stack14

11 Note that the lsquo_kversionrsquo of lsquo2420-287rsquo is only an example12 Note that only release packages that contain kernel modules and that export versioned symbols will contain

a lsquostreams-inforsquo subpackage13 Note that the lsquo_kversionrsquo of lsquo2420-287rsquo is only an example14 Note that not all release packages contain devices Only packages that provide STREAMS character device

drivers need devices and then only when the lsquospecfsrsquo or lsquodevfsdrsquo is not being used

Chapter 6 Installation 55

strss7-doc 09a8-0 alldebThe lsquostrss7-docrsquo package contains this manual in plain text postscript lsquopdfrsquoand lsquohtmlrsquo forms along with the meta-information from the lsquostrss7rsquo packageIt also contains all of the manual pages necessary for developing OpenSS7 SS7Stack applications and OpenSS7 SS7 Stack STREAMS modules or drivers

strss7-init 09a8-0 alldebThe lsquostrss7-initrsquo package contains the init scripts and provides the postinstscripts necessary to create kernel module preloads and modules definitions forall kernel module lsquocorersquo subpackages

strss7-source 09a8-0 alldebThe lsquostrss7-sourcersquo package contains the source code necessary for buildingthe OpenSS7 SS7 Stack release It includes the autoconf(1) configurationutilities necessary to create and distribute tarballs rpms and debdscs15

Architecture Dependent

strss7-devel 09a8-0 i386debThe lsquostrss7-develrsquo package contains library archives for static compilationheader files to develop OpenSS7 SS7 Stack modules and drivers This alsoincludes the header files and static libraries required to compile OpenSS7 SS7Stack applications programs

strss7-lib 09a8-0 i386debThe lsquostrss7-librsquo package contains the run-time shared libraries necessary torun application programs and utilities developed for the lsquostrss7rsquo package16

STREAMS-Dependent DEB

STREAMS-Dependent DEB are dependent upon the specific STREAMS package beingused either Linux STREAMS or Linux Fast-STREAMS Packages dependent uponLinux STREAMS will have lsquoLiSrsquo in the package name Packages dependent uponLinux Fast-STREAMS will have lsquostreamsrsquo in the package name Note that someSTREAMS-Dependent DEB are also Kernel-Dependent DEB as described below

One of the following STREAMS-Dependent packages is required for your architecture Ifyour architecture is not on the list you can build binary DEB from the Debian DSC (seesee Section 642 [Building from the Debian DSC] page 78)

strss7-LiS-util 09a8-0 i386debThe lsquostrss7-LiS-utilrsquo package provides administrative and configuration testutilities and commands associated with the OpenSS7 SS7 Stack package Be-cause this package must link a STREAMS-specific library it is a STREAMS-Dependent package Use the lsquostrss7-LiS-utilrsquo package if you have LiS in-stalled

15 Note that not all releases have source DEB packages Release packages that do not contain kernel modulesdo not generate a source DEB package

16 Note that not all release packages contain shared libraries and therefore not all release packages containthis package

56 OpenSS7 SS7 Stack

strss7-streams-util 09a8-0 i386debThe lsquostrss7-streams-utilrsquo package provides administrative and configura-tion test utilities and commands associated with the OpenSS7 SS7 Stack pack-age Because this package must link a STREAMS-specific library it is aSTREAMS-Dependent package Use the lsquostrss7-streams-utilrsquo package ifyou have streams installed

Kernel-Dependent DEB

Kernel-Dependent DEB are dependent on specific Linux Kernel Binary DEB releases Pack-ages are provided for popular released Debian kernels Packages dependent upon Debian orother kernel DEB will have the lsquo_kversionrsquo kernel package version in the package nameOne of the following Kernel-Dependent packages is required for your architecture and kernelversion If your architecture or kernel version is not on the list you can build binary DEBfrom the source DEB (see see Section 642 [Building from the Debian DSC] page 78)17

strss7-core-2420-287 09a8-0 i386debThe lsquostrss7-corersquo package contains the loadable kernel modules that dependonly on the kernel This package is heavily tied to the kernel for which it wascompiled This particular package applies to kernel version lsquo2420-287rsquo18

strss7-info-2420-287 09a8-0 i386debThe lsquostrss7-inforsquo package19 contains the module symbol version informationfor the lsquocorersquo subpackage above It is possible to load this subpackage andcompile modules that use the exported symbols without loading the actualkernel modules (from the lsquocorersquo subpackage above) This package is heavilytied to the kernel for which it was compiled This particular package applies tokernel version lsquo2420-287rsquo20

strss7-LiS-core-2420-287 09a8-0 i386debThe lsquostrss7-LiS-corersquo package contains the kernel modules that providethe OpenSS7 SS7 Stack STREAMS modules and drivers This package isheavily tied to the STREAMS package and kernel for which it was compiledThis particular package applies to lsquoLiSrsquo (Linux STREAMS) on kernel versionlsquo2420-287rsquo21

strss7-streams-core-2420-287 09a8-0 i386debThe lsquostrss7-streams-corersquo package contains the kernel modules that pro-vide the OpenSS7 SS7 Stack STREAMS modules and drivers This package isheavily tied to the STREAMS package and kernel for which it was compiled

17 Note that on Mandrakelinux unlike other DEB kernel distributions kernel packages for the ix86 architecturesare always placed in i586 architecture packages regardless of the true processor architecture of the kernelpackage lsquoconfigurersquo detects this and builds the appropriate packages

18 Note that the lsquo_kversionrsquo of lsquo2420-287rsquo is only an example Note also that only release packages thatcontain kernel modules will contain a lsquocorersquo subpackage

19 Note that only release packages that contain kernel modules and that export versioned symbols will containa lsquoinforsquo subpackage Also this subpackage is only applicable to 24 series kernels and is not necessary andnot built for 26 series kernels

20 Note that the lsquo_kversionrsquo of lsquo2420-287rsquo is only an example21 Note that the lsquo_kversionrsquo of lsquo2420-287rsquo is only an example

Chapter 6 Installation 57

This particular package applies to lsquostreamsrsquo (Linux Fast-STREAMS) on kernelversion lsquo2420-287rsquo22

strss7-LiS-info-2420-287 09a8-0 i386debThe lsquostrss7-LiS-inforsquo package23 contains the module symbol version infor-mation for the lsquoLiS-corersquo subpackage above It is possible to load this sub-package and compile modules that use the exported symbols without loaded theactual kernel modules (from the lsquoLiS-corersquo subpackage above) This packageis heavily tied to the STREAMS package and kernel for which it was compiledThis particular package applies to lsquoLiSrsquo (Linux STREAMS) on kernel versionlsquo2420-287rsquo24

strss7-streams-info-2420-287 09a8-0 i386debThe lsquostrss7-streams-inforsquo package25 contains the module symbol version in-formation for the lsquostreams-corersquo subpackage above It is possible to loadthis subpackage and compile modules that use the exported symbols withoutloaded the actual kernel modules (from the lsquostreams-corersquo subpackage above)This package is heavily tied to the STREAMS package and kernel for whichit was compiled This particular package applies to lsquostreamsrsquo (Linux Fast-STREAMS) on kernel version lsquo2420-287rsquo26

Configuration and Installation

To configure build and install the Debian DEB See Section 632 [Configuring the DebianDEB] page 63

625 Downloading the Source RPM

If you cannot obtain a binary RPM for your architecture or would like to roll you ownbinary RPM download the following source RPM

strss7-09a8-1srcrpmThis is the source RPM for the package From this source RPM it is possible tobuild binary RPM for any supported architecture and for any 24 or 26 kernelfor either Linux STREAMS or Linux Fast-STREAMS

Configuration

To configure the source RPM See Section 633 [Configuring the Source RPM] page 63

626 Downloading the Debian DSC

If you cannot obtain a binary DEB for your architecture or would like to roll your ownDEB download the following Debian DSC

22 Note that the lsquo_kversionrsquo of lsquo2420-287rsquo is only an example23 Note that only release packages that contain kernel modules and that export versioned symbols will contain

a lsquoLiS-inforsquo subpackage24 Note that the lsquo_kversionrsquo of lsquo2420-287rsquo is only an example25 Note that only release packages that contain kernel modules and that export versioned symbols will contain

a lsquostreams-inforsquo subpackage26 Note that the lsquo_kversionrsquo of lsquo2420-287rsquo is only an example

58 OpenSS7 SS7 Stack

strss7 09a8-0dscstrss7 09a8-0targz

This is the Debian DSC for the package From this Debian DSC it is possible tobuild binary DEB for any supported architecture and for any 24 or 26 kernelfor either Linux STREAMS or Linux Fast-STREAMS

Configuration

To configure the source RPM See Section 634 [Configuring the Debian DSC] page 67

627 Downloading the Tar Ball

For non-rpm(1) and non-dpkg(1) architectures download the tarball as follows

strss7-09a8targzstrss7-09a8tarbz2

These are the tar(1) balls for the release These tar(1) balls contain theautoconf(1) distribution which includes all the source necessary for buildingand installing the package These tarballs will even build Source RPM andBinary RPM on rpm(1) architectures and Debian DSC and DEB on dpkg(1)architectures

The tar ball may be downloaded easily with wget(1) as follows wget httpwwwopenss7orgstrss7-09a8tarbz2

or wget httpwwwopenss7orgstrss7-09a8targz

Note that you will need an OpenSS7 Project user name and password to download releasecandidates (which are only available to subscribers and sponsors of the OpenSS7 Project)

Unpacking the Archive

After downloading one of the tar balls unpack the archive using one of the following com-mands wget httpwwwopenss7orgstrss7-09a8targz tar -xzvf strss7-09a8targz

or wget httpwwwopenss7orgstrss7-09a8tarbz2 tar -xjvf strss7-09a8tarbz2

Either will create a subdirectory name lsquostrss7-09a8rsquo containing all of the files andsubdirectories for the strss7 package

Chapter 6 Installation 59

Configuration

To configure and install the tar ball See Section 635 [Configuring the Tar Ball] page 67

628 Downloading from CVS

If you are a subscriber or sponsor of The OpenSS7 Project with CVS archive access privilegesthen you can download release mid-release or release candidate versions of the lsquostrss7rsquopackage from the project CVS archiveThe OpenSS7 SS7 Stack package is located in the lsquostrss7rsquo module of lsquovarcvsrsquo Forrelease tag information see Chapter 5 [Releases] page 33To access the archive from the project CVS pserver use the following commands to checkout a version from the archive export CVSROOT=rsquo-dpserverusernamecvsopenss7com2401varcvsrsquo cvs loginPassword cvs co -r strss7_09a8 strss7 cvs logout

It is of course possible to check out by date or by other criteria For more informationsee cvs(1)

Preparing the CVS Working Directory

Although public releases of the lsquostrss7rsquo package do not require reconfiguration creating aconfigurable directory from the CVS archive requires tools not normally distributed withthe other releasesThe build host requires the following GNU toolsbull m4 1412

bull autoconf 263

bull automake 1101

bull libtool 224

bull gettext 017

bull flex 2533

bull bison 23

Most desktop development GNULinux distributions wil have these tools however somenon-development or server-style installations might not and they must be installed sepa-rately27

Also these tools can be acquired from the FSF website in the free software directory andalso at the following locationsbull m4-1412bull autoconf-263

27 Older version of bison (20) and the older version of flex (254a) are also suitable Where possible use themore recent bison 23 and flex 2533

60 OpenSS7 SS7 Stack

bull automake-1101bull libtool-224bull gettext-017bull flex-2533bull bison-23

It should be stressed that in particular the autoconf(1) and automake(1) must be atversion releases 263 and 1101 The versions normally distributed in some mainstreamGNULinux distributions are in fact much older than these versions28 GNU version ofthese packages configured and installed to default directories will install in lsquousrlocalrsquoallowing them to coexist with distribution installed versionsFor building documentation the build host also requires the following documentation toolsbull gs 651 or ghostscript 651 or newerbull tetex 30 or texlive 2007 or newerbull texinfo 413a or newerbull transfig 323d or newerbull imagemagick 538 or ImageMagick 538 or newerbull groff 1172 or newerbull gnuplot 37 or newerbull latex2html 162 or newer

Most desktop GNULinux distributions will have these tools however some server-styleinstallations (eg Ubuntu-server SLES 9 or Fedora 6 or 7) will not and they must beinstalled separately29

Note that texinfo 412 must not be used as it breaks the build processFor uncooked manual pages the entire groff(1) package is required on older Debian andUbuntu systems (the base package did not include grefer(1) which is used extensively byuncooked manual pages) The following will get what you need on older systems Debian apt-get install groff_extUbuntu apt-get install groff

On newer systems simply apt-get install groff

In addition the build host requires a complete tool chain for compiling for the target hostincluding kernel tools such as genksyms(8) and others

28 A notable exception is Debian and Fedora 7 Note that on Fedora 7 the gettext-devel package must beinstalled

29 In particular for CentOS Fedora 6 or 7 the tetex-latex and gnuplot packages must be loaded as wellNote also that the latex2html used to be part of the textex package (or subpackages) but is now oftenpackaged on its own Recent distributions such as SUSE 110 and Fedora 9 use the texlive package insteadof the tetex package

Chapter 6 Installation 61

If you wish to package lsquorpmsrsquo on an rpm(1) system or lsquodebsrsquo on a dpkg(1) system you willneed the appropriate tool chain Systems based on rpm(1) typically have the necessary toolchain available however dpkg(1) systems do not The following on a Debian or Ubuntusystem will get what you need apt-get install debhelper apt-get install fakeroot

To generate a configuration script and the necessary scriptlets required by the GNUautoconf(1) system execute the following commands on the working directory autoreconf -fiv strss7

where lsquostrss7rsquo is the name of the directory to where the working copy was checked outunder the previous step This command generates the lsquoconfigurersquo script and other missingpieces that are normally distributed with the release Tar Balls SRPMs and DSCs

Make sure that lsquoautoreconf --versionrsquo returns lsquo263rsquo Otherwise you may need to per-form something like the following PATH=usrlocalbin$PATH autoreconf -fiv strss7

After reconfiguring the directory the package can then be configured and built using thesame instructions as are used for the Tar Ball see Section 635 [Configuring the Tar Ball]page 67 and Section 643 [Building from the Tar Ball] page 78

Do note however that make(1) will rebuild the documentation that is normally releasedwith the package Additional tools may be necessary for building the documentationTo avoid building and installing the documentation use the lsquo--disable-develrsquo orlsquo--disable-docsrsquo option to configure described in Section 635 [Configuring the Tar Ball]page 67

When configuring the package in a working directory and while working a change-compile-test cycle that involves configuration macros or documentation I find it ofgreat advantage to invoke the GNU lsquoconfigurersquo options lsquo--enable-maintainer-modersquolsquo--enable-dependency-trackingrsquo and lsquo--disable-develrsquo The first of these threeoptions will add maintainer-specific targets to any generated lsquoMakefilersquo the second optionwill invoke automatic dependency tracking within the lsquoMakefilersquo so rebuilds after changesto macro source or documentation files will be automatically rebuilt and the last optionwill suppress rebuilding and reinstalling documentation manual pages and header filesHeader files will still be available under the lsquousrsrcrsquo directory

63 Configuration

62 OpenSS7 SS7 Stack

631 Configuring the Binary RPM

In general the binary RPM do not require any configuration however during installationit is possible to relocate some of the installation directories This allows some degree ofcustomization Relocations that are available on the binary RPM are as follows

lsquostrss7-LiS-core-2420-287-09a8-172i686rpmrsquolsquostrss7-streams-core-2420-287-09a8-172i686rpmrsquo

lsquolibmodules2420-287rsquoThis relocatable directory contains the kernel modules that providethe strss7 STREAMS core drivers and modules30

lsquostrss7-LiS-info-2420-287-09a8-172i686rpmrsquolsquostrss7-streams-info-2420-287-09a8-172i686rpmrsquo

lsquousrincludestrss72420-287rsquoThis relocatable directory contains the kernel module exportedsymbol information that allows other kernel modules to be com-piled against the correct version of the strss7 package31

lsquostrss7-dev-09a8-172i686rpmrsquo(not relocatable)

lsquostrss7-devel-09a8-172i686rpmrsquolsquousrlibrsquo

This relocatable directory contains strss7 libraries

lsquousrincludestrss7rsquoThis relocatable directory contains strss7 header files

lsquostrss7-doc-09a8-172i686rpmrsquolsquousrsharedocrsquo

This relocatable directory contains all package specific documenta-tion (including this manual) The subdirectory in this directory isthe lsquostrss7-09a8rsquo directory

lsquousrshareinforsquoThis relocatable directory contains info files (including the info ver-sion of this manual)

lsquousrsharemanrsquoThis relocatable directory contains manual pages

lsquostrss7-LiS-lib-09a8-172i686rpmrsquolsquostrss7-streams-lib-09a8-172i686rpmrsquo

lsquousrlibrsquoThis relocatable directory contains the run-time shared librariesnecessary to run applications programs and utilities developed forOpenSS7 SS7 Stack

30 Note that the lsquo_kversionrsquo of lsquo2420-287rsquo is only an example31 Note that the lsquo_kversionrsquo of lsquo2420-287rsquo is only an example Also note that the lsquoinforsquo subpackage is

only applicable to the 24 kernel series

Chapter 6 Installation 63

lsquousrsharelocalersquoThis relocatable directory contains the locale information for sharedlibrary files

lsquostrss7-source-09a8-172i686rpmrsquo

lsquousrsrcrsquoThis relocatable directory contains the source code

lsquostrss7-LiS-util-09a8-172i686rpmrsquolsquostrss7-streams-util-09a8-172i686rpmrsquo

lsquousrbinrsquoThis relocatable directory contains binary programs and utilities

lsquousrsbinrsquoThis relocatable directory contains system binary programs andutilities

lsquousrlibexecrsquoThis relocatable directory contains test programs

lsquoetcrsquo This relocatable directory contains init scripts and configurationinformation

Installation

To install the binary RPM See Section 651 [Installing the Binary RPM] page 79

632 Configuring the Debian DEB

In general the binary DEB do not require any configuration

Installation

To install the Debian DEB See Section 652 [Installing the Debian DEB] page 80

633 Configuring the Source RPM

When building from the source RPM (see Section 641 [Building from the Source RPM]page 77) the rebuild process uses a number of macros from the userrsquos lsquorpmmacrosrsquo file asdescribed in rpm(8)

Following is an example of the lsquo~rpmmacrosrsquo file that I use for rebuilding RPMS

64 OpenSS7 SS7 Stack

RPM macros for building rpms

vendor OpenSS7 Corporation

distribution OpenSS7

disturl httpwwwopenss7org

packager Brian Bidulock ltbidulockopenss7orggt

url httpwwwopenss7org

_signature gpg

_gpg_path homebriangnupg

_gpg_name openss7openss7org

_gpgbin usrbingpg

_source_payload w9bzdio

_binary_payload w9bzdio

_unpackaged_files_terminate_build 1

_missing_doc_files_terminate_build 1

_use_internal_dependency_generator 0

_repackage_all_erasures 0

_rollback_transaction_on_failure 0

configure2_5x configure

make make When building from the source RPM (see Section 641 [Building from the Source RPM]page 77) it is possible to pass a number of additional configuration options to therpmbuild(1) process

The additional configuration options are described below

Note that distributions that use older versions of rpm do not have the lsquo--withrsquo orlsquo--withoutrsquo options defined To achieve the same effect as

--with someparm=somearg

do

--define _with_someparm --with-someparm=somearg

This is a generic description of common rpmbuild(1) options Not all rpmbuild(1) optionsare applicable to all SRPMs Options that are kernel module specific are only applicable toSRPMs that build kernel modules STREAMS options are only applicable to SRPMs thatprovide or require STREAMS

--define _kversion $PACKAGE_KVERSIONSpecifies the kernel version other than the running kernel for which tobuild If _kversion is not defined when rebuilding the environmentvariable PACKAGE KVERSION is used If the environment variablePACKAGE KVERSION is not defined then the version of the runningkernel (ie discovered with lsquouname -rrsquo) is used as the target version forkernel-dependent packages This option can also be defined in an lsquorpmspecrsquofile using the macro name lsquo_kversionrsquo

Chapter 6 Installation 65

--with checks--without checks

Enable or disable preinstall checks Each packages supports a number ofpreinstall checks that can be performed by invoking the lsquocheckrsquo target withautomake(1) These currently consist of checking each kernel module forunresolved kernel symbols checking for documentation for exported kernelmodule symbols checking for documentation for exported library symbolschecking for standard options for build and installable programs checkingfor documentation for built and installable programs Normally these checksare only run in maintainer mode but can be enabled and disabled with thisoption

--with k-optimize=HOW--without k-optimize

Specify lsquoHOWrsquo optimization normal size speed or quick size compiles kernelmodules -Os speed compiles kernel modules -O3 and quick compiles kernelmodules -O0 The default is normal Use with care

--with cooked-manpages--without cooked-manpages

Some systems do not like grefer(1) references in manual pages32 This optionwill cook soelim(1) refer(1) tbl(1) and pic(1) commands from the man-ual pages and also strip groff(1) comments The default is to leave manualpages uncooked they are actually smaller that way

--with public--without public

Release public packages or private packages This option has no effect on thelsquostrss7rsquo package The default is to release public packages

--with k-debug--without k-debug

Specifies whether kernel debugging is to be performed on the build kernel mod-ules Mutually exclusive with test and safe below This has the effect ofremoving static and inline attributes from functions and invoking all debuggingmacros in the code The default is to not perform kernel debugging

--with k-test--without k-test

Specifies whether kernel testing is to be performed Mutually exclusive withdebug above and safe below This has the effect of removing static and inlineattributes from functions and invoking most debugging macros in the code Thedefault is to not perform kernel testing

32 In particular some Debian systems do not load the groff(1) extensions package and do not have grefer(1)

installed Although this is an oversight on the configuration of the particular Debian system we accomodatesuch misconfiguration with this feature

66 OpenSS7 SS7 Stack

--with k-safe--without k-safe

Specifies whether kernel saftey is to be performed Mutually exclusive withdebug and test above This has the effect of invoking some more pedanticassertion macros in the code The default is not to apply kernel safety

--with k-inline--without k-inline

Specifies whether kernel inline functions are to be placed inline This hasthe effect of adding the lsquo-finline-functionsrsquo flag to CFLAGS for compil-ing kernel modules Linux 24 kernels are normally compiled lsquo-O2rsquo whichdoes not respect the inline directive This compiles kernel modules withlsquo-finline-functionsrsquo to get closer to lsquo-O3rsquo optimization For better opti-mization controls See Section 635 [Configuring the Tar Ball] page 67

--with k-modversions--without k-modversions

Specifies whether kernel symbol versions are to be applied to symbols exportedby package kernel modules The default is to version exported module symbolsThis package does not export symbols so this option has no effect

--with devfs--without devfs

Specifies whether the build is for a device file system daemon enabled systemwith autoloading or not The default is to build for devfsd(1) autoloadingwhen CONFIG DEVFS FS is defined in the target kernel The lsquorebuildrsquo tar-get uses this option to signal to the RPM spec file that the lsquodevrsquo subpackageneed not be built This option does not appear when the package has no devices

--with devel--without devel

Specifies whether to build development environment packages such as those thatinclude header files static libraries manual pages and texinfo(1) documen-tation The default is to build development environment packages This optioncan be useful when building for an embedded target where only the runtimecomponents are desired

--with docs--without docs

Specifies whether to build and install major documentation such manual pagesand texinfo(1) documentation The default is to build and install documen-tation This option can be useful when building for an embedded target whereonly the runtime and static compile components are desired but not majordocumentation This option does not override the setting of --without devel

--with tools--without tools

Specifies whether user space packages are to be built The default is to builduser space packages This option can be useful when rebuilding for multiplearchitectures and target kernels The lsquorebuildrsquo automake(1) target uses this

Chapter 6 Installation 67

feature when rebuilding for all available architectures and kernels to rebuilduser packages once per architecture instead of once per kernel

--with modules--without modules

Specifies whether kernel modules packages are to be built The default is tobuild kernel module packages This option can be useful when rebuilding formultiple architectures and target kernels The lsquorebuildrsquo automake(1) targetuses this feature to rebuild for all available architectures and kernels

--with lis--without lis

Specifies that the package is to be rebuilt against Linux STREAMS The defaultis to automatically identify whether lsquoLiSrsquo or lsquostreamsrsquo is loaded on the buildsystem and build accordingly

--with lfs--without lfs

Specifies that the package is to be rebuilt against Linux Fast-STREAMS Thedefault is to automatically identify whether lsquoLiSrsquo or lsquostreamsrsquo is loaded on thebuild system and build accordingly

In general the default values of these options are sufficient for most purposes and no optionsneed be provided when rebuilding the Source RPMs

Build

To build from the source RPM See Section 641 [Building from the Source RPM] page 77

634 Configuring the Debian DSC

The Debian DSC can be configured by passing options in the environment variableBUILD DEBOPTIONS The options placed in this variable take the same form as thosepassed to the lsquoconfigurersquo script See Section 635 [Configuring the Tar Ball] page 67 Foran example See Section 642 [Building from the Debian DSC] page 78

Build

To build from the Debian DSC See Section 642 [Building from the Debian DSC] page 78

635 Configuring the Tar Ball

All of the normal GNU autoconf(1) configuration options and environment variables applyAdditional options and environment variables are provided to tailor or customize the buildand are described below

6351 Configure Options

This is a generic description of common lsquoconfigurersquo options that are in addition to thoseprovided by autoconf(1) automake(1) libtool(1) and gettext(1)Not all lsquoconfigurersquo options are applicable to all release packages Options that arekernel module specific are only applicable to release packages that build kernel modulesSTREAMS options are only applicable to release packages that provide or requireSTREAMS

68 OpenSS7 SS7 Stack

Following are the additional lsquoconfigurersquo options their meaning and use

--enable-checks--disable-checks

Enable or disable preinstall checks Each release package supports a numberof preinstall checks that can be performed by invoking the lsquocheckrsquo target withmake(1) These currently consist of checking each kernel module for unresolvedkernel symbols checking for documentation for exported kernel module sym-bols checking for documentation for exported library symbols checking forstandard options for build and installable programs checking for documenta-tion for built and installable programs Normally these checks are only run inmaintainer mode but can be enabled and disabled with this option

--enable-autotest--disable-autotest

Enable or disable pre- and post-installation testing Each release package sup-ports a number of autotest test suites that can be performed by invokingthe lsquoinstallcheckrsquo target with make(1) These currently consist of runninginstalled modules commands and binaries against a number of specific testcases Normally these checks are only run in maintainer mode but can beenabled and disabled with this option

--disable-compress-manpagesCompress manual pages with lsquogzip -9rsquo or lsquobzip2 -9rsquo or leave them uncom-pressed The default is to compress manual pages with lsquogzip -9rsquo or lsquobzip2 -9rsquoif a single compressed manual page exists in the target installation directory(lsquo--mandirrsquo) This disables automatic compression

--disable-publicDisable public release This option is not usable on public releases and only hasa usable effect on OpenSS7 SS7 Stack when the package is acquired from CVSIn particular the STREAMS SS7VoIPISDNSIGTRAN Stacks (strss7-09a8) release package has a large number of non-public components Speci-fying this option will cause the package to build and install all private releasecomponents in addition to the public release components This option affects allrelease packages Most release packages do not have private release components

--disable-initscriptsDisables the installation of init scripts The default is to configure and installinit scripts and their associated configuration filesAlthough the default is to install init scripts installation attempts to detect aSystem V init script configuration and if one is not found the init scripts areinstalled into the appropriate directories but the symbolic links to the run levelscript directories are not generated and the script is not invoked Therefore itis safe to leave this option unchanged even on distributions that do not supportSystem V init script layout

--disable-32bit-libsDisables the build and install of 32-bit compatibility libraries and test binarieson 64-bit systems that support 32-bit compatibility The default is to build

Chapter 6 Installation 69

and install 32-bit compatibility libraries and test binaries This option canbe usefule when configuring for an embedded target where only native sharedlibraries and binaries are desired

--disable-develDisables the installation of development environment components such asheader files static libraries manual pages and texinfo(1) documentationThe default is to install development environment components This optioncan be useful when configuring for an embedded target where only the runtimecomponents are desired or when performing a edit-compile-test cycle

--disable-docsDisables the build and installation of major documentation such manual pagesand texinfo(1) documentation The default is to build and install documen-tation This option can be useful when building for an embedded target whereonly the runtime and static compile components are desired but not major doc-umentation This option does not override the setting of lsquo--disable-develrsquo

--enable-toolsSpecifies whether user space programs and libraries are to be built and installedThe default is to build and install user space programs and libraries This optioncan be useful when rebuilding for multiple architectures and target kernelsparticularly under rpm(1) or dpkg(1) The lsquorebuildrsquo automake(1) target usesthis feature when rebuilding RPMs for all available architectures and kernelsto rebuild user packages once per architecture instead of once per kernel

--enable-modulesSpecifies whether kernel modules are to be built and installed The default is tobuild and install kernel modules This option can be useful when rebuilding formultiple architectures and target kernels particularly under rpm(1) or dpkg(1)The lsquorebuildrsquo automake(1) target uses this feature to rebuild for all availablearchitectures and kernels This option has no effect for release packages thatdo not provide kernel modules

--enable-archSpecifies whether architectural dependent package components are to be builtand installed This option can be useful when rebuilding for multiple architec-tures and target kernels particularly under dpkg(1) The default is to config-ure build and install architecture dependent package components This optionhas no effect for release packages that do not provide architecture dependentcomponents

--enable-indepSpecifies whether architecture independent package components are to be builtand installed This option can be useful when rebuilding for multiple architec-tures and target kernels particularly under dpkg(1) The default is to con-figure build and install architecture independent package components Thisoptions has no effect for release packages that do not provide architecture in-dependent components

70 OpenSS7 SS7 Stack

--enable-k-inlineEnable kernel inline functions Most Linux kernels build withoutlsquo-finline-functionsrsquo This option adds the lsquo-finline-functionsrsquo andlsquo-Winlinersquo flags to the compilation of kernel modules Use with care Thisoption has no effect for release packages that do not provide kernel modules

--enable-k-safeEnable kernel module run-time safety checks Specifies whether kernel safety isto be performed This option is mutually exclusive with lsquo--enable-k-testrsquo andlsquo--enable-k-debugrsquo below This has the effect of invoking some more pedanticassertion macros in the code The default is not to apply kernel safety Thisoption has no effect for release packages that have are no kernel modules

--enable-k-testEnable kernel module run-time testing Specifies whether kernel testing is to beperformed This option is mutually exclusive with lsquo--enable-k-safersquo aboveand lsquo--enable-k-debugrsquo below This has the effect of remove static andinline attributes from functions and invoking most non-performance affectingdebugging macros in the code The default is not to perform kernel testing Thisoption has no effect for release packages that do not provide kernel modules

--enable-k-debugEnable kernel module run-time debugging Specifies whether kernel debuggingis to be performed This option is mutually exclusive with lsquo--enable-k-safersquoand lsquo--enable-k-testrsquo above This has the effect of removing static andinline attributes from functions and invoking all debugging macros in thecode (including performance-affecting debug macros) The default is to notperform kernel debugging This option has no effect for release packages thatdo not provide kernel modules

--disable-k-modversionsDisable module versions on strss7 symbols Specifies whether kernel symbolversions are to be used on symbols exported from built strss7 modules Thedefault is to provide kernel symbol versions on all exported symbols Thisoption has no effect for release packages that do not provide kernel modules

--enable-devfs--disable-devfs

Specifies whether the build is for a device file system daemon enabled systemwith autoloading or not The default is to build for devfsd(8) autoload-ing when CONFIG DEVFS FS is defined in the target kernel The lsquoreuildrsquoautomake(1) target uses this option to signal to the RPM spec file that the lsquodevrsquosubpackage need not be built This option has no effect for release packagesthat do not provide devices

--with-gpg-user=GNUPGUSERSpecify the gpg(1) lsquoGNUPGUSERrsquo for signing RPMs and tarballs The defaultis the content of the environment variable GNUPGUSER If unspecified thegpg(1) program will normally use the user name of the account invoking thegpg(1) program For building source RPMs the RPM macro lsquo_gpg_namersquo willoverride this setting

Chapter 6 Installation 71

--with-gpg-home=GNUPGHOMESpecify the lsquoGNUPGHOMErsquo directory for signing RPMs and tarballs The defaultis the userrsquos lsquo~gpgrsquo directory For building source RPMs the RPM macrolsquo_gpg_pathrsquo will override this setting

--with-pkg-epoch=EPOCHSpecifies the epoch for the package This is neither used for rpm(1) nor dpkg(1)packages it applies to the tarball release as a whole The default is the contentsof the lsquopkgepochrsquo file in the release package source directory or if that file doesnot exist zero (0)

--with-pkg-release=RELEASESpecifies the release for the package This is neither used for rpm(1) nordpkg(1) packages it applies to the tarball release as a whole The defaultis the contents of the lsquopkgreleasersquo file in the release package source directoryor if that file does not exist one (1) This is the number after the last pointin the package version number

--with-pkg-distdir=DIRSpecifies the distribution directory for the package This is used by the main-tainer for building distributions of tarballs This is the directory into whicharchives are copied for distribution The default is the top build directory

--with-cooked-manpagesConvert manual pages to remove macro dependencies and grefer(1) refer-ences Some systems do not like grefer(1) references in manual pages33 Thisoption will cook soelim(1) refer(1) tbl(1) and pic(1) commands fromthe manual pages and also strip groff(1) comments The default is to leavemanual pages uncooked (they are actually smaller that way)

--with-rpm-epoch=PACKAGE_EPOCHSpecify the lsquoPACKAGE_EPOCHrsquo for the RPM spec file The default is to use theRPM epoch contained in the release package file lsquorpmepochrsquo

--with-rpm-release=PACKAGE_RPMRELEASESpecify the lsquoPACKAGE_RPMRELEASErsquo for the RPM lsquospecrsquo file The default is touse the RPM release contained in the release package file lsquorpmreleasersquo

--with-rpm-extra=PACKAGE_RPMEXTRASpecify the lsquoPACKAGE_RPMEXTRArsquo extra release information for the RPM specfile The default is to use the RPM extra release information contained in therelease package file lsquorpmextrarsquo Otherwise this value will be determined fromautomatic detection of the RPM distribution

--with-rpm-topdir=PACKAGE_RPMTOPDIRSpecify the lsquoPACKAGE_RPMTOPDIRrsquo top directory for RPMs If specified with anull lsquoPACKAGE_RPMTOPDIRrsquo the default directory for the RPM distribution willbe used If this option is not provided on the command line the top builddirectory will be used as the RPM top directory as well

33 In particular some Debian or Ubuntu systems do not load the groff(1) extensions package and do not havegrefer(1) installed Although this is an oversight on the configuration of the particular Debian or Ubuntusystem we accomodate such misconfiguration with this feature

72 OpenSS7 SS7 Stack

--with-deb-epoch=EPOCHSpecify the lsquoPACKAGE_DEBEPOCHrsquo for the DEB control file The default is to usethe DEB epoch contained in the release package file lsquodebepochrsquo

--with-deb-release=RELEASESpecify the lsquoPACKAGE_DEBRELEASErsquo for the DEB control file The default is touse the DEB release contained in the release package file lsquodebreleasersquo

--with-deb-topdir=DIRSpecify the lsquoPACKAGE_DEBTOPDIRrsquo top directory for DEBs If specified with anull lsquoPACKAGE_DEBTOPDIRrsquo the default directory for the DEB distribution willbe used If this option is not provided on the command line the top builddirectory will be used as the DEB top directory as well

--with-k-release=PACKAGE_KRELEASESpecify the lsquoPACKAGE_KRELEASErsquo release of the Linux kernel for which the buildis targeted When not cross compiling if this option is not set the build willbe targeted at the kernel running in the build environment (eg lsquouname -rrsquo)When cross-compiling this option must be specified or the configure script willgenerate an error and terminate

--with-k-linkage=PACKAGE_KLINKAGESpecify the lsquoPACKAGE_KLINKAGErsquo for kernel module linkage This can be one ofthe followingbull lsquoloadablersquo ndash loadable kernel modulesbull lsquolinkablersquo ndash linkable kernel objects

The default is to build loadable kernel modules

--with-k-modules=K-MODULES-DIRSpecify the lsquoK-MODULES-DIRrsquo directory to which kernel modules will be installedThe default is based on the option lsquo--with-k-releasersquo lsquo--with-k-prefixrsquoand lsquo--with-k-rootdirrsquo The default is lsquoDESTDIRrsquolsquoK-MODULES-DIRrsquo which istypically lsquoDESTDIRlibmodulesPACKAGE_KRELEASErsquo This directory is nor-mally located by the lsquoconfigurersquo script and need only be provided for specialcross-build environments or when requested by a lsquoconfigurersquo script error mes-sage

--with-k-build=K-BUILD-DIRSpecify the lsquoK-BUILD-DIRrsquo base kernel build directory in which configured kernelsource resides The default is lsquoDESTDIRK-MODULES-DIRbuildrsquo This direc-tory is normally located by the lsquoconfigurersquo script and need only be providedfor special cross-build environments or when requested by a lsquoconfigurersquo scripterror message

--with-k-source=K-SOURCE-DIRSpecify the lsquoK-SOURCE-DIRrsquo base kernel build directory in which configuredkernel source resides The default is lsquoDESTDIRK-MODULES-DIRsourcersquo Thisdirectory is normally located by the lsquoconfigurersquo script and need only be pro-vided for special cross-build environments or when requested by a lsquoconfigurersquoscript error message

Chapter 6 Installation 73

--with-k-modver=K-MODVER-FILESpecify the lsquoK-MODVER-FILErsquo kernel module versions file The default is lsquoK-BUILD-DIRModulesymversrsquo This file is normally located by the lsquoconfigurersquoscript and need only be provided for special cross-build environments or whenrequested by a lsquoconfigurersquo script error message

--with-k-sysmap=K-SYSMAP-FILESpecify the lsquoK-SYSMAP-FILErsquo kernel system map file The default is lsquoK-BUILD-DIRSystemmaprsquo This file is normally located by the lsquoconfigurersquo script andneed only be provided for special cross-build environments or when requestedby a lsquoconfigurersquo script error message

--with-k-archdir=K-ARCHDIRSpecify the lsquoK-ARCHDIRrsquo kernel source architecture specific directory The de-fault is lsquoDESTDIRK-SOURCE-DIRarchrsquo This directory is normally located bythe lsquoconfigurersquo script and need only be provided for special cross-build envi-ronments or when requested by a lsquoconfigurersquo script error message

--with-k-machdir=K-MACHDIRSpecify the lsquoK-MACHDIRrsquo kernel source machine specific directory The defaultis lsquoDESTDIRK-SOURCE-DIRtarget_cpu rsquo This directory is normally locatedby the lsquoconfigurersquo script and need only be provided for special cross-buildenvironments or when requested by a lsquoconfigurersquo script error message

--with-k-config=K-CONFIGSpecify the lsquoK-CONFIGrsquo kernel configuration file The default is lsquoBOOTconfig-K-RELEASE rsquo This configuration file is normally located by the lsquoconfigurersquoscript and need only be provided for special cross-build environments or whenrequested by a lsquoconfigurersquo script error message

--with-k-optimize=HOW--without-k-optimize

Specify lsquoHOWrsquo optimization normal size speed or quick size compiles kernelmodules -Os speed compiles kernel modules -O3 and quick compiles kernelmodules -O0 The default is normal Use with care The most common useof this option is to specify lsquo--with-k-optimize=speed --disable-k-safersquo tocompile for maximum performance Nevertheless even these setting are ricingand the resulting kernel modules will only be about 5 faster

--with-lis[=LIS-DIR]--without-lis

Specify the lsquoLIS-DIRrsquo directory in which to find LiS headers Also specifiesthat the build is to be made against Linux STREAMS The default is lsquousrincludeLiSrsquo if it exists lsquonorsquo otherwise This directory is normally located bythe lsquoconfigurersquo script and need only be provided for special cross-build envi-ronments or when requested by a lsquoconfigurersquo script error message This optionhas no effect on release packages that do not use the STREAMS subsystem

74 OpenSS7 SS7 Stack

--with-lfs[=LFS-DIR]--without-lfs

Specify the lsquoLFS-DIRrsquo directory in which to find LfS headers Also specifiesthat the build is to be made against Linux Fast-STREAMS The default islsquousrincludestreamsrsquo if it exists lsquonorsquo otherwise This directory is normallylocated by the lsquoconfigurersquo script and need only be provided for special cross-build environments or when requested by a lsquoconfigurersquo script error messageThis option has no effect on release packages that do not use the STREAMSsubsystem

--with-strconf-master=STRCONF_CONFIGSpecify the lsquoSTRCONF_CONFIGrsquo file name to which the configuration master fileis written The default is lsquoConfigmasterrsquo This option has no effect on releasepackages that do not use the STREAMS subsystem and the strconf scriptsThis option should not be specified when configuring the master package as thesetting for all add-on packages will conflict

--with-base-major=STRCONF_MAJBASEStart numbering for major devices at lsquoSTRCONF_MAJBASErsquo The default is lsquo230rsquoThis option has no effect on release packages that do not use the STREAMSsubsystem and the strconf scripts This option should not be specified whenconfiguring the master package as the setting for all add-on packages will con-flict

6352 Environment Variables

Following are additional environment variables to lsquoconfigurersquo their meaning and use

GPG GPG signature command This is used for signing distributions by the main-tainer By default lsquoconfigurersquo will search for this tool

GNUPGUSERGPG user name This is used for signing distributions by the maintainer

GNUPGHOMEGPG home directory This is used for signing distributions by the maintainer

GPGPASSWDGPG password for signing This is used for signing distributions by the main-tainer This environment variable is not maintained by the lsquoconfigurersquo scriptand should only be used on an isolated system

SOELIM Roff source elimination command soelim(1) This is only necessary when theoption lsquo--with-cooked-manpagesrsquo has been specified and lsquoconfigurersquo cannotfind the proper soelim(1) command By default lsquoconfigurersquo will search forthis tool

REFER Roff references command refer(1) This is only necessary when the optionlsquo--with-cooked-manpagesrsquo has been specified and lsquoconfigurersquo cannot find theproper refer(1) command By default lsquoconfigurersquo will search for this tool

TBL Roff table command tbl(1) This is only necessary when the optionlsquo--with-cooked-manpagesrsquo has been specified and lsquoconfigurersquo cannot findthe proper tbl(1) command By default lsquoconfigurersquo will search for this tool

Chapter 6 Installation 75

PIC Roff picture command pic(1) This is only necessary when the optionlsquo--with-cooked-manpagesrsquo has been specified and lsquoconfigurersquo cannot findthe proper pic(1) command By default lsquoconfigurersquo will search for this tool

GZIP Default compression options provided to GZIP_CMD

GZIP CMDManpages (and kernel modules) compression commands gzip(1) This is onlynecessary when the option lsquo--without-compressed-manpagesrsquo has not beenspecified and lsquoconfigurersquo cannot find the proper gzip(1) command By de-fault lsquoconfigurersquo will search for this tool

BZIP2 Default compression options provided to BZIP2_CMD

BZIP2 CMDManpages compression commands bzip2(1) This is only necessary whenthe option lsquo--without-compressed-manpagesrsquo has not been specifiedand lsquoconfigurersquo cannot find the proper bzip2(1) command By defaultlsquoconfigurersquo will search for this tool

MAKEWHATISManpages apropros database rebuild command makewhatis(8) By defaultlsquoconfigurersquo will search for this tool By default lsquoconfigurersquo will search forthis tool

CHKCONFIGChkconfig command chkconfig(8) This was used for installation of initscripts All packages now come with init_install(8) and init_remove(8)scripts used to install and remove init scripts on both RPM and Debian sys-tems

RPM Rpm command rpm(1) This is only necessary for RPM builds By defaultlsquoconfigurersquo will search for this tool

RPMBUILDBuild RPM command rpmbuild(1) This is only necessary for RPM buildsBy default lsquoconfigurersquo will search for this tool rpm(1) will be used insteadof rpmbuild(1) only if rpmbuild(1) cannot be found

DPKG Dpkg comand dpkg(1) This command is used for building Debian packagesBy default lsquoconfigurersquo will search for this tool

DPKG SOURCEDpkg-source command dpkg-source(1) This command is used for buildingDebian dsc packages By default lsquoconfigurersquo will search for this tool

DPKG BUILDPACKAGEDpkg-buildpackage command dpkg-buildpackage(1) This command is usedfor building Debian deb packages By default lsquoconfigurersquo will search for thistool

DEB BUILD ARCHDebian build architecture This variable is used for building Debian packagesThe default is the autoconf build architecture

76 OpenSS7 SS7 Stack

DEB BUILD GNU CPUDebian build cpu This variable is used for building Debian packages Thedefault is the autoconf build cpu

DEB BUILD GNU SYSTEMDebian build os This variable is used for building Debian packages The defaultis the autoconf build os

DEB BUILD GNU TYPEDebian build alias This variable is used for building Debian packages Thedefault is the autoconf build alias

DEB HOST ARCHDebian host architecture This variable is used for building Debian packagesThe default is the autoconf host architecture

DEB HOST GNU CPUDebian host cpu This variable is used for building Debian packages Thedefault is the autoconf host cpu

DEB HOST GNU SYSTEMDebian host os This variable is used for building Debian packages The defaultis the autoconf host os

DEB HOST GNU TYPEDebian host alias This variable is used for building Debian packages Thedefault is the autoconf host alias

LDCONFIGConfigure loader command ldconfig(8) Command used to configure theloader when libraries are installed By default lsquoconfigurersquo will search for thistool

DESTDIR Cross build root directory Specifies the root directory for build and installation

DEPMODBuild kernel module dependencies command depmod(8) This is used dur-ing installation of kernel modules to a running kernel to rebuild the modulesdependency database By default lsquoconfigurersquo will search for this tool

MODPROBEProbe kernel module dependencies command modprobe(8) This is used duringinstallation of kernel modules to a running kernel to remove old modules Bydefault lsquoconfigurersquo will search for this tool

LSMOD List kernel modules command lsmod(8) This is used during installation ofkernel modules to a running kernel to detect old modules for removal Bydefault lsquoconfigurersquo will search for this tool

LSOF List open files command lsof(1) This is used during installation of kernelmodules to a running kernel to detect old modules for removal Processes own-ing the old kernel modules will be killed and the module removed If the processrestarts the new module will be demand loaded By default lsquoconfigurersquo willsearch for this tool

Chapter 6 Installation 77

GENKSYMSGenerate kernel symbols command genksyms(8) This is used for generatingmodule symbol versions during build By default lsquoconfigurersquo will search forthis tool

KGENKSYMSLinux 26 generate kernel symbols command genksyms(8) This is used forgenerating module symbol version during build By default lsquoconfigurersquo willsearch for this tool

OBJDUMPObject dumping command objdump(1) This is used for listing informationabout object files By default lsquoconfigurersquo will search for this tool

NM Object symbol listing command nm(1) This is used for listing informationabout object files By default lsquoconfigurersquo will search for this tool

MODPOST CACHECache file for modpost(1) The version of the modpostsh script that ships witheach package can cache information to a cache file to speed multiple builds Thisenvironment variable is used to specify a cache file

AUTOM4TEAutom4te command autom4te(1) This is the executable used by autotestfor pre- and post-installation checks By default lsquoconfigurersquo will search forthis tool

AUTOTESTAutotest macro build command autom4te(1) This is the executable used byautotest for pre- and post-installation checks By default lsquoconfigurersquo willsearch for this tool

6353 Build

To build from the tar ball See Section 643 [Building from the Tar Ball] page 78

64 Building

641 Building from the Source RPM

If you have downloaded the necessary source RPM (see Section 625 [Downloading theSource RPM] page 57) then the following instructions will rebuild the binary RPMs onyour system Once the binary RPMs are rebuilt you may install them as described above(see Section 651 [Installing the Binary RPM] page 79)The source RPM is rebuilt to binary RPMs as follows wget httpwwwopenss7orgrpmsSRPMSstrss7-09a8-1srcrpm rpmbuild --rebuild -vv strss7-09a8-1srcrpm

The rebuild process can also recognize a number of options that can be used to tweak theresulting binaries See Section 633 [Configuring the Source RPM] page 63 These optionsare provided on the rpm(1) command line For example

78 OpenSS7 SS7 Stack rpmbuild --rebuild -vv --target athlon-redhat-linux

--define _kversion 2420-287 --with lfs -- strss7-09a8-1srcrpm

will rebuild binary RPM for the lsquo2420-287rsquo kernel for the lsquoathlonrsquo architecture againstthe Linux Fast-STREAMS STREAMS package34

Installation

To install the resulting binary RPM See Section 651 [Installing the Binary RPM] page 79

642 Building from the Debian DSC

If you have downloaded the necessary Debian DSC (see Section 626 [Downloading theDebian DSC] page 57) then the following instructions will rebuild the binary DEBs onyour system Once the binary DEBs are rebuilt you may install them as described above(see Section 652 [Installing the Debian DEB] page 80)The Debian DSC is rebuilt to binary DEBs as follows wget httpwwwopenss7orgdebianstrss7_09a8-0dsc wget httpwwwopenss7orgdebianstrss7_09a8-0targz dpkg-buildpackage -v strss7_09a8-0dsc

The rebuild process can also recognize a number of options that can be used to tweak theresulting binaries See Section 634 [Configuring the Debian DSC] page 67 These optionsare provided in the environment variable BUILD DPKGOPTIONS and have the same formas the options to lsquoconfigurersquo See Section 635 [Configuring the Tar Ball] page 67 Forexample BUILD_DEBOPTIONS=rsquo

--with-lfs--with-k-release=2420-287--host=athlon-debian-linux-gnursquo

dpkg-buildpackage -v strss7_09a8-0dsc

will rebuild binary DEB for the lsquo2420-287rsquo kernel for the lsquoathlonrsquo architecture againstthe Linux Fast-STREAMS STREAMS package35

Installation

To install the resulting binary DEB See Section 652 [Installing the Debian DEB] page 80

643 Building from the Tar Ball

If you have downloaded the tar ball (see Section 627 [Downloading the Tar Ball] page 58)then the following instructions will rebuild the package on your system (Note that thebuild process does not required root privilege)

34 Note that the lsquo_kversionrsquo of lsquo2420-287rsquo is only an example35 Note that the lsquo_kversionrsquo of lsquo2420-287rsquo is only an example

Chapter 6 Installation 79

6431 Native Build

Following is an example of a native build against the running kernel wget httpwwwopenss7orgstrss7-09a8tarbz2 tar -xjvf strss7-09a8tarbz2 pushd strss7-09a8 configure make popd 6432 Cross-Build

Following is an example for a cross-build The kernel release version must always be specifiedfor a cross-build36 If you are cross-building specify the root for the build with environmentvariable DESTDIR The cross-compile host must also be specified if different from thebuild host Either the compiler and other tools must be in the usual places where GNUautoconf(1) can find them or they must be specified with declarations such as lsquoCC=usrlibppc-linuxgccrsquo on the lsquoconfigurersquo command line wget httpwwwopenss7orgstrss7-09a8tarbz2 tar -xjvf strss7-09a8tarbz2 pushd strss7-09a8 configure DESTDIR=someotherroot --with-k-release=2418 --host sparc-linux make popd 65 Installing

651 Installing the Binary RPM

If you have downloaded the necessary binary RPMs (see Section 623 [Downloading the Bi-nary RPM] page 51) or have rebuilt binary RPMs using the source RPM (see Section 641[Building from the Source RPM] page 77) then the following instructions will install theRPMs on your system For additional information on rpm(1) see rpm(8) pushd RPMSi686 rpm -ihv strss7--09a8-172i686rpm

You must have the correct binary RPMs downloaded or built for this to be successfulSome of the packages are relocatable and can have final installation directories altered withthe lsquo--relocatersquo option to rpm(1) see rpm(8) For example the following will relocatethe documentation and info directories

36 Because it is a cross-build the kernel version on the build machine is unlikely to be the kernel version ofthe target machine except by coincidence

80 OpenSS7 SS7 Stack pushd RPMSi686 rpm -ihv

--relocate rsquousrsharedoc=usrlocalsharedocrsquo --relocate rsquousrshareinfo=usrlocalshareinforsquo -- strss7-doc-09a8-172i686rpm

The previous example will install the lsquostrss7-docrsquo package by will relocate the documen-tation an info directory contents to the lsquousrlocalrsquo version

652 Installing the Debian DEB

If you have downloaded the necessary Debian DEBs (see Section 624 [Downloading the De-bian DEB] page 54) or have rebuild binary DEBs using the Debian DSC (see Section 642[Building from the Debian DSC] page 78) then the following instructions will install theDEBs on your system For additional information see dpkg(8) pushd debian dpkg -iv strss7-_09a8-0_deb

You must have the correct lsquodebrsquo files downloaded or build for this to be successful

653 Installing the Tar Ball

After the build process (see Section 643 [Building from the Tar Ball] page 78) installationonly requires execution of one of two automake(1) targets

lsquomake installrsquoThe lsquoinstallrsquo automake(1) target will install all the components of the pack-age Root privilege is required to successfully invoke this target

lsquomake install-striprsquoThe lsquoinstall-striprsquo automake(1) target will install all the components of thepackage but will strip unnecessary information out of the objects and compressmanual pages Root privilege is required to successfully invoke this target

66 Removing

661 Removing the Binary RPM

To remove an installed version of the binary RPMs (whether obtained from the OpenSS7binary RPM releases or whether created by the source RPM) execute the following com-mand rpm -evv lsquorpm -qa | grep rsquo^strss7-rsquolsquo

For more information see rpm(1)

662 Removing the Debian DEB

To remove and installed version of the Debian DEB (whether obtained from the OpenSS7binary DEB releases or whether created by the Debian DSC) execute the following com-mand

Chapter 6 Installation 81 dpkg -ev lsquodpkg -l | grep rsquo^strss7-rsquolsquo

For more information see dpkg(8)

663 Removing the Source RPM

To remove all the installed binary RPM build from the source RPM see Section 661[Removing the Binary RPM] page 80 Then simply remove the binary RPM package filesand source RPM file A command such as find -name rsquostrss7-rpmrsquo -type f -print0 | xargs --null rm -f

should remove all lsquostrss7rsquo RPMs from your system

664 Removing the Debian DSC

To remove all the installed binary DEB build from the Debian DSC see Section 662[Removing the Debian DEB] page 80 Then simply remove the binary DEB package filesand Debian DSC file A command such as find ( -name rsquostrss7-debrsquo

-o -name rsquostrss7-dscrsquo -o -name rsquostrss7-tar ) -type f -print0 | xargs --null rm -f

should remove all lsquostrss7rsquo DEBs DSCs and TARs from your system

665 Removing the Tar Ball

To remove a version installed from tar ball change to the build directory where the packagewas built and use the lsquouninstallrsquo automake(1) target as follows cd usrsrcstrss7 make uninstall cd rm -fr strss7-09a8 rm -f strss7-09a8targz rm -f strss7-09a8tarbz2

If you have inadvertently removed the build directory and therefore no longer have aconfigured directory from which to execute lsquomake uninstallrsquo then perform all of the stepsfor configuration and installation (see Section 653 [Installing the Tar Ball] page 80) exceptthe final installation and then perform the steps above

67 Loading

671 Normal Module Loading

When OpenSS7 SS7 Stack installs modules and drivers belonging to release packages arenormally configured for demand loading The lsquoinstallrsquo and lsquoinstall-striprsquo automake(1)

82 OpenSS7 SS7 Stack

targets will make the necessary changes to the lsquoetcmodulesconfrsquo file and place the mod-ules in an appropriate place in lsquolibmodules2420-287strss7rsquo The lsquomake installrsquoprocess should have copied the kernel module files lsquostreams-orsquo to the directory lsquolibmodules2420-287strss7rsquo This means that to load any of these modules you cansimply execute for example lsquomodprobe stream-somedriver rsquo37

6711 Linux Fast-STREAMS Module Loading

The lsquostrss7rsquo demand load system supports both the old kerneld and the new kmod mech-anisms for demand loading kernel modules

The convention for lsquostrss7rsquo kernel loadable object files is

bull Their name start with streams-

bull They are placed in lsquolibmodules2420-287streamsrsquo where lsquo2420-287rsquo isan example kernel version

If your kernel has been built using the lsquokerneldrsquo daemon then lsquostrss7rsquo kernel moduleswill automatically load as soon as the STREAMS module is pushed or the driver is openedThe lsquomake installrsquo process makes the necessary changes to the lsquoetcmodulesconfrsquo fileAfter the install you will see lines like the following added to your lsquoetcmodulesconfrsquofile prune modulesstrss7if -f libmoduleslsquouname -rlsquomodulesstrss7include libmoduleslsquouname -rlsquomodulesstrss7endif

which will provide for demand loading of the modules if they have been built and installedfor the running kernel The lsquolibmoduleslsquouname -rlsquomodulesstrss7rsquo file looks likethis alias char-major-245 streams-some_driver

alias char-major-246 streams-other_driver Note that STREAMS modules are not listed in this file but will be loaded by name usinglsquokerneldrsquo if available

Linux Fast-STREAMS has a wider range of kernel module loading mechanisms than isprovided by the deprecated LiS For mechanisms used for kernel module loading underLinux Fast-STREAMS See Section ldquoToprdquo in Linux Fast-STREAMS Reference Manual

6712 Linux STREAMS Module Loading

LiS is deprecated and this section has been deleted

68 Maintenance

37 Note that the lsquo_kversionrsquo of lsquo2420-287rsquo is only an example

Chapter 6 Installation 83

681 Makefile Targets

automake(1) has many targets not all of which are obvious to the casual user In additionOpenSS7 automake(1) files have additional rules added to make maintaining and releasinga package somewhat easier This list of targets provides some help with what targets can beinvoked what they do and what they hope to achieve The available targets are as follows

6811 User Targets

The following are normal targets intended to be invoked by installers of the package Theyare concerned with compiling checking the compile installing checking the installationand removing the package

lsquo[all]rsquo This is also the default target It compiles the package and all release packagesselected by lsquoconfigurersquo This is performed after configuring the source withlsquoconfigurersquo A lsquoMakefilersquo stub is provided so that if the package has not hadautoreconf(1) run (such as when checked out from CVS the package willattempt to run lsquoautoreconf -fivrsquoAll OpenSS7 Project packages are configured without maintainer mode andwithout dependency tracking by default This speeds compilation of the packagefor one-time builds This also means that if you are developing using the sourcepackage (edit-compile-test cycle) changes made to source files will not causethe automatic rebuilding due to dependencies There are two ways to enabledependency tracking specify lsquo--enable-maintainer-modersquo to lsquoconfigurersquo orspecify lsquo--enable-dependency-trackingrsquo to lsquoconfigurersquo I use the formerduring my edit-compile-test cycleThis is a standard GNU automake(1) makefile target This target does notrequire root privilege

lsquocheckrsquo All OpenSS7 Project release packages provide check scripts for the check targetThis step is performed after compiling the package and will run all of the lsquocheckrsquoprograms against the compiled binaries Which checks are performed dependson whether lsquo--enable-maintainer-modersquo was specified to lsquoconfigurersquo If inmaintainer mode checks that assist with the release of the package will berun (such as checking that all manual pages load properly and that they haverequired sections) We recommend running the check stage before installingbecause it catches problems that might keep the installed package from func-tioning properlyAnother way to enable the greater set of checks without invoking maintainermode is to specify lsquo--enable-checksrsquo to lsquoconfigurersquo For more informationsee Section 711 [Pre-installation Checks] page 93This is a standard GNU automake(1) makefile target although the functionsperformed are customized for the OpenSS7 Project This target does not requireroot privilege

lsquoinstallrsquolsquoinstall-striprsquo

The lsquoinstallrsquo target installs the package by installing each release packageThis target also performs some actions similar to the pre- and post-install scripts

84 OpenSS7 SS7 Stack

used by packaging tools such as rpm(1) or dpkg(1) The lsquoinstall-striprsquotarget strips unnecessary symbols from executables and kernel modules beforeinstallingThis is a standard GNU automake(1) makefile target This target requiresroot privilege

lsquoinstallcheckrsquoAll OpenSS7 Project packages provide test scripts for the lsquoinstallcheckrsquo tar-get Test scripts are created and run using autotest (part of the autoconf(1)package) Which test suites are run and how extensive they are depends onwhether lsquo--enable-maintainer-modersquo was specified to lsquoconfigurersquo When inmaintainer mode all test suites will be run When not in maintainer modeonly a few post-install checks will be performed but the test suites themselveswill be installed in lsquousrlibexecstrss7rsquo38 for later useThis is a standard GNU automake(1) makefile target This target might re-quire root privilege Tests requiring root privilege will be skipped when run asa regular user Tests requiring regular account privileges will be skipped whenrun as root

lsquoretestrsquo To complement the lsquoinstallcheckrsquo target above all OpenSS7 Project pack-ages provide the lsquoretestrsquo target as a means to rerun failed conformance testsuite test cases The lsquoretestrsquo target is provided because some test cases in thetest suites have delicate timing considerations that allow them to fail sporadi-cally Invoking this target will retest the failed cases until no cases that are notexpected failures remainThis is an OpenSS7 Project specific makefile target As with lsquoinstallcheckrsquothis target might require root privilege Tests requiring root privilege will beskipped when run as a regular user Tests requiring regular account privilegeswill be skipped when run as root

lsquouninstallrsquoThis target will reverse the steps taken to install the package This target alsoperforms pre- and post- erase scripts used by packaging tools such as rpm ordpkg You need to have a configured build directory from which to execute thistarget however you do not need to have compiled any of the files in that builddirectory39

The lsquouninstallrsquo target unfortunately removes add-on packages in the sameorder in which they were installed This is not good for the OpenSS7 MasterPackage where the lsquoremoversquo target should be used insteadThis is a standard GNU automake(1) makefile target This target requiresroot privilege

lsquoremoversquo This target is like lsquouninstallrsquo with the exception that it removes add-on pack-ages in the reverse order that installation was performed40

38 lsquousrlibexecstrss7rsquo is just an example the actual location is lsquo$libexecdir$PACKAGErsquo which variesfrom distribution to distribution (as some distributions such as Mandriva do not have a libexec directory)

39 Therefore it is possible to download the package configure it and then uninstall it This is handy if youdo not have the sources used to build and install the package immediately available

40 This is useful from the OpenSS7 Master Package

Chapter 6 Installation 85

This is an OpenSS7 Project specific makefile target This target requires rootprivilege

6812 Maintainer Targets

The following targets are targets intended for use by maintainers of the package or those re-sponsible for release and packaging of a derivative work of the package Some of these targetsare only effective when maintainer mode has been invoked (lsquo--enable-maintainer-modersquospecified to lsquoconfigurersquo)

lsquodistrsquo Creates a distribution package (tarball) in the top level build direc-tory OpenSS7 Project packages distribute two archives a lsquogzip tarrsquoarchive and a lsquobzip tarrsquo archive These archives will have the namelsquostrss7-09a8targzrsquo and lsquostrss7-09a8tarbz2rsquo

This is a standard GNU automake(1) makefile target This target does notrequire root privilege

lsquodistcheckrsquoThis target is intended for use when releasing the package It creates the tar(1)archives above and then unpacks the tarball in a source directory configures in aseparate build directory compiles the package installs the package in a separateinstall directory tests the install package to ensure that some components workand finally uses the unpacked source tree to build another tarball If you haveadded or removed files from the package this is a good way to ensure thateverything is still stable for release

This is a standard GNU automake(1) makefile target This target does notrequire root privilege

6813 Clean Targets

lsquomostlycleanrsquoCleans out most of the files from the compile stage This target is helpful if youhave not enabled dependency tracking and need to recompile with changes

This is a standard GNU automake(1) makefile target This target does notrequire root privilege

lsquocleanrsquo Cleans all the files from the build directory generated during the lsquomake [all]rsquophase It does not however remove files from the directory left there from thelsquoconfigurersquo run Use the lsquodistcleanrsquo target to remove those too

This is a standard GNU automake(1) makefile target This target might re-quire root privilege if the lsquoinstallcheckrsquo target or the testsuite was invokedwith root privilege (leaving files belonging to root)

lsquodistcleanrsquoThis target cleans out the directories left behind by lsquodistcheckrsquo and removesall the lsquoconfigurersquo and generated files from the build directory This willeffectively remove all the files in the build directory with the except of filesthat belong to you or some other process

86 OpenSS7 SS7 Stack

This is a standard GNU automake(1) makefile target This target might re-quire root privilege if the lsquoinstallcheckrsquo target or the testsuite was invokedwith root privilege (leaving files belonging to root)

lsquomaintainer-cleanrsquoThis target not only removes files from the build directory it removes generatedfiles from the source directory as well Care should be taken when invoking thistarget because it removes files generated by the maintainer and distributed withthe archive that might require special tools to regenerate These special toolsmight only be available to the maintainer41 It also means that you probablyneed a full blown Linux system to rebuild the package For more informationsee Section 628 [Downloading from CVS] page 59This is a standard GNU automake(1) makefile target This target might re-quire root privilege if the lsquoinstallcheckrsquo target or the testsuite was invokedwith root privilege (leaving files belonging to root)

lsquocheck-cleanrsquoThis target removes log files left behind by the lsquocheckrsquo target By default thecheck scripts append to log files in the top level build directory This targetcan be used to clean out those log files before the next runThis is an OpenSS7 Project specific makefile target This target does not requireroot privilege

6814 Manual Page Targets

The following targets are used to build install and uninstall just the manual pages from thedistribution These targets are good for creating a distribution of just the manual pagesWhen building atop multiple packages these targets recurse down through each package

lsquomansrsquo Build all of the manual pages This involves performing parametersubstitution on manual pages and optionally cooking the manual pages iflsquo--with-cooked-manpagesrsquo was requested during configuration

lsquoinstall-mansrsquoInstalls the manual pages under DESTDIR Specify DESTDIR to place themanual pages wherever you see fit If DESTDIR is not specified on the com-mand line the manual pages will be installed in the normal installation direc-tory

lsquouninstall-mansrsquoUninstalls the manual pages from DESTDIR Specify DESTDIR to indicatewhere to remove the manual pages from If DESTDIR is not specified on thecommand line the manual pages will be removed from the normal installationdirectory

6815 Release Targets

The following are targets used to generate complete releases into the package distributiondirectory These are good for unattended and NFS builds which is what I use them for

41 Theoretically this is true however the OpenSS7 Project does not use any maintainer programs that are notgenerally available (ie open source)

Chapter 6 Installation 87

Also when building from atop multiple packages these targets also recurse down througheach package

lsquoreleasersquo Build all of the things necessary to generate a release On an rpm(1) systemthis is the distribution archives the source rpm and the architecture dependentand architecture independent binary rpms All items are placed in the packagedistribution directory that can be specified with the lsquo--with-pkg-distdir=DIRrsquooption to lsquoconfigurersquo

This is an OpenSS7 Project specific makefile target This target does not requireroot privilege

lsquoforced-releasersquoThe lsquoreleasersquo target will not regenerate any files that already exist in thepackage distribution directory This forced target will

This is an OpenSS7 Project specific makefile target This target does not requireroot privilege

lsquorelease-signrsquoYou will be prompted for a password unless to specify it to make with theGNUPGPASS variable For unattended or non-interactive builds with signingyou can do that as lsquomake GNUPGPASS=mypasswd release-signrsquo

This is an OpenSS7 Project specific makefile target This target does not requireroot privilege

lsquoforced-release-signrsquoThe lsquorelease-signrsquo target will not regenerate any files that already exist inthe package distribution directory This forced target will

This is an OpenSS7 Project specific makefile target This target does not requireroot privilege

lsquorelease-cleanrsquoThis target will remove all distribution files for the current package from thepackage distribution directory

This is an OpenSS7 Project specific makefile target This target does not requireroot privilege

6816 Logging Targets

For convenience to log the output of a number of targets to a file log targets are definedThe log file itself is used as the target to make but make invokes the target minus a lsquologrsquosuffix So for example to log the results of target lsquofoorsquo invoke the target lsquofoologrsquo Theonly target that this does not apply to is lsquocompilelogrsquo When you invoke the targetlsquocompilelogrsquo a simple automake(1) is invoked and logged to the file lsquocompilelogrsquo Thelsquofoologrsquo rule applies to all other targets This does not work for all targets just a selectedfew42 Following are the logging targets

42 Note that because logging targets invoke a pipe automake(1) does not return the correct return status(always returns success if the tee(1) operation is successful) Therefore these targets should not be invokedby scripts that need to use the return value from automake(1)

88 OpenSS7 SS7 Stack

Common Logging Targets

Common logging targets correspond to normal user automake(1) makefile targets as follows

lsquocompilelogrsquoThis is an OpenSS7 Project specific makefile target but it invokes the standardGNU automake(1) makefile target lsquo[all]rsquo

lsquochecklogrsquoThis is an OpenSS7 Project specific makefile target but it invokes the standardGNU automake(1) makefile target lsquocheckrsquo

lsquoinstalllogrsquoThis is an OpenSS7 Project specific makefile target but it invokes the standardGNU automake(1) makefile target lsquoinstallrsquo

lsquoinstallchecklogrsquoThis is an OpenSS7 Project specific makefile target but it invokes the standardGNU automake(1) makefile target lsquoinstallcheckrsquo

lsquouninstalllogrsquoThis is an OpenSS7 Project specific makefile target but it invokes the standardGNU automake(1) makefile target lsquouninstallrsquo

lsquoremovelogrsquoThis is an OpenSS7 Project specific makefile target that invokes the OpenSS7Project lsquoremoversquo target

Maintainer Logging Targets

Maintainer logging targets correspond to maintainer mode automake(1) makefile targetsas follows

lsquodistlogrsquoThis is an OpenSS7 Project specific makefile target but it invokes the standardGNU automake(1) makefile target lsquodistrsquo

lsquodistchecklogrsquoThis is an OpenSS7 Project specific makefile target but it invokes the standardGNU automake(1) makefile target lsquodistcheckrsquo

lsquosrpmlogrsquoThis is an OpenSS7 Project specific makefile target that invokes the OpenSS7Project lsquosrpmrsquo target

lsquorebuildlogrsquoThis is an OpenSS7 Project specific makefile target that invokes the OpenSS7Project lsquorebuildrsquo target

lsquoresignlogrsquoThis is an OpenSS7 Project specific makefile target that invokes the OpenSS7Project lsquoresignrsquo target

lsquoreleaselogrsquoThis is an OpenSS7 Project specific makefile target that invokes the OpenSS7Project lsquoreleasersquo target

Chapter 6 Installation 89

lsquorelease-signlogrsquoThis is an OpenSS7 Project specific makefile target that invokes the OpenSS7Project lsquorelease-signrsquo target

If you want to add one simply add it to LOGGING TARGETS in lsquoMakefileamrsquo

6817 Problem Report Targets

To ease problem report generation all logging targets will automatically generate a problemreport suitable for mailing in the file lsquotargetprrsquo for target lsquotargetlogrsquo This problemreport file is in the form of an email and can be sent using the included send-pr script orby invoking the lsquosend-prrsquo makefile targetThere are two additional problem report targets

lsquoprrsquo The lsquoprrsquo target is for independently generating a problem report outside of thebuild or installation process The target will automatically generate a problemreport skeleton suitable for editing and mailing in the file lsquoproblemprrsquo Thisproblem report file is in the form of an email and can be edited and sent directlyor sent using the included send-pr script or by invoking the lsquosend-prrsquo targetThis is an OpenSS7 Project specific makefile target This target does not requireroot privilege

lsquosend-prrsquo The lsquosend-prrsquo target is for finalizing and mailing a problem report generatedeither inside or outside the build and installation process The target will au-tomatically finalize and mail the lsquoproblemprrsquo problem report if it has changedsince the last time that lsquosend-prrsquo was invokedThis is an OpenSS7 Project specific makefile target This target does not requireroot privilege (unless the problem report file was generated as root)

6818 Release Archive Targets

The following targets are used to generate and clean distribution archive and signature filesWhereas the lsquodistrsquo target affects archives in the top build directory the lsquorelease-archiversquotargets affects archives in the package distribution directory (either the top build directoryor that specified with lsquo--with-pkg-distdir=DIRrsquo to lsquoconfigurersquo)You can change the directory to which packages are distributed by using thelsquo--with-pkg-distdir=DIRrsquo option to lsquoconfigurersquo The default directory is the top builddirectory

lsquorelease-archivesrsquoThis target creates the distribution archive files if they have not already beencreated This not only runs the lsquodistrsquo target but also copies the files to thedistribution directory which by default is the top build directoryThe files generated are namedlsquostrss7-09a8targzrsquo and lsquostrss7-09a8tarbz2rsquoYou can change this distribution directory with the lsquo--with-pkg-distdirrsquo op-tion to lsquoconfigurersquo See lsquoconfigure --helprsquo for more details on optionsThis is an OpenSS7 Project specific makefile target This target does not requireroot privilege

90 OpenSS7 SS7 Stack

lsquorelease-sign-archivesrsquoThis target is like lsquorelease-archivesrsquo except that it also signs the archivesusing a GPG detached signature You will be prompted for a password unlessyou pass the GNUPGPASS variable to make For automated or unattendedbuilds pass the GNUPGPASS variable like solsquomake GNUPGPASS=mypasswd release-sign-archivesrsquoSignature files will be namedlsquostrss7-09a8targzascrsquo and lsquostrss7-09a8tarbz2ascrsquoThese files will be moved to the package distribution directory with the plaintext archivesThis is an OpenSS7 Project specific makefile target This target does not requireroot privilege

lsquorelease-clean-archivesrsquoThis target will clean the release archives and signature files from the packagedistribution directoryThis is an OpenSS7 Project specific makefile target This target does not requireroot privilege

6819 RPM Build Targets

On rpm(1) systems or systems sporting rpm packaging tools the following targets are usedto generate rpm(1) release packages The epoch and release number can be controlled by thecontents of the lsquorpmepochrsquo and lsquorpmreleasersquo files or with the lsquo--with-rpm-epoch=EPOCHrsquoand lsquo--with-rpm-release=RELEASErsquo options to lsquoconfigurersquo See lsquoconfigure --helprsquo formore information on options We always use release number lsquo1rsquo You can use releasenumbers above lsquo1rsquo

lsquosrpmrsquo This target generates the source rpm for the package (without signing the sourcerpm) The source rpm will be named lsquostrss7-09a8-1srpmrsquoThis is an OpenSS7 Project specific makefile target This target does not requireroot privilege

lsquorpmsrsquo This target is responsible for generating all of the package binary rpms for thearchitecture The binary rpms will be namedlsquostrss7--09a8-1rpmrsquowhere the stars indicate the subpackage and the architecture Both the archi-tecture specific subpackages (binary objects) and the architecture independent(lsquonoarchrsquo) subpackages will be built unless the the former was disabled withthe option lsquo--disable-archrsquo or the later with the option lsquo--disable-indeprsquopassed to lsquoconfigurersquoThis is an OpenSS7 Project specific makefile target This target does not requireroot privilege

lsquosignrsquolsquosrpm-signrsquo

These two targets are the same When invoked they will add a signature tothe source rpm file provided that the file does not already have a signature

Chapter 6 Installation 91

You will be prompted for a password if a signature is required Automated orunattended builds can be achieved by using the emake expect script includedin lsquo$srcdirscriptsemakersquoThis is an OpenSS7 Project specific makefile target This target does not requireroot privilege

lsquorebuildrsquo This target accepts searches out a list of kernel names from thelsquo$DESTDIRlibmodulesrsquo directory and builds rpms for those kernels andfor each of a set of architectures given in the AM RPMTARGETS variable tomake This is convenience target for building a group of rpms on a given buildmachineThis is an OpenSS7 Project specific makefile target This target does not requireroot privilege

lsquoresignrsquo This target will search out and sign with a GPG signature the source rpm andall of the binary rpms for this package that can be found in the package distri-bution directory This target will prompt for a GPG password Automated orunattended builds can be achieved with the emake expect script located herelsquo$srcdirscriptsemakersquoThis is an OpenSS7 Project specific makefile target This target does not requireroot privilege

68110 Debian Build Targets

On Debian systems or systems sporting Debian packaging tools the following targets areused to generate Debian release packages The release number can be controlled by thecontents of the lsquodebreleasersquo file or with the lsquo--with-debrelease=RELEASENUMBERrsquo optionto lsquoconfigurersquo See lsquoconfigure --helprsquo for more information on options

lsquodscrsquo This target will build the Debian source change package (lsquodscrsquo file) Weuse release number lsquo0rsquo so that the entire tarball is included in the lsquodscrsquo fileYou can use release number lsquo1rsquo for the same purposes Release numbersabove lsquo1rsquo will not include the entire tarball The lsquodscrsquo file will be namedlsquostrss7_09a8-0dscrsquoThis is an OpenSS7 Project specific makefile target This target does not requireroot privilege

lsquosigsrsquo This target signs the lsquodebrsquo files You will be prompted for a password unlessto specify it to make with the GNUPGPASS variableThis is an OpenSS7 Project specific makefile target This target does not requireroot privilege

lsquodebsrsquo This target will build the Debian binary package (lsquodebrsquo file) from thelsquodscrsquo created above (This target will also create the lsquodscrsquo if it hasnot been created already) The subpackage lsquodebrsquo files will be namedlsquostrss7-_09a8-0_debrsquo where the stars indicate the subpackage and thearchitectureThis is an OpenSS7 Project specific makefile target This target does not requireroot privilege

92 OpenSS7 SS7 Stack

lsquocsigrsquo This target signs the lsquodscrsquo file You will be prompted for a password unlessto specify it to make with the GNUPGPASS variableThis is an OpenSS7 Project specific makefile target This target does not requireroot privilege

68111 Documentation Targets

On systems that have doxygen(1) documentation tool the following targets are used togenerate doxygen html documentation

lsquodoxyrsquo This target generates doxygen(1) documetnation from suitably marked sourcesFile containing the necessary documentation marks are discovered automat-ically by configure Doxygen documentation can be generated bus is notdistributed Documentation is cerated in the subdirectory lsquodochtmlrsquo

Chapter 7 Troubleshooting 93

7 Troubleshooting

71 Test Suites

711 Pre-installation Checks

Most OpenSS7 packages including the OpenSS7 SS7 Stack package ship withpre-installation checks integral to the build system Pre-installation checks include checkscripts that are shipped in the lsquoscriptsrsquo subdirectory as well as specialized make targetsthat perform the checks

When building and installing the package from RPM or DEB source packages (seeSection 641 [Building from the Source RPM] page 77 and Section 642 [Building fromthe Debian DSC] page 78) a fundamental set of post-compile pre-installation checksare performed prior to building binary packages This is performed automatically anddoes not require any special actions on the part of the user creating binary packages fromsource packages

When building and installing the package from tarball (see Section 643 [Building fromthe Tar Ball] page 78 and Section 653 [Installing the Tar Ball] page 80) however pre-installation checks are only performed if specifically invoked by the builder of the packagePre-installation checks are invoked after building the package and before installing thepackage Pre-installation checks are performed by invoking the lsquocheckrsquo or lsquochecklogrsquotarget to make when building the package as shown in Example 71 wget httpwwwopenss7orgstrss7-09a8tarbz2 tar -xjvf strss7-09a8tarbz2 pushd strss7-09a8 configure make make check lt------- invoke pre-installation checks popd

Example 71 Invoking Pre-Installation Checks Pre-installation checks fall into two categories System Checks and Maintenance Checks

7111 Pre-Installation System Checks

System Checks are post-compilation checks that can be performed before installing thepackage that check to ensure that the compiled objects function and will be successfully in-stalled When the lsquo--enable-maintainer-modersquo option has not been passed to configureonly System Checks will be performed

For example the steps shown in Example 72 will perform System checks

94 OpenSS7 SS7 Stack wget httpwwwopenss7orgstrss7-09a8tarbz2 tar -xjvf strss7-09a8tarbz2 pushd strss7-09a8 configure make make check lt------ invokes System pre-installation checks popd

Example 72 Invoking System Checks 7112 Pre-Installation Maintenance Checks

Maintenance Checks include all System Checks but also checks to ensure that thekernel modules applications programs header files development tools test programsdocumentation and manual pages conform to OpenSS7 standards When thelsquo--enable-maintainer-modersquo option has been passed to configure Maintenance Checkswill be performed

For example the steps shown in Example 73 will perform Maintenance checks wget httpwwwopenss7orgstrss7-09a8tarbz2 tar -xjvf strss7-09a8tarbz2 pushd strss7-09a8 configure --enable-maintainer-mode make make check lt------ invokes Maintenance pre-installation checks popd

Example 73 Invoking Maintenance Checks 7113 Specific Pre-Installation Checks

A number of check scripts are provided in the lsquoscriptsrsquo subdirectory of the distributionthat perform both System and Maintenance checks These are as follows

check_commandsThis check performs both System and Maintenance checksWhen performing System tests the following tests are performedUnless cross-compiling or unless a program is included in AM_INSTALLCHECK_STD_OPTIONS_EXEMPT every program in bin_PROGRAMS sbin_PROGRAMS andlibexec_PROGRAMS is tested to ensure that the lsquo--helprsquo lsquo--versionrsquo andlsquo--copyingrsquo options are accepted When cross-compiling is is not possible toexecute cross-compiled binaries and these checks are skipped in that caseScript executables on the other hand can be executed on the build host so un-less listed in AM_INSTALLCHECK_STD_OPTIONS_EXEMPT every program in dist_bit_SCRIPTS dist_sbin_SCRIPTS and pkglibexec_SCRIPTS are tested to en-sure that the lsquo--helprsquo lsquo--versionrsquo and lsquo--copyingrsquo options are acceptedWhen performing Maintenance tests check_commands also checks to ensurethat a manual page exists in section 1 for every executable binary or script

Chapter 7 Troubleshooting 95

that will be installed from bin_PROGRAMS and dist_bin_SCRIPTS It alsochecks to ensure that a manual page exists in section 8 for every executable bi-nary or script that will be installed from sbin_PROGRAMS dist_sbin_SCRIPTSlibexec_PROGRAMS and pkglibexec_SCRIPTS

check_declsThis check only performs Maintenance checksIt collects the results from the check_libs check_modules and check_headers check scripts and tests to ensure every declaration of a functionprototype or external variable contained in installed header files has acorresponding exported symbol from either a to be installed shared objectlibrary or a to be installed kernel module Declarations are exemptedfrom this requirement if their identifiers have been explicitly added to theEXPOSED_SYMBOL variable If WARN_EXCESS is set to lsquoyesrsquo then the checkscript will only warn when excess declarations exist (without a correspondingexported symbol) otherwise the check script will generate an error and thecheck will fail

check_headersThis check only performs Maintenance checksWhen performing Maintenance tests it identifies all of the declarations includedin to be installed header files It then checks to ensure that a manual pageexists in sections 2 3 7 or 9 as appropriate for the type of declaration Italso checks to see if a manual page source file exists in the source directoryfor a declaration that has not been included in the distribution Function orprototype declarations that do not have a manual page in sections 2 3 or9 will cause the check to fail Other declarations (lsquovariablersquo lsquoexternvarrsquolsquomacrorsquo lsquoenumeratersquo lsquoenumrsquo lsquostructrsquo lsquounionrsquo lsquotypedefrsquo lsquomemberrsquo etc) willonly warn if a manual page does not exist but will not fail the check

check_libsThis check only performs Maintenance checksWhen performing Maintenance tests it checks that each exported symbol ineach to be installed shared object library has a manual page in section 3 It alsochecks that each exported symbol has a lsquofunctionrsquo lsquoprototypersquo or lsquoexternvarrsquodeclaration in the to be installed header files A missing declaration or manualpage will cause this check to fail

check_mansThis check only performs Maintenance checksWhen performing Maintenance tests it checks that to be install manual pagescan be formatted for display without any errors or warnings from the buildhost man program It also checks that required headings exist for manual pagesaccording to the section in which the manual page will be installed It warnsif recommended headings are not included in the manual pages Because someRPM distributions have manual pages that might conflict with the packagemanual pages this check script also checks for conflicts with installed manualpages on the build host This check script also checks to ensure that all to be

96 OpenSS7 SS7 Stack

installed manual pages are used in some fashion that is they have a declarationor exported symbol or are the name of a kernel module or STREAMS moduleor driver possibly capitalizedNote that checking for conflicts with the build host should probably be includedin the System checks (because System checks are performed before the sourceRPM install scriptlet)

check_modulesThis check performs both System and Maintenance checksWhen performing System tests it checks each to be installed kernel moduleto ensure that all undefined symbols can be resolved to either the kernel oranother module It also checks whether an exported or externally declaredsymbol conflicts with an exported or externally declared symbol present in thekernel or another module1

When performing Maintenance tests this check script tests that each to beinstalled kernel module has a manual page in section 9 and that each exportedsymbol that does not begin with an underscore and that belongs to an exportedfunction or exported variable has a manual page in section 9 It also checks toensure that each exported symbol that does not begin with an underscore andthat belongs to an exported function or exported variable has a lsquofunctionrsquolsquoprototypersquo or lsquoexternvarrsquo declaration in the to be installed header files

check_streamsThis check performs only Maintenance checksWhen performing Maintenance tests it checks that for each configuredSTREAMS module or driver or device node that a manual page exists insection 4 or section 7 as appropriate

The output of the pre-installation tests are fairly self explanatory Each check script savessome output to lsquonamelogrsquo where name is the name of the check script as listed above Asummary of the results of the test are display to standard output and can also be capturedto the lsquochecklogrsquo file if the lsquochecklogrsquo target is used instead of the lsquocheckrsquo target tomakeBecause the check scripts proliferate lsquonamelogrsquo files throughout the build directory a lsquomakecheck-cleanrsquo make target has be provided to clean them out lsquomake check-cleanrsquo shouldbe run before each successive run of lsquomake checkrsquo

712 Post-installation Checks

Most OpenSS7 packages ship with a compatibility and conformance test suite built us-ing the lsquoautotestrsquo capabilities of lsquoautoconfrsquo These test suites act as a wrapper for thecompatibility and conformance test programs that are shipped with the packageUnlike the pre-installation checks the post-installation checks are always run completeThe only check that post-installation test scripts perform is to test whether they havebeen invoked with root privileges or not When invoked as root or as a plain user sometests might be skipped that require root privileges or that require plain user privileges tocomplete successfully

1 This particular check has caught some name space pollution that has occurred in the 2611 kernel

Chapter 7 Troubleshooting 97

7121 Running Test Suites

There are several ways of invoking the conformance test suites

1 The test suites can be run after installation of the package by invoking the lsquomakeinstallcheckrsquo or lsquomake installchecklogrsquo target Some packages require that rootprivileges be acquired before invoking the package

2 The test suites can be run from the distribution subdirectory after installation of thepackage by invoking the testsuite shell script directly

3 The test suites can be run standalone from the lsquolibexecrsquo (lsquousrlibexecrsquo) installationdirectory by invoking the testsuite shell script directly

Typical steps for invoking the test suites directly from make are shown in Example 74 wget httpwwwopenss7orgstrss7-09a8tarbz2 tar -xjvf strss7-09a8tarbz2 pushd strss7-09a8 configure make make check lt------ invokes System pre-installation checks make install sudo make installcheck lt------- invokes post-installation tests popd

Example 74 Invoking System Checks When performing post-installation checks for the purposes of generating a problem re-port the checks should always be performed from the build directory either with lsquomakeinstallcheckrsquo or by invoking testsuite directly from the lsquotestsrsquo subdirectory of thebuild directory This ensures that all of the information known to configure and pertinentto the configuration of the system for which a test case failed will be collected in the re-sulting lsquotestsuitelogrsquo file deposited upon test suite failure in the lsquotestsrsquo directory Thislsquotestsuitelogrsquo file can then be attached as part of the problem report and provides richdetails to maintainers of the package See also See Section 72 [Problem Reports] page 97below

Typical steps for invoking and installed testsuite standalone are shown in Example 75 [sudo] usrlibexecstrss7testsuite

Example 75 Invoking testsuite Directly When invoked directly testsuite will generate a lsquotestsuitelogrsquo file in the current di-rectory and a lsquotestsuitedirrsquo directory of failed tests cases and debugging scripts Forgenerating a problem report for failed test cases see Section 724 [Stand Alone ProblemReports] page 100

72 Problem Reports

98 OpenSS7 SS7 Stack

721 Problem Report Guidelines

Problem reports in the following categories should include a log file as indicated in the tablebelow

lsquoconfigurersquoA problem with the configuration process occurs that causes the lsquoconfigurersquocommand to fail The problem report must include the lsquoconfiglogrsquo file thatwas generated by configure

lsquomake compilelogrsquoA problem with the build process occurs that causes the lsquomakersquo commandto fail Perform lsquomake cleanrsquo and then lsquomake compilelogrsquo and attach thelsquoconfiglogrsquo and lsquocompilelogrsquo files to the problem report

lsquomake checklogrsquoA problem occurs with the lsquomake checkrsquo target that causes it to fail Performlsquomake check-clean checklogrsquo and attach the lsquoconfiglogrsquo lsquocompilelogrsquoand lsquochecklogrsquo files to the problem report

lsquosudo make installlogrsquoA problem occurs with lsquosudo make installrsquo that causes it to fail Performlsquosudo make uninstallrsquo and lsquosudo make installlogrsquo and attach thelsquoconfiglogrsquo lsquocompilelogrsquo lsquochecklogrsquo and lsquoinstalllogrsquo files to theproblem report

lsquo[sudo] make installchecklogrsquoA problem occurs with the lsquomake installcheckrsquo target that causesthe test suite to fail Attach the resulting lsquoteststestsuitelogrsquo andlsquoinstallchecklogrsquo file to the problem report There is no need to attach theother files as they are included in lsquoteststestsuitelogrsquo

lsquo[sudo] make uninstalllogrsquoA problem occurs with the lsquomake uninstallrsquo target that causes the test suiteto fail Perform lsquosudo make uninstalllogrsquo and attach the lsquoconfiglogrsquolsquocompilelogrsquo lsquochecklogrsquo lsquoinstalllogrsquo lsquoinstallchecklogrsquolsquoteststestsuitelogrsquo and lsquouninstalllogrsquo file to the problem report

lsquo[sudo] make removelogrsquoA problem occurs with the lsquomake removersquo target that causes the test suiteto fail Perform lsquosudo make removelogrsquo and attach the lsquoconfiglogrsquolsquocompilelogrsquo lsquochecklogrsquo lsquoinstalllogrsquo lsquoinstallchecklogrsquolsquoteststestsuitelogrsquo and lsquoremovelogrsquo file to the problem report

For other problems that occur during the use of the OpenSS7 SS7 Stack package pleasewrite a test case for the test suite that recreates the problem if one does not yet existand provide a test program patch with the problem report Also include whatever logfiles are generated by the kernel (cmn_err(9)) or by the strerr(8) or strace(1) facilities(strlog(9))

722 Generating Problem Reports

The OpenSS7 Project uses the GNU GNATS system for problem reporting Although thelsquosend-prrsquo tool from the GNU GNATS package can be used for bug reporting to the projectrsquos

Chapter 7 Troubleshooting 99

GNATS database using electronic mail it is not always convenient to download and installthe GNATS system to gain access to the lsquosend-prrsquo toolTherefore the OpenSS7 SS7 Stack package provides the lsquosend-prrsquo shell script that canbe used for problem reporting The lsquosend-prrsquo shell script can invoked directly and is awork-alike for the GNU lsquosend-prrsquo toolThe lsquosend-prrsquo tool takes the same flags and can be used in the same fashion howeverwhereas lsquosend-prrsquo is an interactive tool2 lsquosend-prrsquo is also able to perform batch process-ing Whereas lsquosend-prrsquo takes its field information from local databases or from using thelsquoquery-prrsquo C-language program to query a remote database the lsquosend-prrsquo tool has thefield database internal to the toolProblem reports can be generate using make See Section 6817 [Problem Report Targets]page 89 An example of how simple it is to generate a problem report is illustrated inExample 76 make prSEND-PRSEND-PR send-pr send-pr was invoked to generate an external report AnSEND-PR automated problem report has been created in the file namedSEND-PR rsquoproblemprrsquo in the current directory This problem report canSEND-PR be sent to bugsopenss7org by calling this script asSEND-PR rsquohomebrianos7scriptssend-pr --file=problemprrsquoSEND-PRSEND-PR It is possible to edit some of the fields before sending on theSEND-PR problem report Please remember that there is NO WARRANTY SeeSEND-PR the file rsquoCOPYINGrsquo in the top level directorySEND-PRSEND-PR Please do not send confidential information to the bug reportSEND-PR address Inspect the file rsquoproblemprrsquo for confidentialSEND-PR information before mailingSEND-PR vim problempr lt--- follow instructions at head of file make send-pr

Example 76 Invoking Problem Report Generation Using the lsquomake prrsquo target to generate a problem report has the advantages that it willassemble any available lsquologrsquo files in the build directory and attach them to the problemreport

723 Automatic Problem Reports

The OpenSS7 SS7 Stack package also provides a feature for automatic problem reportgeneration that meets the problem report submission guidelines detailed in the precedingsectionsWhenever a logging makefile target (see Section 6816 [Logging Targets] page 87) is in-voked if the primary target fails the send-pr shell script is invoked to automatically

2 lsquosend-prrsquo launches the userrsquos EDITOR to edit the problem report before submitting it

100 OpenSS7 SS7 Stack

generate a problem report file suitable for the corresponding target (as described aboveunder see Section 721 [Problem Report Guidelines] page 98) An example is shown inExample 77 make compilelogmake[5] [libXNSdrvs_a-ipo] Error 1make[5] Leaving directory lsquou6buildel4strxnsrsquomake[4] [all-recursive] Error 1make[4] Leaving directory lsquou6buildel4strxnsrsquomake[3] [all] Error 2make[3] Leaving directory lsquou6buildel4strxnsrsquomake[2] [all-recursive] Error 1make[2] Leaving directory lsquou6buildel4rsquomake[1] [all] Error 2make[1] Leaving directory lsquou6buildel4rsquoSEND-PRSEND-PR send-pr Make target compilelog failed in the compile stage AnSEND-PR automated problem report has been created in the file namedSEND-PR rsquoproblemprrsquo in the current directory This problem report canSEND-PR be sent to bugsopenss7org by calling rsquomake send-prrsquoSEND-PRSEND-PR It is possible to edit some of the fields before sending on theSEND-PR problem report Please remember that there is NO WARRANTY SeeSEND-PR the file rsquoCOPYINGrsquo in the top level directorySEND-PRSEND-PR Please do not send confidential information to the bug reportSEND-PR address Inspect the file rsquoproblemprrsquo for confidentialSEND-PR information before mailingSEND-PR vim problempr lt--- follow instructions at head of file make send-pr

Example 77 Problem Report from Failed Logging Target 724 Stand Alone Problem Reports

The OpenSS7 SS7 Stack package installs the send-pr script and its configuration filelsquosend-prconfigrsquo in lsquo$libexecdirstrss7rsquo along with the validation testsuite seeSee Section 71 [Test Suites] page 93 As with the testsuite this allows the send-prscript to be used for problem report generation on an installed system that does not havea build directory

An example of invoking the package testsuite and then generating a problem report forfailed cases is shown in Example 78

Chapter 7 Troubleshooting 101 [sudo] usrlibexecstrss7testsuite test cases failed usrlibexecstrss7send-prSEND-PRSEND-PR send-pr send-pr was invoked to generate an external report AnSEND-PR automated problem report has been created in the file namedSEND-PR rsquoproblemprrsquo in the current directory This problem report canSEND-PR be sent to bugsopenss7org by calling this script asSEND-PR rsquousrlibexecstrss7send-pr --file problemprrsquoSEND-PRSEND-PR It is possible to edit some of the fields before sending on theSEND-PR problem report Please remember that there is NO WARRANTY SeeSEND-PR the file rsquoCOPYINGrsquo in the top level directorySEND-PRSEND-PR Please do not send confidential information to the bug reportSEND-PR address Inspect the file rsquoproblemprrsquo for confidentialSEND-PR information before mailingSEND-PR vim problempr lt--- follow instructions at head of file usrlibexecstrss7send-pr --file problempr

Example 78 Invoking send-pr Directly The advantage of the approach shown in the example is that the send-pr script is capableof collecting the lsquotestsuitelogrsquo file and the failed test cases and debugging scripts fromthe lsquotestsuitedirrsquo directory and including them in the problem report as well as allpackage pertinent information from the installed lsquosend-prconfigrsquo

73 Known Problems

The OpenSS7 Project does not ship software with known bugs All bugs are unknownVerified behaviour is that behaviour that has been verified by conformance test suites thatare shipped with the OpenSS7 SS7 Stack packageUnverified behaviour may contain unknown bugsPlease remember that there is NO WARRANTYSee also Section 55 [Bugs] page 43 or file lsquoBUGSrsquo in the release directory

Licenses 103

Licenses

104 OpenSS7 SS7 Stack

GNU Affero General Public License

The GNU Affero General Public LicenseVersion 3 19 November 2007

Copyright ccopy 2007 Free Software Foundation Inc httpfsforg

Everyone is permitted to copy and distribute verbatim copies of thislicense document but changing it is not allowed

Preamble

The GNU Affero General Public License is a free copyleft license for software and otherkinds of works specifically designed to ensure cooperation with the community in the caseof network server software

The licenses for most software and other practical works are designed to take away yourfreedom to share and change the works By contrast our General Public Licenses areintended to guarantee your freedom to share and change all versions of a programndashto makesure it remains free software for all its users

When we speak of free software we are referring to freedom not price Our General PublicLicenses are designed to make sure that you have the freedom to distribute copies of freesoftware (and charge for them if you wish) that you receive source code or can get it if youwant it that you can change the software or use pieces of it in new free programs and thatyou know you can do these things

Developers that use our General Public Licenses protect your rights with two steps (1)assert copyright on the software and (2) offer you this License which gives you legal per-mission to copy distribute andor modify the software

A secondary benefit of defending all usersrsquo freedom is that improvements made in alternateversions of the program if they receive widespread use become available for other developersto incorporate Many developers of free software are heartened and encouraged by theresulting cooperation However in the case of software used on network servers this resultmay fail to come about The GNU General Public License permits making a modifiedversion and letting the public access it on a server without ever releasing its source code tothe public

The GNU Affero General Public License is designed specifically to ensure that in such casesthe modified source code becomes available to the community It requires the operator of anetwork server to provide the source code of the modified version running there to the usersof that server Therefore public use of a modified version on a publicly accessible servergives the public access to the source code of the modified version

An older license called the Affero General Public License and published by Affero wasdesigned to accomplish similar goals This is a different license not a version of the AfferoGPL but Affero has released a new version of the Affero GPL which permits relicensingunder this license

The precise terms and conditions for copying distribution and modification follow

Licenses 105

Terms and Conditions

0 DefinitionsldquoThis Licenserdquo refers to version 3 of the GNU Affero General Public LicenseldquoCopyrightrdquo also means copyright-like laws that apply to other kinds of works such assemiconductor masksldquoThe Programrdquo refers to any copyrightable work licensed under this License Eachlicensee is addressed as ldquoyourdquo ldquoLicenseesrdquo and ldquorecipientsrdquo may be individuals ororganizationsTo ldquomodifyrdquo a work means to copy from or adapt all or part of the work in a fashionrequiring copyright permission other than the making of an exact copy The resultingwork is called a ldquomodified versionrdquo of the earlier work or a work ldquobased onrdquo the earlierworkA ldquocovered workrdquo means either the unmodified Program or a work based on the Pro-gramTo ldquopropagaterdquo a work means to do anything with it that without permission wouldmake you directly or secondarily liable for infringement under applicable copyright lawexcept executing it on a computer or modifying a private copy Propagation includescopying distribution (with or without modification) making available to the publicand in some countries other activities as wellTo ldquoconveyrdquo a work means any kind of propagation that enables other parties to makeor receive copies Mere interaction with a user through a computer network with notransfer of a copy is not conveyingAn interactive user interface displays ldquoAppropriate Legal Noticesrdquo to the extent that itincludes a convenient and prominently visible feature that (1) displays an appropriatecopyright notice and (2) tells the user that there is no warranty for the work (exceptto the extent that warranties are provided) that licensees may convey the work underthis License and how to view a copy of this License If the interface presents a listof user commands or options such as a menu a prominent item in the list meets thiscriterion

1 Source CodeThe ldquosource coderdquo for a work means the preferred form of the work for making modi-fications to it ldquoObject coderdquo means any non-source form of a workA ldquoStandard Interfacerdquo means an interface that either is an official standard definedby a recognized standards body or in the case of interfaces specified for a particularprogramming language one that is widely used among developers working in thatlanguageThe ldquoSystem Librariesrdquo of an executable work include anything other than the work asa whole that (a) is included in the normal form of packaging a Major Component butwhich is not part of that Major Component and (b) serves only to enable use of thework with that Major Component or to implement a Standard Interface for which animplementation is available to the public in source code form A ldquoMajor Componentrdquoin this context means a major essential component (kernel window system and soon) of the specific operating system (if any) on which the executable work runs or acompiler used to produce the work or an object code interpreter used to run it

106 OpenSS7 SS7 Stack

The ldquoCorresponding Sourcerdquo for a work in object code form means all the source codeneeded to generate install and (for an executable work) run the object code and tomodify the work including scripts to control those activities However it does notinclude the workrsquos System Libraries or general-purpose tools or generally availablefree programs which are used unmodified in performing those activities but which arenot part of the work For example Corresponding Source includes interface definitionfiles associated with source files for the work and the source code for shared librariesand dynamically linked subprograms that the work is specifically designed to requiresuch as by intimate data communication or control flow between those subprogramsand other parts of the workThe Corresponding Source need not include anything that users can regenerate auto-matically from other parts of the Corresponding SourceThe Corresponding Source for a work in source code form is that same work

2 Basic PermissionsAll rights granted under this License are granted for the term of copyright on theProgram and are irrevocable provided the stated conditions are met This License ex-plicitly affirms your unlimited permission to run the unmodified Program The outputfrom running a covered work is covered by this License only if the output given itscontent constitutes a covered work This License acknowledges your rights of fair useor other equivalent as provided by copyright lawYou may make run and propagate covered works that you do not convey withoutconditions so long as your license otherwise remains in force You may convey coveredworks to others for the sole purpose of having them make modifications exclusivelyfor you or provide you with facilities for running those works provided that youcomply with the terms of this License in conveying all material for which you do notcontrol copyright Those thus making or running the covered works for you must doso exclusively on your behalf under your direction and control on terms that prohibitthem from making any copies of your copyrighted material outside their relationshipwith youConveying under any other circumstances is permitted solely under the conditionsstated below Sublicensing is not allowed section 10 makes it unnecessary

3 Protecting Usersrsquo Legal Rights From Anti-Circumvention LawNo covered work shall be deemed part of an effective technological measure underany applicable law fulfilling obligations under article 11 of the WIPO copyright treatyadopted on 20 December 1996 or similar laws prohibiting or restricting circumventionof such measuresWhen you convey a covered work you waive any legal power to forbid circumvention oftechnological measures to the extent such circumvention is effected by exercising rightsunder this License with respect to the covered work and you disclaim any intentionto limit operation or modification of the work as a means of enforcing against theworkrsquos users your or third partiesrsquo legal rights to forbid circumvention of technologicalmeasures

4 Conveying Verbatim CopiesYou may convey verbatim copies of the Programrsquos source code as you receive it in anymedium provided that you conspicuously and appropriately publish on each copy an

Licenses 107

appropriate copyright notice keep intact all notices stating that this License and anynon-permissive terms added in accord with section 7 apply to the code keep intact allnotices of the absence of any warranty and give all recipients a copy of this Licensealong with the ProgramYou may charge any price or no price for each copy that you convey and you may offersupport or warranty protection for a fee

5 Conveying Modified Source VersionsYou may convey a work based on the Program or the modifications to produce it fromthe Program in the form of source code under the terms of section 4 provided thatyou also meet all of these conditionsa The work must carry prominent notices stating that you modified it and giving a

relevant dateb The work must carry prominent notices stating that it is released under this Li-

cense and any conditions added under section 7 This requirement modifies therequirement in section 4 to ldquokeep intact all noticesrdquo

c You must license the entire work as a whole under this License to anyone whocomes into possession of a copy This License will therefore apply along with anyapplicable section 7 additional terms to the whole of the work and all its partsregardless of how they are packaged This License gives no permission to licensethe work in any other way but it does not invalidate such permission if you haveseparately received it

d If the work has interactive user interfaces each must display Appropriate LegalNotices however if the Program has interactive interfaces that do not displayAppropriate Legal Notices your work need not make them do so

A compilation of a covered work with other separate and independent works whichare not by their nature extensions of the covered work and which are not combinedwith it such as to form a larger program in or on a volume of a storage or distributionmedium is called an ldquoaggregaterdquo if the compilation and its resulting copyright arenot used to limit the access or legal rights of the compilationrsquos users beyond what theindividual works permit Inclusion of a covered work in an aggregate does not causethis License to apply to the other parts of the aggregate

6 Conveying Non-Source FormsYou may convey a covered work in object code form under the terms of sections 4 and5 provided that you also convey the machine-readable Corresponding Source underthe terms of this License in one of these waysa Convey the object code in or embodied in a physical product (including a phys-

ical distribution medium) accompanied by the Corresponding Source fixed on adurable physical medium customarily used for software interchange

b Convey the object code in or embodied in a physical product (including a physi-cal distribution medium) accompanied by a written offer valid for at least threeyears and valid for as long as you offer spare parts or customer support for thatproduct model to give anyone who possesses the object code either (1) a copy ofthe Corresponding Source for all the software in the product that is covered by thisLicense on a durable physical medium customarily used for software interchange

108 OpenSS7 SS7 Stack

for a price no more than your reasonable cost of physically performing this con-veying of source or (2) access to copy the Corresponding Source from a networkserver at no charge

c Convey individual copies of the object code with a copy of the written offer toprovide the Corresponding Source This alternative is allowed only occasionallyand noncommercially and only if you received the object code with such an offerin accord with subsection 6b

d Convey the object code by offering access from a designated place (gratis or fora charge) and offer equivalent access to the Corresponding Source in the sameway through the same place at no further charge You need not require recipientsto copy the Corresponding Source along with the object code If the place tocopy the object code is a network server the Corresponding Source may be ona different server (operated by you or a third party) that supports equivalentcopying facilities provided you maintain clear directions next to the object codesaying where to find the Corresponding Source Regardless of what server hoststhe Corresponding Source you remain obligated to ensure that it is available foras long as needed to satisfy these requirements

e Convey the object code using peer-to-peer transmission provided you inform otherpeers where the object code and Corresponding Source of the work are being offeredto the general public at no charge under subsection 6d

A separable portion of the object code whose source code is excluded from the Cor-responding Source as a System Library need not be included in conveying the objectcode workA ldquoUser Productrdquo is either (1) a ldquoconsumer productrdquo which means any tangible per-sonal property which is normally used for personal family or household purposes or(2) anything designed or sold for incorporation into a dwelling In determining whethera product is a consumer product doubtful cases shall be resolved in favor of coverageFor a particular product received by a particular user ldquonormally usedrdquo refers to atypical or common use of that class of product regardless of the status of the par-ticular user or of the way in which the particular user actually uses or expects or isexpected to use the product A product is a consumer product regardless of whetherthe product has substantial commercial industrial or non-consumer uses unless suchuses represent the only significant mode of use of the productldquoInstallation Informationrdquo for a User Product means any methods procedures autho-rization keys or other information required to install and execute modified versions of acovered work in that User Product from a modified version of its Corresponding SourceThe information must suffice to ensure that the continued functioning of the modifiedobject code is in no case prevented or interfered with solely because modification hasbeen madeIf you convey an object code work under this section in or with or specifically foruse in a User Product and the conveying occurs as part of a transaction in whichthe right of possession and use of the User Product is transferred to the recipient inperpetuity or for a fixed term (regardless of how the transaction is characterized)the Corresponding Source conveyed under this section must be accompanied by theInstallation Information But this requirement does not apply if neither you nor any

Licenses 109

third party retains the ability to install modified object code on the User Product (forexample the work has been installed in ROM)The requirement to provide Installation Information does not include a requirementto continue to provide support service warranty or updates for a work that has beenmodified or installed by the recipient or for the User Product in which it has beenmodified or installed Access to a network may be denied when the modification itselfmaterially and adversely affects the operation of the network or violates the rules andprotocols for communication across the networkCorresponding Source conveyed and Installation Information provided in accord withthis section must be in a format that is publicly documented (and with an implementa-tion available to the public in source code form) and must require no special passwordor key for unpacking reading or copying

7 Additional TermsldquoAdditional permissionsrdquo are terms that supplement the terms of this License by mak-ing exceptions from one or more of its conditions Additional permissions that areapplicable to the entire Program shall be treated as though they were included in thisLicense to the extent that they are valid under applicable law If additional permis-sions apply only to part of the Program that part may be used separately under thosepermissions but the entire Program remains governed by this License without regardto the additional permissionsWhen you convey a copy of a covered work you may at your option remove anyadditional permissions from that copy or from any part of it (Additional permissionsmay be written to require their own removal in certain cases when you modify thework) You may place additional permissions on material added by you to a coveredwork for which you have or can give appropriate copyright permissionNotwithstanding any other provision of this License for material you add to a coveredwork you may (if authorized by the copyright holders of that material) supplementthe terms of this License with termsa Disclaiming warranty or limiting liability differently from the terms of sections 15

and 16 of this License orb Requiring preservation of specified reasonable legal notices or author attributions

in that material or in the Appropriate Legal Notices displayed by works containingit or

c Prohibiting misrepresentation of the origin of that material or requiring that mod-ified versions of such material be marked in reasonable ways as different from theoriginal version or

d Limiting the use for publicity purposes of names of licensors or authors of thematerial or

e Declining to grant rights under trademark law for use of some trade names trade-marks or service marks or

f Requiring indemnification of licensors and authors of that material by anyone whoconveys the material (or modified versions of it) with contractual assumptionsof liability to the recipient for any liability that these contractual assumptionsdirectly impose on those licensors and authors

110 OpenSS7 SS7 Stack

All other non-permissive additional terms are considered ldquofurther restrictionsrdquo withinthe meaning of section 10 If the Program as you received it or any part of it con-tains a notice stating that it is governed by this License along with a term that is afurther restriction you may remove that term If a license document contains a furtherrestriction but permits relicensing or conveying under this License you may add to acovered work material governed by the terms of that license document provided thatthe further restriction does not survive such relicensing or conveyingIf you add terms to a covered work in accord with this section you must place in therelevant source files a statement of the additional terms that apply to those files or anotice indicating where to find the applicable termsAdditional terms permissive or non-permissive may be stated in the form of a sep-arately written license or stated as exceptions the above requirements apply eitherway

8 TerminationYou may not propagate or modify a covered work except as expressly provided un-der this License Any attempt otherwise to propagate or modify it is void and willautomatically terminate your rights under this License (including any patent licensesgranted under the third paragraph of section 11)However if you cease all violation of this License then your license from a particularcopyright holder is reinstated (a) provisionally unless and until the copyright holderexplicitly and finally terminates your license and (b) permanently if the copyrightholder fails to notify you of the violation by some reasonable means prior to 60 daysafter the cessationMoreover your license from a particular copyright holder is reinstated permanently ifthe copyright holder notifies you of the violation by some reasonable means this is thefirst time you have received notice of violation of this License (for any work) from thatcopyright holder and you cure the violation prior to 30 days after your receipt of thenoticeTermination of your rights under this section does not terminate the licenses of partieswho have received copies or rights from you under this License If your rights havebeen terminated and not permanently reinstated you do not qualify to receive newlicenses for the same material under section 10

9 Acceptance Not Required for Having CopiesYou are not required to accept this License in order to receive or run a copy of theProgram Ancillary propagation of a covered work occurring solely as a consequence ofusing peer-to-peer transmission to receive a copy likewise does not require acceptanceHowever nothing other than this License grants you permission to propagate or modifyany covered work These actions infringe copyright if you do not accept this LicenseTherefore by modifying or propagating a covered work you indicate your acceptanceof this License to do so

10 Automatic Licensing of Downstream RecipientsEach time you convey a covered work the recipient automatically receives a licensefrom the original licensors to run modify and propagate that work subject to thisLicense You are not responsible for enforcing compliance by third parties with thisLicense

Licenses 111

An ldquoentity transactionrdquo is a transaction transferring control of an organization orsubstantially all assets of one or subdividing an organization or merging organizationsIf propagation of a covered work results from an entity transaction each party to thattransaction who receives a copy of the work also receives whatever licenses to the workthe partyrsquos predecessor in interest had or could give under the previous paragraph plusa right to possession of the Corresponding Source of the work from the predecessor ininterest if the predecessor has it or can get it with reasonable effortsYou may not impose any further restrictions on the exercise of the rights granted oraffirmed under this License For example you may not impose a license fee royalty orother charge for exercise of rights granted under this License and you may not initiatelitigation (including a cross-claim or counterclaim in a lawsuit) alleging that any patentclaim is infringed by making using selling offering for sale or importing the Programor any portion of it

11 PatentsA ldquocontributorrdquo is a copyright holder who authorizes use under this License of theProgram or a work on which the Program is based The work thus licensed is calledthe contributorrsquos ldquocontributor versionrdquoA contributorrsquos ldquoessential patent claimsrdquo are all patent claims owned or controlled bythe contributor whether already acquired or hereafter acquired that would be infringedby some manner permitted by this License of making using or selling its contributorversion but do not include claims that would be infringed only as a consequence offurther modification of the contributor version For purposes of this definition ldquocon-trolrdquo includes the right to grant patent sublicenses in a manner consistent with therequirements of this LicenseEach contributor grants you a non-exclusive worldwide royalty-free patent licenseunder the contributorrsquos essential patent claims to make use sell offer for sale importand otherwise run modify and propagate the contents of its contributor versionIn the following three paragraphs a ldquopatent licenserdquo is any express agreement or com-mitment however denominated not to enforce a patent (such as an express permissionto practice a patent or covenant not to sue for patent infringement) To ldquograntrdquo sucha patent license to a party means to make such an agreement or commitment not toenforce a patent against the partyIf you convey a covered work knowingly relying on a patent license and the Corre-sponding Source of the work is not available for anyone to copy free of charge and underthe terms of this License through a publicly available network server or other readilyaccessible means then you must either (1) cause the Corresponding Source to be soavailable or (2) arrange to deprive yourself of the benefit of the patent license for thisparticular work or (3) arrange in a manner consistent with the requirements of thisLicense to extend the patent license to downstream recipients ldquoKnowingly relyingrdquomeans you have actual knowledge that but for the patent license your conveying thecovered work in a country or your recipientrsquos use of the covered work in a countrywould infringe one or more identifiable patents in that country that you have reasonto believe are validIf pursuant to or in connection with a single transaction or arrangement you conveyor propagate by procuring conveyance of a covered work and grant a patent license

112 OpenSS7 SS7 Stack

to some of the parties receiving the covered work authorizing them to use propagatemodify or convey a specific copy of the covered work then the patent license you grantis automatically extended to all recipients of the covered work and works based on it

A patent license is ldquodiscriminatoryrdquo if it does not include within the scope of its cover-age prohibits the exercise of or is conditioned on the non-exercise of one or more of therights that are specifically granted under this License You may not convey a coveredwork if you are a party to an arrangement with a third party that is in the business ofdistributing software under which you make payment to the third party based on theextent of your activity of conveying the work and under which the third party grantsto any of the parties who would receive the covered work from you a discriminatorypatent license (a) in connection with copies of the covered work conveyed by you (orcopies made from those copies) or (b) primarily for and in connection with specificproducts or compilations that contain the covered work unless you entered into thatarrangement or that patent license was granted prior to 28 March 2007

Nothing in this License shall be construed as excluding or limiting any implied license orother defenses to infringement that may otherwise be available to you under applicablepatent law

12 No Surrender of Othersrsquo Freedom

If conditions are imposed on you (whether by court order agreement or otherwise) thatcontradict the conditions of this License they do not excuse you from the conditionsof this License If you cannot convey a covered work so as to satisfy simultaneouslyyour obligations under this License and any other pertinent obligations then as aconsequence you may not convey it at all For example if you agree to terms thatobligate you to collect a royalty for further conveying from those to whom you conveythe Program the only way you could satisfy both those terms and this License wouldbe to refrain entirely from conveying the Program

13 Remote Network Interaction Use with the GNU General Public License

Notwithstanding any other provision of this License if you modify the Program yourmodified version must prominently offer all users interacting with it remotely througha network (if your version supports such interaction) an opportunity to receive theCorresponding Source of your version by providing access to the Corresponding Sourcefrom a network server at no charge through some standard or customary means offacilitating copying of software This Corresponding Source shall include the Corre-sponding Source for any work covered by version 3 of the GNU General Public Licensethat is incorporated pursuant to the following paragraph

Notwithstanding any other provision of this License you have permission to link orcombine any covered work with a work licensed under version 3 of the GNU GeneralPublic License into a single combined work and to convey the resulting work Theterms of this License will continue to apply to the part which is the covered work butthe work with which it is combined will remain governed by version 3 of the GNUGeneral Public License

14 Revised Versions of this License

The Free Software Foundation may publish revised andor new versions of the GNUAffero General Public License from time to time Such new versions will be similar

Licenses 113

in spirit to the present version but may differ in detail to address new problems orconcernsEach version is given a distinguishing version number If the Program specifies thata certain numbered version of the GNU Affero General Public License ldquoor any laterversionrdquo applies to it you have the option of following the terms and conditions ei-ther of that numbered version or of any later version published by the Free SoftwareFoundation If the Program does not specify a version number of the GNU Affero Gen-eral Public License you may choose any version ever published by the Free SoftwareFoundationIf the Program specifies that a proxy can decide which future versions of the GNU AfferoGeneral Public License can be used that proxyrsquos public statement of acceptance of aversion permanently authorizes you to choose that version for the ProgramLater license versions may give you additional or different permissions However noadditional obligations are imposed on any author or copyright holder as a result of yourchoosing to follow a later version

15 Disclaimer of WarrantyTHERE IS NO WARRANTY FOR THE PROGRAM TO THE EXTENT PER-MITTED BY APPLICABLE LAW EXCEPT WHEN OTHERWISE STATED INWRITING THE COPYRIGHT HOLDERS ANDOR OTHER PARTIES PROVIDETHE PROGRAM ldquoAS ISrdquo WITHOUT WARRANTY OF ANY KIND EITHER EX-PRESSED OR IMPLIED INCLUDING BUT NOT LIMITED TO THE IMPLIEDWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULARPURPOSE THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCEOF THE PROGRAM IS WITH YOU SHOULD THE PROGRAM PROVE DEFEC-TIVE YOU ASSUME THE COST OF ALL NECESSARY SERVICING REPAIR ORCORRECTION

16 Limitation of LiabilityIN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO INWRITING WILL ANY COPYRIGHT HOLDER OR ANY OTHER PARTY WHOMODIFIES ANDOR CONVEYS THE PROGRAM AS PERMITTED ABOVE BELIABLE TO YOU FOR DAMAGES INCLUDING ANY GENERAL SPECIAL IN-CIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE ORINABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TOLOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUS-TAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAMTO OPERATE WITH ANY OTHER PROGRAMS) EVEN IF SUCH HOLDER OROTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAM-AGES

17 Interpretation of Sections 15 and 16If the disclaimer of warranty and limitation of liability provided above cannot be givenlocal legal effect according to their terms reviewing courts shall apply local law thatmost closely approximates an absolute waiver of all civil liability in connection withthe Program unless a warranty or assumption of liability accompanies a copy of theProgram in return for a fee

END OF TERMS AND CONDITIONS

114 OpenSS7 SS7 Stack

How to Apply These Terms to Your New Programs

If you develop a new program and you want it to be of the greatest possible use to the publicthe best way to achieve this is to make it free software which everyone can redistribute andchange under these termsTo do so attach the following notices to the program It is safest to attach them to thestart of each source file to most effectively state the exclusion of warranty and each fileshould have at least the ldquocopyrightrdquo line and a pointer to where the full notice is found

one line to give the programrsquos name and a brief idea of what it does

Copyright (C) year name of author

This program is free software you can redistribute it andor modify

it under the terms of the GNU Affero General Public License as published by

the Free Software Foundation either version 3 of the License or (at

your option) any later version

This program is distributed in the hope that it will be useful but

WITHOUT ANY WARRANTY without even the implied warranty of

MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE See the GNU

Affero General Public License for more details

You should have received a copy of the GNU Affero General Public License

along with this program If not see httpwwwgnuorglicenses

Also add information on how to contact you by electronic and paper mailIf your software can interact with users remotely through a network you should also makesure that it provides a way for users to get its source For example if your program is aweb application its interface could display a ldquoSourcerdquo link that leads users to an archive ofthe code There are many ways you could offer source and different solutions will be betterfor different programs see section 13 for the specific requirementsYou should also get your employer (if you work as a programmer) or school if any to signa ldquocopyright disclaimerrdquo for the program if necessary For more information on this andhow to apply and follow the GNU AGPL see httpwwwgnuorglicenses

Licenses 115

GNU General Public License

GNU GENERAL PUBLIC LICENSEVersion 3 29 June 2007

Copyright ccopy 2007 Free Software Foundation Inc httpfsforg

Everyone is permitted to copy and distribute verbatim copies of thislicense document but changing it is not allowed

Preamble

The GNU General Public License is a free copyleft license for software and other kinds ofworks

The licenses for most software and other practical works are designed to take away yourfreedom to share and change the works By contrast the GNU General Public License isintended to guarantee your freedom to share and change all versions of a programndashto makesure it remains free software for all its users We the Free Software Foundation use theGNU General Public License for most of our software it applies also to any other workreleased this way by its authors You can apply it to your programs too

When we speak of free software we are referring to freedom not price Our General PublicLicenses are designed to make sure that you have the freedom to distribute copies of freesoftware (and charge for them if you wish) that you receive source code or can get it if youwant it that you can change the software or use pieces of it in new free programs and thatyou know you can do these things

To protect your rights we need to prevent others from denying you these rights or askingyou to surrender the rights Therefore you have certain responsibilities if you distributecopies of the software or if you modify it responsibilities to respect the freedom of others

For example if you distribute copies of such a program whether gratis or for a fee youmust pass on to the recipients the same freedoms that you received You must make surethat they too receive or can get the source code And you must show them these terms sothey know their rights

Developers that use the GNU GPL protect your rights with two steps (1) assert copyrighton the software and (2) offer you this License giving you legal permission to copy distributeandor modify it

For the developersrsquo and authorsrsquo protection the GPL clearly explains that there is nowarranty for this free software For both usersrsquo and authorsrsquo sake the GPL requires thatmodified versions be marked as changed so that their problems will not be attributederroneously to authors of previous versions

Some devices are designed to deny users access to install or run modified versions of thesoftware inside them although the manufacturer can do so This is fundamentally incom-patible with the aim of protecting usersrsquo freedom to change the software The systematicpattern of such abuse occurs in the area of products for individuals to use which is pre-cisely where it is most unacceptable Therefore we have designed this version of the GPLto prohibit the practice for those products If such problems arise substantially in other

116 OpenSS7 SS7 Stack

domains we stand ready to extend this provision to those domains in future versions of theGPL as needed to protect the freedom of users

Finally every program is threatened constantly by software patents States should not allowpatents to restrict development and use of software on general-purpose computers but inthose that do we wish to avoid the special danger that patents applied to a free programcould make it effectively proprietary To prevent this the GPL assures that patents cannotbe used to render the program non-free

The precise terms and conditions for copying distribution and modification follow

Terms and Conditions

0 DefinitionsldquoThis Licenserdquo refers to version 3 of the GNU General Public LicenseldquoCopyrightrdquo also means copyright-like laws that apply to other kinds of works such assemiconductor masksldquoThe Programrdquo refers to any copyrightable work licensed under this License Eachlicensee is addressed as ldquoyourdquo ldquoLicenseesrdquo and ldquorecipientsrdquo may be individuals ororganizationsTo ldquomodifyrdquo a work means to copy from or adapt all or part of the work in a fashionrequiring copyright permission other than the making of an exact copy The resultingwork is called a ldquomodified versionrdquo of the earlier work or a work ldquobased onrdquo the earlierworkA ldquocovered workrdquo means either the unmodified Program or a work based on the Pro-gramTo ldquopropagaterdquo a work means to do anything with it that without permission wouldmake you directly or secondarily liable for infringement under applicable copyright lawexcept executing it on a computer or modifying a private copy Propagation includescopying distribution (with or without modification) making available to the publicand in some countries other activities as wellTo ldquoconveyrdquo a work means any kind of propagation that enables other parties to makeor receive copies Mere interaction with a user through a computer network with notransfer of a copy is not conveyingAn interactive user interface displays ldquoAppropriate Legal Noticesrdquo to the extent that itincludes a convenient and prominently visible feature that (1) displays an appropriatecopyright notice and (2) tells the user that there is no warranty for the work (exceptto the extent that warranties are provided) that licensees may convey the work underthis License and how to view a copy of this License If the interface presents a listof user commands or options such as a menu a prominent item in the list meets thiscriterion

1 Source CodeThe ldquosource coderdquo for a work means the preferred form of the work for making modi-fications to it ldquoObject coderdquo means any non-source form of a workA ldquoStandard Interfacerdquo means an interface that either is an official standard definedby a recognized standards body or in the case of interfaces specified for a particular

Licenses 117

programming language one that is widely used among developers working in thatlanguage

The ldquoSystem Librariesrdquo of an executable work include anything other than the work asa whole that (a) is included in the normal form of packaging a Major Component butwhich is not part of that Major Component and (b) serves only to enable use of thework with that Major Component or to implement a Standard Interface for which animplementation is available to the public in source code form A ldquoMajor Componentrdquoin this context means a major essential component (kernel window system and soon) of the specific operating system (if any) on which the executable work runs or acompiler used to produce the work or an object code interpreter used to run it

The ldquoCorresponding Sourcerdquo for a work in object code form means all the source codeneeded to generate install and (for an executable work) run the object code and tomodify the work including scripts to control those activities However it does notinclude the workrsquos System Libraries or general-purpose tools or generally availablefree programs which are used unmodified in performing those activities but which arenot part of the work For example Corresponding Source includes interface definitionfiles associated with source files for the work and the source code for shared librariesand dynamically linked subprograms that the work is specifically designed to requiresuch as by intimate data communication or control flow between those subprogramsand other parts of the work

The Corresponding Source need not include anything that users can regenerate auto-matically from other parts of the Corresponding Source

The Corresponding Source for a work in source code form is that same work

2 Basic Permissions

All rights granted under this License are granted for the term of copyright on theProgram and are irrevocable provided the stated conditions are met This License ex-plicitly affirms your unlimited permission to run the unmodified Program The outputfrom running a covered work is covered by this License only if the output given itscontent constitutes a covered work This License acknowledges your rights of fair useor other equivalent as provided by copyright law

You may make run and propagate covered works that you do not convey withoutconditions so long as your license otherwise remains in force You may convey coveredworks to others for the sole purpose of having them make modifications exclusivelyfor you or provide you with facilities for running those works provided that youcomply with the terms of this License in conveying all material for which you do notcontrol copyright Those thus making or running the covered works for you must doso exclusively on your behalf under your direction and control on terms that prohibitthem from making any copies of your copyrighted material outside their relationshipwith you

Conveying under any other circumstances is permitted solely under the conditionsstated below Sublicensing is not allowed section 10 makes it unnecessary

3 Protecting Usersrsquo Legal Rights From Anti-Circumvention Law

No covered work shall be deemed part of an effective technological measure underany applicable law fulfilling obligations under article 11 of the WIPO copyright treaty

118 OpenSS7 SS7 Stack

adopted on 20 December 1996 or similar laws prohibiting or restricting circumventionof such measures

When you convey a covered work you waive any legal power to forbid circumvention oftechnological measures to the extent such circumvention is effected by exercising rightsunder this License with respect to the covered work and you disclaim any intentionto limit operation or modification of the work as a means of enforcing against theworkrsquos users your or third partiesrsquo legal rights to forbid circumvention of technologicalmeasures

4 Conveying Verbatim Copies

You may convey verbatim copies of the Programrsquos source code as you receive it in anymedium provided that you conspicuously and appropriately publish on each copy anappropriate copyright notice keep intact all notices stating that this License and anynon-permissive terms added in accord with section 7 apply to the code keep intact allnotices of the absence of any warranty and give all recipients a copy of this Licensealong with the Program

You may charge any price or no price for each copy that you convey and you may offersupport or warranty protection for a fee

5 Conveying Modified Source Versions

You may convey a work based on the Program or the modifications to produce it fromthe Program in the form of source code under the terms of section 4 provided thatyou also meet all of these conditions

a The work must carry prominent notices stating that you modified it and giving arelevant date

b The work must carry prominent notices stating that it is released under this Li-cense and any conditions added under section 7 This requirement modifies therequirement in section 4 to ldquokeep intact all noticesrdquo

c You must license the entire work as a whole under this License to anyone whocomes into possession of a copy This License will therefore apply along with anyapplicable section 7 additional terms to the whole of the work and all its partsregardless of how they are packaged This License gives no permission to licensethe work in any other way but it does not invalidate such permission if you haveseparately received it

d If the work has interactive user interfaces each must display Appropriate LegalNotices however if the Program has interactive interfaces that do not displayAppropriate Legal Notices your work need not make them do so

A compilation of a covered work with other separate and independent works whichare not by their nature extensions of the covered work and which are not combinedwith it such as to form a larger program in or on a volume of a storage or distributionmedium is called an ldquoaggregaterdquo if the compilation and its resulting copyright arenot used to limit the access or legal rights of the compilationrsquos users beyond what theindividual works permit Inclusion of a covered work in an aggregate does not causethis License to apply to the other parts of the aggregate

6 Conveying Non-Source Forms

Licenses 119

You may convey a covered work in object code form under the terms of sections 4 and5 provided that you also convey the machine-readable Corresponding Source underthe terms of this License in one of these waysa Convey the object code in or embodied in a physical product (including a phys-

ical distribution medium) accompanied by the Corresponding Source fixed on adurable physical medium customarily used for software interchange

b Convey the object code in or embodied in a physical product (including a physi-cal distribution medium) accompanied by a written offer valid for at least threeyears and valid for as long as you offer spare parts or customer support for thatproduct model to give anyone who possesses the object code either (1) a copy ofthe Corresponding Source for all the software in the product that is covered by thisLicense on a durable physical medium customarily used for software interchangefor a price no more than your reasonable cost of physically performing this con-veying of source or (2) access to copy the Corresponding Source from a networkserver at no charge

c Convey individual copies of the object code with a copy of the written offer toprovide the Corresponding Source This alternative is allowed only occasionallyand noncommercially and only if you received the object code with such an offerin accord with subsection 6b

d Convey the object code by offering access from a designated place (gratis or fora charge) and offer equivalent access to the Corresponding Source in the sameway through the same place at no further charge You need not require recipientsto copy the Corresponding Source along with the object code If the place tocopy the object code is a network server the Corresponding Source may be ona different server (operated by you or a third party) that supports equivalentcopying facilities provided you maintain clear directions next to the object codesaying where to find the Corresponding Source Regardless of what server hoststhe Corresponding Source you remain obligated to ensure that it is available foras long as needed to satisfy these requirements

e Convey the object code using peer-to-peer transmission provided you inform otherpeers where the object code and Corresponding Source of the work are being offeredto the general public at no charge under subsection 6d

A separable portion of the object code whose source code is excluded from the Cor-responding Source as a System Library need not be included in conveying the objectcode workA ldquoUser Productrdquo is either (1) a ldquoconsumer productrdquo which means any tangible per-sonal property which is normally used for personal family or household purposes or(2) anything designed or sold for incorporation into a dwelling In determining whethera product is a consumer product doubtful cases shall be resolved in favor of coverageFor a particular product received by a particular user ldquonormally usedrdquo refers to atypical or common use of that class of product regardless of the status of the par-ticular user or of the way in which the particular user actually uses or expects or isexpected to use the product A product is a consumer product regardless of whetherthe product has substantial commercial industrial or non-consumer uses unless suchuses represent the only significant mode of use of the product

120 OpenSS7 SS7 Stack

ldquoInstallation Informationrdquo for a User Product means any methods procedures autho-rization keys or other information required to install and execute modified versions of acovered work in that User Product from a modified version of its Corresponding SourceThe information must suffice to ensure that the continued functioning of the modifiedobject code is in no case prevented or interfered with solely because modification hasbeen madeIf you convey an object code work under this section in or with or specifically foruse in a User Product and the conveying occurs as part of a transaction in whichthe right of possession and use of the User Product is transferred to the recipient inperpetuity or for a fixed term (regardless of how the transaction is characterized)the Corresponding Source conveyed under this section must be accompanied by theInstallation Information But this requirement does not apply if neither you nor anythird party retains the ability to install modified object code on the User Product (forexample the work has been installed in ROM)The requirement to provide Installation Information does not include a requirementto continue to provide support service warranty or updates for a work that has beenmodified or installed by the recipient or for the User Product in which it has beenmodified or installed Access to a network may be denied when the modification itselfmaterially and adversely affects the operation of the network or violates the rules andprotocols for communication across the networkCorresponding Source conveyed and Installation Information provided in accord withthis section must be in a format that is publicly documented (and with an implementa-tion available to the public in source code form) and must require no special passwordor key for unpacking reading or copying

7 Additional TermsldquoAdditional permissionsrdquo are terms that supplement the terms of this License by mak-ing exceptions from one or more of its conditions Additional permissions that areapplicable to the entire Program shall be treated as though they were included in thisLicense to the extent that they are valid under applicable law If additional permis-sions apply only to part of the Program that part may be used separately under thosepermissions but the entire Program remains governed by this License without regardto the additional permissionsWhen you convey a copy of a covered work you may at your option remove anyadditional permissions from that copy or from any part of it (Additional permissionsmay be written to require their own removal in certain cases when you modify thework) You may place additional permissions on material added by you to a coveredwork for which you have or can give appropriate copyright permissionNotwithstanding any other provision of this License for material you add to a coveredwork you may (if authorized by the copyright holders of that material) supplementthe terms of this License with termsa Disclaiming warranty or limiting liability differently from the terms of sections 15

and 16 of this License orb Requiring preservation of specified reasonable legal notices or author attributions

in that material or in the Appropriate Legal Notices displayed by works containingit or

Licenses 121

c Prohibiting misrepresentation of the origin of that material or requiring that mod-ified versions of such material be marked in reasonable ways as different from theoriginal version or

d Limiting the use for publicity purposes of names of licensors or authors of thematerial or

e Declining to grant rights under trademark law for use of some trade names trade-marks or service marks or

f Requiring indemnification of licensors and authors of that material by anyone whoconveys the material (or modified versions of it) with contractual assumptionsof liability to the recipient for any liability that these contractual assumptionsdirectly impose on those licensors and authors

All other non-permissive additional terms are considered ldquofurther restrictionsrdquo withinthe meaning of section 10 If the Program as you received it or any part of it con-tains a notice stating that it is governed by this License along with a term that is afurther restriction you may remove that term If a license document contains a furtherrestriction but permits relicensing or conveying under this License you may add to acovered work material governed by the terms of that license document provided thatthe further restriction does not survive such relicensing or conveying

If you add terms to a covered work in accord with this section you must place in therelevant source files a statement of the additional terms that apply to those files or anotice indicating where to find the applicable terms

Additional terms permissive or non-permissive may be stated in the form of a sep-arately written license or stated as exceptions the above requirements apply eitherway

8 Termination

You may not propagate or modify a covered work except as expressly provided un-der this License Any attempt otherwise to propagate or modify it is void and willautomatically terminate your rights under this License (including any patent licensesgranted under the third paragraph of section 11)

However if you cease all violation of this License then your license from a particularcopyright holder is reinstated (a) provisionally unless and until the copyright holderexplicitly and finally terminates your license and (b) permanently if the copyrightholder fails to notify you of the violation by some reasonable means prior to 60 daysafter the cessation

Moreover your license from a particular copyright holder is reinstated permanently ifthe copyright holder notifies you of the violation by some reasonable means this is thefirst time you have received notice of violation of this License (for any work) from thatcopyright holder and you cure the violation prior to 30 days after your receipt of thenotice

Termination of your rights under this section does not terminate the licenses of partieswho have received copies or rights from you under this License If your rights havebeen terminated and not permanently reinstated you do not qualify to receive newlicenses for the same material under section 10

122 OpenSS7 SS7 Stack

9 Acceptance Not Required for Having CopiesYou are not required to accept this License in order to receive or run a copy of theProgram Ancillary propagation of a covered work occurring solely as a consequence ofusing peer-to-peer transmission to receive a copy likewise does not require acceptanceHowever nothing other than this License grants you permission to propagate or modifyany covered work These actions infringe copyright if you do not accept this LicenseTherefore by modifying or propagating a covered work you indicate your acceptanceof this License to do so

10 Automatic Licensing of Downstream RecipientsEach time you convey a covered work the recipient automatically receives a licensefrom the original licensors to run modify and propagate that work subject to thisLicense You are not responsible for enforcing compliance by third parties with thisLicenseAn ldquoentity transactionrdquo is a transaction transferring control of an organization orsubstantially all assets of one or subdividing an organization or merging organizationsIf propagation of a covered work results from an entity transaction each party to thattransaction who receives a copy of the work also receives whatever licenses to the workthe partyrsquos predecessor in interest had or could give under the previous paragraph plusa right to possession of the Corresponding Source of the work from the predecessor ininterest if the predecessor has it or can get it with reasonable effortsYou may not impose any further restrictions on the exercise of the rights granted oraffirmed under this License For example you may not impose a license fee royalty orother charge for exercise of rights granted under this License and you may not initiatelitigation (including a cross-claim or counterclaim in a lawsuit) alleging that any patentclaim is infringed by making using selling offering for sale or importing the Programor any portion of it

11 PatentsA ldquocontributorrdquo is a copyright holder who authorizes use under this License of theProgram or a work on which the Program is based The work thus licensed is calledthe contributorrsquos ldquocontributor versionrdquoA contributorrsquos ldquoessential patent claimsrdquo are all patent claims owned or controlled bythe contributor whether already acquired or hereafter acquired that would be infringedby some manner permitted by this License of making using or selling its contributorversion but do not include claims that would be infringed only as a consequence offurther modification of the contributor version For purposes of this definition ldquocon-trolrdquo includes the right to grant patent sublicenses in a manner consistent with therequirements of this LicenseEach contributor grants you a non-exclusive worldwide royalty-free patent licenseunder the contributorrsquos essential patent claims to make use sell offer for sale importand otherwise run modify and propagate the contents of its contributor versionIn the following three paragraphs a ldquopatent licenserdquo is any express agreement or com-mitment however denominated not to enforce a patent (such as an express permissionto practice a patent or covenant not to sue for patent infringement) To ldquograntrdquo sucha patent license to a party means to make such an agreement or commitment not toenforce a patent against the party

Licenses 123

If you convey a covered work knowingly relying on a patent license and the Corre-sponding Source of the work is not available for anyone to copy free of charge and underthe terms of this License through a publicly available network server or other readilyaccessible means then you must either (1) cause the Corresponding Source to be soavailable or (2) arrange to deprive yourself of the benefit of the patent license for thisparticular work or (3) arrange in a manner consistent with the requirements of thisLicense to extend the patent license to downstream recipients ldquoKnowingly relyingrdquomeans you have actual knowledge that but for the patent license your conveying thecovered work in a country or your recipientrsquos use of the covered work in a countrywould infringe one or more identifiable patents in that country that you have reasonto believe are valid

If pursuant to or in connection with a single transaction or arrangement you conveyor propagate by procuring conveyance of a covered work and grant a patent licenseto some of the parties receiving the covered work authorizing them to use propagatemodify or convey a specific copy of the covered work then the patent license you grantis automatically extended to all recipients of the covered work and works based on it

A patent license is ldquodiscriminatoryrdquo if it does not include within the scope of its cover-age prohibits the exercise of or is conditioned on the non-exercise of one or more of therights that are specifically granted under this License You may not convey a coveredwork if you are a party to an arrangement with a third party that is in the business ofdistributing software under which you make payment to the third party based on theextent of your activity of conveying the work and under which the third party grantsto any of the parties who would receive the covered work from you a discriminatorypatent license (a) in connection with copies of the covered work conveyed by you (orcopies made from those copies) or (b) primarily for and in connection with specificproducts or compilations that contain the covered work unless you entered into thatarrangement or that patent license was granted prior to 28 March 2007

Nothing in this License shall be construed as excluding or limiting any implied license orother defenses to infringement that may otherwise be available to you under applicablepatent law

12 No Surrender of Othersrsquo Freedom

If conditions are imposed on you (whether by court order agreement or otherwise) thatcontradict the conditions of this License they do not excuse you from the conditionsof this License If you cannot convey a covered work so as to satisfy simultaneouslyyour obligations under this License and any other pertinent obligations then as aconsequence you may not convey it at all For example if you agree to terms thatobligate you to collect a royalty for further conveying from those to whom you conveythe Program the only way you could satisfy both those terms and this License wouldbe to refrain entirely from conveying the Program

13 Use with the GNU Affero General Public License

Notwithstanding any other provision of this License you have permission to link orcombine any covered work with a work licensed under version 3 of the GNU AfferoGeneral Public License into a single combined work and to convey the resulting workThe terms of this License will continue to apply to the part which is the covered work

124 OpenSS7 SS7 Stack

but the special requirements of the GNU Affero General Public License section 13concerning interaction through a network will apply to the combination as such

14 Revised Versions of this LicenseThe Free Software Foundation may publish revised andor new versions of the GNUGeneral Public License from time to time Such new versions will be similar in spiritto the present version but may differ in detail to address new problems or concernsEach version is given a distinguishing version number If the Program specifies thata certain numbered version of the GNU General Public License ldquoor any later versionrdquoapplies to it you have the option of following the terms and conditions either of thatnumbered version or of any later version published by the Free Software FoundationIf the Program does not specify a version number of the GNU General Public Licenseyou may choose any version ever published by the Free Software FoundationIf the Program specifies that a proxy can decide which future versions of the GNUGeneral Public License can be used that proxyrsquos public statement of acceptance of aversion permanently authorizes you to choose that version for the ProgramLater license versions may give you additional or different permissions However noadditional obligations are imposed on any author or copyright holder as a result of yourchoosing to follow a later version

15 Disclaimer of WarrantyTHERE IS NO WARRANTY FOR THE PROGRAM TO THE EXTENT PER-MITTED BY APPLICABLE LAW EXCEPT WHEN OTHERWISE STATED INWRITING THE COPYRIGHT HOLDERS ANDOR OTHER PARTIES PROVIDETHE PROGRAM ldquoAS ISrdquo WITHOUT WARRANTY OF ANY KIND EITHER EX-PRESSED OR IMPLIED INCLUDING BUT NOT LIMITED TO THE IMPLIEDWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULARPURPOSE THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCEOF THE PROGRAM IS WITH YOU SHOULD THE PROGRAM PROVE DEFEC-TIVE YOU ASSUME THE COST OF ALL NECESSARY SERVICING REPAIR ORCORRECTION

16 Limitation of LiabilityIN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO INWRITING WILL ANY COPYRIGHT HOLDER OR ANY OTHER PARTY WHOMODIFIES ANDOR CONVEYS THE PROGRAM AS PERMITTED ABOVE BELIABLE TO YOU FOR DAMAGES INCLUDING ANY GENERAL SPECIAL IN-CIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE ORINABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TOLOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUS-TAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAMTO OPERATE WITH ANY OTHER PROGRAMS) EVEN IF SUCH HOLDER OROTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAM-AGES

17 Interpretation of Sections 15 and 16If the disclaimer of warranty and limitation of liability provided above cannot be givenlocal legal effect according to their terms reviewing courts shall apply local law thatmost closely approximates an absolute waiver of all civil liability in connection with

Licenses 125

the Program unless a warranty or assumption of liability accompanies a copy of theProgram in return for a fee

END OF TERMS AND CONDITIONS

126 OpenSS7 SS7 Stack

How to Apply These Terms to Your New Programs

If you develop a new program and you want it to be of the greatest possible use to the publicthe best way to achieve this is to make it free software which everyone can redistribute andchange under these termsTo do so attach the following notices to the program It is safest to attach them to thestart of each source file to most effectively state the exclusion of warranty and each fileshould have at least the ldquocopyrightrdquo line and a pointer to where the full notice is found

one line to give the programrsquos name and a brief idea of what it does

Copyright (C) year name of author

This program is free software you can redistribute it andor modify

it under the terms of the GNU General Public License as published by

the Free Software Foundation either version 3 of the License or (at

your option) any later version

This program is distributed in the hope that it will be useful but

WITHOUT ANY WARRANTY without even the implied warranty of

MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE See the GNU

General Public License for more details

You should have received a copy of the GNU General Public License

along with this program If not see httpwwwgnuorglicenses

Also add information on how to contact you by electronic and paper mailIf the program does terminal interaction make it output a short notice like this when itstarts in an interactive mode

program Copyright (C) year name of author

This program comes with ABSOLUTELY NO WARRANTY for details type lsquoshow wrsquo

This is free software and you are welcome to redistribute it

under certain conditions type lsquoshow crsquo for details

The hypothetical commands lsquoshow wrsquo and lsquoshow crsquo should show the appropriate parts of theGeneral Public License Of course your programrsquos commands might be different for a GUIinterface you would use an ldquoabout boxrdquoYou should also get your employer (if you work as a programmer) or school if any to signa ldquocopyright disclaimerrdquo for the program if necessary For more information on this andhow to apply and follow the GNU GPL see httpwwwgnuorglicensesThe GNU General Public License does not permit incorporating your program into propri-etary programs If your program is a subroutine library you may consider it more usefulto permit linking proprietary applications with the library If this is what you want to douse the GNU Lesser General Public License instead of this License But first please readhttpwwwgnuorgphilosophywhy-not-lgplhtml

Licenses 127

GNU Lesser General Public License

GNU LESSER GENERAL PUBLIC LICENSEVersion 3 29 June 2007

Copyright ccopy 2007 Free Software Foundation Inc httpfsforg

Everyone is permitted to copy and distribute verbatim copies of thislicense document but changing it is not allowed

Terms and Conditions

This version of the GNU Lesser General Public License incorporates the terms and con-ditions of version 3 of the GNU General Public License supplemented by the additionalpermissions listed below0 Additional Definitions

As used herein ldquothis Licenserdquo refers to version 3 of the GNU Lesser General PublicLicense and the ldquoGNU GPLrdquo refers to version 3 of the GNU General Public LicenseldquoThe Libraryrdquo refers to a covered work governed by this License other than an Appli-cation or a Combined Work as defined belowAn ldquoApplicationrdquo is any work that makes use of an interface provided by the Librarybut which is not otherwise based on the Library Defining a subclass of a class definedby the Library is deemed a mode of using an interface provided by the LibraryA ldquoCombined Workrdquo is a work produced by combining or linking an Application withthe Library The particular version of the Library with which the Combined Work wasmade is also called the ldquoLinked VersionrdquoThe ldquoMinimal Corresponding Sourcerdquo for a Combined Work means the CorrespondingSource for the Combined Work excluding any source code for portions of the CombinedWork that considered in isolation are based on the Application and not on the LinkedVersionThe ldquoCorresponding Application Coderdquo for a Combined Work means the object codeandor source code for the Application including any data and utility programs neededfor reproducing the Combined Work from the Application but excluding the SystemLibraries of the Combined Work

1 Exception to Section 3 of the GNU GPLYou may convey a covered work under sections 3 and 4 of this License without beingbound by section 3 of the GNU GPL

2 Conveying Modified VersionsIf you modify a copy of the Library and in your modifications a facility refers to afunction or data to be supplied by an Application that uses the facility (other than asan argument passed when the facility is invoked) then you may convey a copy of themodified versiona under this License provided that you make a good faith effort to ensure that in

the event an Application does not supply the function or data the facility stilloperates and performs whatever part of its purpose remains meaningful or

128 OpenSS7 SS7 Stack

b under the GNU GPL with none of the additional permissions of this Licenseapplicable to that copy

3 Object Code Incorporating Material from Library Header FilesThe object code form of an Application may incorporate material from a header file thatis part of the Library You may convey such object code under terms of your choiceprovided that if the incorporated material is not limited to numerical parameters datastructure layouts and accessors or small macros inline functions and templates (tenor fewer lines in length) you do both of the followinga Give prominent notice with each copy of the object code that the Library is used

in it and that the Library and its use are covered by this Licenseb Accompany the object code with a copy of the GNU GPL and this license docu-

ment4 Combined Works

You may convey a Combined Work under terms of your choice that taken togethereffectively do not restrict modification of the portions of the Library contained in theCombined Work and reverse engineering for debugging such modifications if you alsodo each of the followinga Give prominent notice with each copy of the Combined Work that the Library is

used in it and that the Library and its use are covered by this Licenseb Accompany the Combined Work with a copy of the GNU GPL and this license

documentc For a Combined Work that displays copyright notices during execution include

the copyright notice for the Library among these notices as well as a referencedirecting the user to the copies of the GNU GPL and this license document

d Do one of the following0 Convey the Minimal Corresponding Source under the terms of this License

and the Corresponding Application Code in a form suitable for and underterms that permit the user to recombine or relink the Application with a mod-ified version of the Linked Version to produce a modified Combined Work inthe manner specified by section 6 of the GNU GPL for conveying Correspond-ing Source

1 Use a suitable shared library mechanism for linking with the Library Asuitable mechanism is one that (a) uses at run time a copy of the Libraryalready present on the userrsquos computer system and (b) will operate properlywith a modified version of the Library that is interface-compatible with theLinked Version

e Provide Installation Information but only if you would otherwise be required toprovide such information under section 6 of the GNU GPL and only to the extentthat such information is necessary to install and execute a modified version ofthe Combined Work produced by recombining or relinking the Application witha modified version of the Linked Version (If you use option 4d0 the InstallationInformation must accompany the Minimal Corresponding Source and Correspond-ing Application Code If you use option 4d1 you must provide the InstallationInformation in the manner specified by section 6 of the GNU GPL for conveyingCorresponding Source)

Licenses 129

5 Combined LibrariesYou may place library facilities that are a work based on the Library side by side ina single library together with other library facilities that are not Applications and arenot covered by this License and convey such a combined library under terms of yourchoice if you do both of the followinga Accompany the combined library with a copy of the same work based on the

Library uncombined with any other library facilities conveyed under the terms ofthis License

b Give prominent notice with the combined library that part of it is a work basedon the Library and explaining where to find the accompanying uncombined formof the same work

6 Revised Versions of the GNU Lesser General Public LicenseThe Free Software Foundation may publish revised andor new versions of the GNULesser General Public License from time to time Such new versions will be similarin spirit to the present version but may differ in detail to address new problems orconcernsEach version is given a distinguishing version number If the Library as you receivedit specifies that a certain numbered version of the GNU Lesser General Public Licenseldquoor any later versionrdquo applies to it you have the option of following the terms andconditions either of that published version or of any later version published by theFree Software Foundation If the Library as you received it does not specify a versionnumber of the GNU Lesser General Public License you may choose any version of theGNU Lesser General Public License ever published by the Free Software FoundationIf the Library as you received it specifies that a proxy can decide whether future versionsof the GNU Lesser General Public License shall apply that proxyrsquos public statementof acceptance of any version is permanent authorization for you to choose that versionfor the Library

END OF TERMS AND CONDITIONS

130 OpenSS7 SS7 Stack

GNU Free Documentation License

GNU FREE DOCUMENTATION LICENSEVersion 11 March 2000

Copyright ccopy 2000 Free Software Foundation Inc59 Temple Place Suite 330 Boston MA 02111-1307 USA

Everyone is permitted to copy and distribute verbatim copiesof this license document but changing it is not allowed

Preamble

The purpose of this License is to make a manual textbook or other written document freein the sense of freedom to assure everyone the effective freedom to copy and redistributeit with or without modifying it either commercially or noncommercially Secondarily thisLicense preserves for the author and publisher a way to get credit for their work while notbeing considered responsible for modifications made by others

This License is a kind of ldquocopyleftrdquo which means that derivative works of the documentmust themselves be free in the same sense It complements the GNU General Public Licensewhich is a copyleft license designed for free software

We have designed this License in order to use it for manuals for free software because freesoftware needs free documentation a free program should come with manuals providing thesame freedoms that the software does But this License is not limited to software manualsit can be used for any textual work regardless of subject matter or whether it is publishedas a printed book We recommend this License principally for works whose purpose isinstruction or reference

Terms and Conditions for Copying Distribution and Modification

1 APPLICABILITY AND DEFINITIONS

This License applies to any manual or other work that contains a notice placed bythe copyright holder saying it can be distributed under the terms of this License TheldquoDocumentrdquo below refers to any such manual or work Any member of the public isa licensee and is addressed as ldquoyourdquo

A ldquoModified Versionrdquo of the Document means any work containing the Document ora portion of it either copied verbatim or with modifications andor translated intoanother language

A ldquoSecondary Sectionrdquo is a named appendix or a front-matter section of the Documentthat deals exclusively with the relationship of the publishers or authors of the Documentto the Documentrsquos overall subject (or to related matters) and contains nothing thatcould fall directly within that overall subject (For example if the Document is in part atextbook of mathematics a Secondary Section may not explain any mathematics) Therelationship could be a matter of historical connection with the subject or with relatedmatters or of legal commercial philosophical ethical or political position regardingthem

Licenses 131

The ldquoInvariant Sectionsrdquo are certain Secondary Sections whose titles are designated asbeing those of Invariant Sections in the notice that says that the Document is releasedunder this LicenseThe ldquoCover Textsrdquo are certain short passages of text that are listed as Front-CoverTexts or Back-Cover Texts in the notice that says that the Document is released underthis LicenseA ldquoTransparentrdquo copy of the Document means a machine-readable copy representedin a format whose specification is available to the general public whose contents canbe viewed and edited directly and straightforwardly with generic text editors or (forimages composed of pixels) generic paint programs or (for drawings) some widely avail-able drawing editor and that is suitable for input to text formatters or for automatictranslation to a variety of formats suitable for input to text formatters A copy madein an otherwise Transparent file format whose markup has been designed to thwart ordiscourage subsequent modification by readers is not Transparent A copy that is notldquoTransparentrdquo is called ldquoOpaquerdquoExamples of suitable formats for Transparent copies include plain ascii withoutmarkup Texinfo input format LaTEX input format SGML or XML using apublicly available DTD and standard-conforming simple HTML designed for humanmodification Opaque formats include PostScript PDF proprietary formats that canbe read and edited only by proprietary word processors SGML or XML for which theDTD andor processing tools are not generally available and the machine-generatedHTML produced by some word processors for output purposes onlyThe ldquoTitle Pagerdquo means for a printed book the title page itself plus such followingpages as are needed to hold legibly the material this License requires to appear in thetitle page For works in formats which do not have any title page as such ldquoTitle Pagerdquomeans the text near the most prominent appearance of the workrsquos title preceding thebeginning of the body of the text

2 VERBATIM COPYINGYou may copy and distribute the Document in any medium either commercially ornoncommercially provided that this License the copyright notices and the licensenotice saying this License applies to the Document are reproduced in all copies andthat you add no other conditions whatsoever to those of this License You may not usetechnical measures to obstruct or control the reading or further copying of the copiesyou make or distribute However you may accept compensation in exchange for copiesIf you distribute a large enough number of copies you must also follow the conditionsin section 3You may also lend copies under the same conditions stated above and you may publiclydisplay copies

3 COPYING IN QUANTITYIf you publish printed copies of the Document numbering more than 100 and theDocumentrsquos license notice requires Cover Texts you must enclose the copies in coversthat carry clearly and legibly all these Cover Texts Front-Cover Texts on the frontcover and Back-Cover Texts on the back cover Both covers must also clearly andlegibly identify you as the publisher of these copies The front cover must present thefull title with all words of the title equally prominent and visible You may add other

132 OpenSS7 SS7 Stack

material on the covers in addition Copying with changes limited to the covers as longas they preserve the title of the Document and satisfy these conditions can be treatedas verbatim copying in other respectsIf the required texts for either cover are too voluminous to fit legibly you should putthe first ones listed (as many as fit reasonably) on the actual cover and continue therest onto adjacent pagesIf you publish or distribute Opaque copies of the Document numbering more than 100you must either include a machine-readable Transparent copy along with each Opaquecopy or state in or with each Opaque copy a publicly-accessible computer-networklocation containing a complete Transparent copy of the Document free of added ma-terial which the general network-using public has access to download anonymously atno charge using public-standard network protocols If you use the latter option youmust take reasonably prudent steps when you begin distribution of Opaque copiesin quantity to ensure that this Transparent copy will remain thus accessible at thestated location until at least one year after the last time you distribute an Opaquecopy (directly or through your agents or retailers) of that edition to the publicIt is requested but not required that you contact the authors of the Document wellbefore redistributing any large number of copies to give them a chance to provide youwith an updated version of the Document

4 MODIFICATIONSYou may copy and distribute a Modified Version of the Document under the conditionsof sections 2 and 3 above provided that you release the Modified Version under preciselythis License with the Modified Version filling the role of the Document thus licensingdistribution and modification of the Modified Version to whoever possesses a copy ofit In addition you must do these things in the Modified VersionA Use in the Title Page (and on the covers if any) a title distinct from that of the

Document and from those of previous versions (which should if there were anybe listed in the History section of the Document) You may use the same title asa previous version if the original publisher of that version gives permission

B List on the Title Page as authors one or more persons or entities responsible forauthorship of the modifications in the Modified Version together with at least fiveof the principal authors of the Document (all of its principal authors if it has lessthan five)

C State on the Title page the name of the publisher of the Modified Version as thepublisher

D Preserve all the copyright notices of the DocumentE Add an appropriate copyright notice for your modifications adjacent to the other

copyright noticesF Include immediately after the copyright notices a license notice giving the public

permission to use the Modified Version under the terms of this License in the formshown in the Addendum below

G Preserve in that license notice the full lists of Invariant Sections and required CoverTexts given in the Documentrsquos license notice

H Include an unaltered copy of this License

Licenses 133

I Preserve the section entitled ldquoHistoryrdquo and its title and add to it an item statingat least the title year new authors and publisher of the Modified Version asgiven on the Title Page If there is no section entitled ldquoHistoryrdquo in the Documentcreate one stating the title year authors and publisher of the Document as givenon its Title Page then add an item describing the Modified Version as stated inthe previous sentence

J Preserve the network location if any given in the Document for public access toa Transparent copy of the Document and likewise the network locations given inthe Document for previous versions it was based on These may be placed in theldquoHistoryrdquo section You may omit a network location for a work that was publishedat least four years before the Document itself or if the original publisher of theversion it refers to gives permission

K In any section entitled ldquoAcknowledgmentsrdquo or ldquoDedicationsrdquo preserve the sec-tionrsquos title and preserve in the section all the substance and tone of each of thecontributor acknowledgments andor dedications given therein

L Preserve all the Invariant Sections of the Document unaltered in their text andin their titles Section numbers or the equivalent are not considered part of thesection titles

M Delete any section entitled ldquoEndorsementsrdquo Such a section may not be includedin the Modified Version

N Do not retitle any existing section as ldquoEndorsementsrdquo or to conflict in title withany Invariant Section

If the Modified Version includes new front-matter sections or appendices that qualifyas Secondary Sections and contain no material copied from the Document you may atyour option designate some or all of these sections as invariant To do this add theirtitles to the list of Invariant Sections in the Modified Versionrsquos license notice Thesetitles must be distinct from any other section titlesYou may add a section entitled ldquoEndorsementsrdquo provided it contains nothing butendorsements of your Modified Version by various partiesmdashfor example statements ofpeer review or that the text has been approved by an organization as the authoritativedefinition of a standardYou may add a passage of up to five words as a Front-Cover Text and a passage of upto 25 words as a Back-Cover Text to the end of the list of Cover Texts in the ModifiedVersion Only one passage of Front-Cover Text and one of Back-Cover Text may beadded by (or through arrangements made by) any one entity If the Document alreadyincludes a cover text for the same cover previously added by you or by arrangementmade by the same entity you are acting on behalf of you may not add another butyou may replace the old one on explicit permission from the previous publisher thatadded the old oneThe author(s) and publisher(s) of the Document do not by this License give permissionto use their names for publicity for or to assert or imply endorsement of any ModifiedVersion

5 COMBINING DOCUMENTSYou may combine the Document with other documents released under this Licenseunder the terms defined in section 4 above for modified versions provided that you

134 OpenSS7 SS7 Stack

include in the combination all of the Invariant Sections of all of the original documentsunmodified and list them all as Invariant Sections of your combined work in its licensenoticeThe combined work need only contain one copy of this License and multiple identicalInvariant Sections may be replaced with a single copy If there are multiple InvariantSections with the same name but different contents make the title of each such sectionunique by adding at the end of it in parentheses the name of the original author orpublisher of that section if known or else a unique number Make the same adjustmentto the section titles in the list of Invariant Sections in the license notice of the combinedworkIn the combination you must combine any sections entitled ldquoHistoryrdquo in the variousoriginal documents forming one section entitled ldquoHistoryrdquo likewise combine any sec-tions entitled ldquoAcknowledgmentsrdquo and any sections entitled ldquoDedicationsrdquo You mustdelete all sections entitled ldquoEndorsementsrdquo

6 COLLECTIONS OF DOCUMENTSYou may make a collection consisting of the Document and other documents releasedunder this License and replace the individual copies of this License in the variousdocuments with a single copy that is included in the collection provided that youfollow the rules of this License for verbatim copying of each of the documents in allother respectsYou may extract a single document from such a collection and distribute it individu-ally under this License provided you insert a copy of this License into the extracteddocument and follow this License in all other respects regarding verbatim copying ofthat document

7 AGGREGATION WITH INDEPENDENT WORKSA compilation of the Document or its derivatives with other separate and independentdocuments or works in or on a volume of a storage or distribution medium does notas a whole count as a Modified Version of the Document provided no compilationcopyright is claimed for the compilation Such a compilation is called an ldquoaggregaterdquoand this License does not apply to the other self-contained works thus compiled withthe Document on account of their being thus compiled if they are not themselvesderivative works of the DocumentIf the Cover Text requirement of section 3 is applicable to these copies of the Documentthen if the Document is less than one quarter of the entire aggregate the DocumentrsquosCover Texts may be placed on covers that surround only the Document within theaggregate Otherwise they must appear on covers around the whole aggregate

8 TRANSLATIONTranslation is considered a kind of modification so you may distribute translationsof the Document under the terms of section 4 Replacing Invariant Sections withtranslations requires special permission from their copyright holders but you mayinclude translations of some or all Invariant Sections in addition to the original versionsof these Invariant Sections You may include a translation of this License provided thatyou also include the original English version of this License In case of a disagreementbetween the translation and the original English version of this License the originalEnglish version will prevail

Licenses 135

9 TERMINATIONYou may not copy modify sublicense or distribute the Document except as expresslyprovided for under this License Any other attempt to copy modify sublicense ordistribute the Document is void and will automatically terminate your rights underthis License However parties who have received copies or rights from you under thisLicense will not have their licenses terminated so long as such parties remain in fullcompliance

10 FUTURE REVISIONS OF THIS LICENSEThe Free Software Foundation may publish new revised versions of the GNU FreeDocumentation License from time to time Such new versions will be similar in spiritto the present version but may differ in detail to address new problems or concernsSee httpwwwgnuorgcopyleftEach version of the License is given a distinguishing version number If the Documentspecifies that a particular numbered version of this License ldquoor any later versionrdquoapplies to it you have the option of following the terms and conditions either of thatspecified version or of any later version that has been published (not as a draft) bythe Free Software Foundation If the Document does not specify a version number ofthis License you may choose any version ever published (not as a draft) by the FreeSoftware Foundation

END OF TERMS AND CONDITIONS

136 OpenSS7 SS7 Stack

How to use this License for your documents

To use this License in a document you have written include a copy of the License in thedocument and put the following copyright and license notices just after the title page

Copyright (C) year your name

Permission is granted to copy distribute andor modify this document

under the terms of the GNU Free Documentation License Version 11

or any later version published by the Free Software Foundation

with the Invariant Sections being list their titles with the

Front-Cover Texts being list and with the Back-Cover Texts being list

A copy of the license is included in the section entitled lsquolsquoGNU

Free Documentation Licensersquorsquo

If you have no Invariant Sections write ldquowith no Invariant Sectionsrdquo instead of saying whichones are invariant If you have no Front-Cover Texts write ldquono Front-Cover Textsrdquo insteadof ldquoFront-Cover Texts being listrdquo likewise for Back-Cover TextsIf your document contains nontrivial examples of program code we recommend releasingthese examples in parallel under your choice of free software license such as the GNUGeneral Public License to permit their use in free software

Indices 137

Indices

Index of Concepts

Aapplications 19apt 48 51Architectures 36authors 5

Bbinary debs 54 63 80binary rpms 51 62 79 80bug reports automatic generation 99bug reports generating 98bug reports stand along generation 100bugs 43bugs history 44bugs known 44bugs reporting 97building 77building source dscs 78building source srpm 77building tar ball 78

Ccheckout cvs 59compatibility 34configuration 61configure environment variables 74configure options 67configuring binary debs 63configuring binary rpms 62configuring source dscs 67configuring source srpm 63configuring tar ball 67conformance 31contributors 5conventions 16credits 4cvs 59

Ddefinitions 16device 28device drivers 28downloading 49downloading apt 51downloading binary rpms 51downloading debian debs 54downloading debian dscs 57downloading source srpm 57

downloading tar ball 58downloading yum 49drivers 28

Ggenerating bug reports 98 100generating bug reports automatically 99generating problem reports 98generating problem reports automatically 99generating problem reports stand alone 100GNULinux Distributions 34

Hhistory 46history bugs 44

Iindices 137installation 47installing 79installing binary debs 80installing binary rpms 79installing tar ball 80introduction 15

KKernel 36known bugs 44known problems 101

Llicense AGPL 104license FDL 130license GNU Affero General Public License 104license GNU Free Documentation License 130license GNU General Public License 115license GPL 115license Lesser General Public License 127license LGPL 127licenses 103licensing 1Linux Fast-STREAMS 37Linux STREAMS 37loading 81

138 OpenSS7 SS7 Stack

Mmaintainer 5manual abstract 1manual audience 1manual disclaimer 4manual intent 1manual notice 1manual objective 1manual revisions 2maturity 42

Oobjective 17organization 15overview 15

Ppost-installation checks 96pre-installation checks 93prerequisites 33problem reports 97problems known 101

Qquick start guide 9

Rreference 19release notes 37release strss7-09a-1 42release strss7-09a-2 41release strss7-09a-3 41release strss7-09a-4 41release strss7-09a5 40release strss7-09a6 39release strss7-09a7 38release strss7-09a8 37releases 33removing 80removing binary debs 80removing binary rpms 80removing source dscs 81removing source srpm 81

removing tar ball 81reporting bugs 97repositories 47repositories apt 48repositories yum 47

Sschedule 45source dscs 57 67 78 81source rpms 57 63 77 81sponsors 4ss7 protocol stack 20strss7-dev-09a8-172i686rpm 62strss7-devel-09a8-172i686rpm 62strss7-doc-09a8-172i686rpm 62strss7-LiS-core-2420-287-09a8-172i686rpm

62strss7-LiS-info-2420-287-09a8-172i686rpm

62strss7-LiS-lib-09a8-172i686rpm 62strss7-LiS-util-09a8-172i686rpm 63strss7-source-09a8-172i686rpm 63strss7-streams-core-2420-287-09a8-172i686-

rpm 62strss7-streams-info-2420-287-09a8-172i686-

rpm 62strss7-streams-lib-09a8-172i686rpm 62strss7-streams-util-09a8-172i686rpm 63

Ttar ball 58 67 78 80 81test suites 93test suites running 97troubleshooting 93

Wweb resources 6

Xx400p t400p t100p e400p e100p te405p te410p 29

Yyum 47 49

Indices 139

Index of Data Types

Aapt-get(8) 38

Y

yum(8) 38

140 OpenSS7 SS7 Stack

Index of Functions and Macros

(Index is nonexistent)

Indices 141

Index of Variables and Constants

AAUTOM4TE 77AUTOTEST 77

BBZIP2 75BZIP2_CMD 75

CCHKCONFIG 75

DDEB_BUILD_ARCH 75DEB_BUILD_GNU_CPU 76DEB_BUILD_GNU_SYSTEM 76DEB_BUILD_GNU_TYPE 76DEB_HOST_ARCH 76DEB_HOST_GNU_CPU 76DEB_HOST_GNU_SYSTEM 76DEB_HOST_GNU_TYPE 76DEPMOD 76DESTDIR 76DPKG 75DPKG_BUILDPACKAGE 75DPKG_SOURCE 75

GGENKSYMS 77GNUPGHOME 74GNUPGUSER 74GPG 74GPGPASSWD 74GZIP 75GZIP_CMD 75

IIRQF_DISABLED 37IRQF_SHARED 37

KKGENKSYMS 77

LLDCONFIG 76LSMOD 76LSOF 76

MMAKEWHATIS 75MODPOST_CACHE 77MODPROBE 76MODULE_VERSION 38

NNM 77

OOBJDUMP 77

PPACKAGE_KVERSION 64PIC 75

RREFER 74RPM 75RPMBUILD 75

SSA_INTERRUPT 37SA_SHIRQ 37SOELIM 74

TTBL 74

142 OpenSS7 SS7 Stack

Index of Files and Programs

libmodules2420-287streams 82

Indices 143

Index of Configuration Options

332bit-libs 68

Aarch 69autotest 68

Bbase-major 74

Cchecks 65 68compress-manpages 68cooked-manpages 65 71

Ddeb-epoch 72deb-release 72deb-topdir 72devel 66 69devfs 70docs 66 69

Ggpg-home 71gpg-user 70

Iindep 69initscripts 68

Kk-archdir 73k-build 72k-config 73

k-debug 65 70k-inline 66 70k-linkage 72k-machdir 73k-modules 72k-modversions 66 70k-optimize 65 73k-release 64 72k-safe 66 70k-sysmap 73k-test 65 70

Llfs 67 74lis 67 73

Mmodules 67 69

Ppkg-distdir 71pkg-epoch 71pkg-release 71public 65 68

Rrpm-epoch 71rpm-extra 71rpm-release 71rpm-topdir 71

Sstrconf-master 74

Ttools 66 69

144 OpenSS7 SS7 Stack

Index of Makefile Targets

Aall 82 83

Ccheck 83check-clean 86checklog 88clean 85compilelog 88csig 92

Ddebs 91dist 85distlog 88distcheck 85distchecklog 88distclean 85doxy 92dsc 91

Fforced-release 87forced-release-sign 87

Iinstall 82 83install-mans 86install-strip 82 83installlog 88installcheck 84installchecklog 88

Mmaintainer-clean 86

mans 86mostlyclean 85

Ppr 89 99

Rrebuild 91rebuildlog 88release 87release-archives 89release-clean 87release-clean-archives 90release-sign 87release-sign-archives 90release-signlog 89releaselog 88remove 84removelog 88resign 91resignlog 88retest 84rpms 90

Ssend-pr 89sign 90sigs 91srpm 90srpm-sign 90srpmlog 88

Uuninstall 84uninstall-mans 86uninstalllog 88

Indices 145

Index of Authors

Bidulock Brian 5

146 OpenSS7 SS7 Stack

Index of Manual Pages Referenced

Aapt(8) 9 47 51autoconf(1) 9 52 55 58 60 61 67 79 84autom4te(1) 77automake(1) 60 65 66 67 69 70 80 81 83

84 85 86 87 88autoreconf(1) 83

Bbzip2(1) 75

Cchkconfig(8) 75cvs(1) 9 59

Ddepmod(8) 76devfsd(1) 66devfsd(8) 70doxygen(1) 92dpkg(1) 47 49 58 61 69 71 75 84dpkg(8) 80 81dpkg-buildpackage(1) 75dpkg-source(1) 75

Eethereal(1) 46

Ggcc(1) 11genksyms(8) 60 77gettext(1) 67git(1) 9gpg(1) 70grefer(1) 60 65 71groff(1) 60 65 71gzip(1) 75

Iinit_install(8) 75init_remove(8) 75

Lldconfig(8) 76libtool(1) 67lsmod(8) 76lsof(1) 76

Mmake(1) 61 68makewhatis(8) 75modpost(1) 77modprobe(8) 76

Nnm(1) 77

Oobjdump(1) 77

Ppcap(3) 46pic(1) 65 71 75

Rrefer(1) 65 71 74rpm(1) 47 49 51 58 61 69 71 75 77 79 80

84 87 90rpm(8) 63 79rpmbuild(1) 64 75

Ssoelim(1) 65 71 74STREAMS(9) 1

Ttar(1) 58 85tbl(1) 65 71 74tee(1) 87texinfo(1) 66 69

Wwget(1) 47 58wireshark(1) 46

Yyast(8) 47yum(8) 9 47 49 51

Zzypper(8) 47 49

  • Preface
    • Notice
    • Abstract
      • Objective
      • Intent
      • Audience
        • Revisions
          • Version Control
          • ISO 9000 Compliance
            • Disclaimer
              • US Government Restricted Rights
                • Acknowledgements
                  • Sponsors
                  • Contributors
                    • Authors
                    • Maintainer
                    • Web Resources
                      • Quick Start Guide
                        • OpenSS7 SS7 Stack
                          • Release
                          • Prerequisites
                          • Installation
                          • Brief Installation Instructions
                          • Detailed Installation Instructions
                              • Introduction
                                • Overview
                                • Organization of this Manual
                                • Conventions and Definitions
                                  • Objective
                                  • Reference
                                    • Applications
                                    • SS7 Protocol Stack
                                      • Signalling Data Link (SDL)
                                      • Signalling Data Terminal (SDT)
                                      • Signalling Link (SL)
                                      • Message Transfer Part (MTP)
                                      • Signalling Connection Control Part (SCCP)
                                      • Transaction Capabilities Application Part (TCAP)
                                      • Base Station System Application Part (BSSAP)
                                        • Device Drivers
                                          • Digium Drivers
                                          • SeaLevel ACB56 Drivers
                                              • Conformance
                                              • Releases
                                                • Prerequisites
                                                • Compatibility
                                                  • GNULinux Distributions
                                                  • Kernel
                                                  • Architectures
                                                  • Linux STREAMS
                                                  • Linux Fast-STREAMS
                                                    • Release Notes
                                                      • Major changes for release strss7-09a8
                                                      • Major changes for release strss7-09a7
                                                      • Major changes for release strss7-09a6
                                                      • Major changes for release strss7-09a5
                                                      • Major changes for release strss7-09a-4
                                                      • Major changes for release strss7-09a-3
                                                      • Major changes for release strss7-09a-2
                                                      • Initial release strss7-09a-1
                                                        • Maturity
                                                          • Pre-Alpha Releases
                                                          • Alpha Releases
                                                          • Beta Releases
                                                          • Gamma Releases
                                                          • Production Releases
                                                          • Unstable Releases
                                                            • Bugs
                                                              • Defect Notices
                                                              • Known Defects
                                                              • Defect History
                                                                • Schedule
                                                                • History
                                                                  • Installation
                                                                    • Repositories
                                                                      • Repositories for YUM
                                                                      • Repositories for APT
                                                                        • Downloading
                                                                          • Downloading with YUM
                                                                          • Downloading with APT
                                                                          • Downloading the Binary RPM
                                                                          • Downloading the Debian DEB
                                                                          • Downloading the Source RPM
                                                                          • Downloading the Debian DSC
                                                                          • Downloading the Tar Ball
                                                                          • Downloading from CVS
                                                                            • Configuration
                                                                              • Configuring the Binary RPM
                                                                              • Configuring the Debian DEB
                                                                              • Configuring the Source RPM
                                                                              • Configuring the Debian DSC
                                                                              • Configuring the Tar Ball
                                                                                • Configure Options
                                                                                • Environment Variables
                                                                                • Build
                                                                                    • Building
                                                                                      • Building from the Source RPM
                                                                                      • Building from the Debian DSC
                                                                                      • Building from the Tar Ball
                                                                                        • Native Build
                                                                                        • Cross-Build
                                                                                            • Installing
                                                                                              • Installing the Binary RPM
                                                                                              • Installing the Debian DEB
                                                                                              • Installing the Tar Ball
                                                                                                • Removing
                                                                                                  • Removing the Binary RPM
                                                                                                  • Removing the Debian DEB
                                                                                                  • Removing the Source RPM
                                                                                                  • Removing the Debian DSC
                                                                                                  • Removing the Tar Ball
                                                                                                    • Loading
                                                                                                      • Normal Module Loading
                                                                                                        • Linux Fast-STREAMS Module Loading
                                                                                                        • Linux STREAMS Module Loading
                                                                                                            • Maintenance
                                                                                                              • Makefile Targets
                                                                                                                • User Targets
                                                                                                                • Maintainer Targets
                                                                                                                • Clean Targets
                                                                                                                • Manual Page Targets
                                                                                                                • Release Targets
                                                                                                                • Logging Targets
                                                                                                                • Problem Report Targets
                                                                                                                • Release Archive Targets
                                                                                                                • RPM Build Targets
                                                                                                                • Debian Build Targets
                                                                                                                • Documentation Targets
                                                                                                                  • Troubleshooting
                                                                                                                    • Test Suites
                                                                                                                      • Pre-installation Checks
                                                                                                                        • Pre-Installation System Checks
                                                                                                                        • Pre-Installation Maintenance Checks
                                                                                                                        • Specific Pre-Installation Checks
                                                                                                                          • Post-installation Checks
                                                                                                                            • Running Test Suites
                                                                                                                                • Problem Reports
                                                                                                                                  • Problem Report Guidelines
                                                                                                                                  • Generating Problem Reports
                                                                                                                                  • Automatic Problem Reports
                                                                                                                                  • Stand Alone Problem Reports
                                                                                                                                    • Known Problems
                                                                                                                                      • Licenses
                                                                                                                                        • GNU Affero General Public License
                                                                                                                                          • Preamble
                                                                                                                                          • How to Apply These Terms to Your New Programs
                                                                                                                                            • GNU General Public License
                                                                                                                                              • Preamble
                                                                                                                                              • How to Apply These Terms to Your New Programs
                                                                                                                                                • GNU Lesser General Public License
                                                                                                                                                  • Terms and Conditions
                                                                                                                                                    • GNU Free Documentation License
                                                                                                                                                      • Preamble
                                                                                                                                                      • Terms and Conditions for Copying Distribution and Modification
                                                                                                                                                      • How to use this License for your documents
                                                                                                                                                          • Indices
                                                                                                                                                            • Index of Concepts
                                                                                                                                                            • Index of Data Types
                                                                                                                                                            • Index of Functions and Macros
                                                                                                                                                            • Index of Variables and Constants
                                                                                                                                                            • Index of Files and Programs
                                                                                                                                                            • Index of Configuration Options
                                                                                                                                                            • Index of Makefile Targets
                                                                                                                                                            • Index of Authors
                                                                                                                                                            • Index of Manual Pages Referenced
Page 5: OpenSS7 SS7 Stack Installation and Reference Manual · 2008. 10. 31. · vi OpenSS7 SS7 Stack 6.8.1.5 Release Targets:::::86 6.8.1.6 Logging Targets::::: 87 6.8.1.7 Problem Report

iv OpenSS7 SS7 Stack

327 Base Station System Application Part (BSSAP) 2733 Device Drivers 28

331 Digium Drivers 29332 SeaLevel ACB56 Drivers 30

4 Conformance 31

5 Releases 3351 Prerequisites 3352 Compatibility 34

521 GNULinux Distributions 34522 Kernel 36523 Architectures 36524 Linux STREAMS 37525 Linux Fast-STREAMS 37

53 Release Notes 37Major changes for release strss7-09a8 37Major changes for release strss7-09a7 38Major changes for release strss7-09a6 39Major changes for release strss7-09a5 40Major changes for release strss7-09a-4 41Major changes for release strss7-09a-3 41Major changes for release strss7-09a-2 41Initial release strss7-09a-1 42

54 Maturity 42541 Pre-Alpha Releases 42542 Alpha Releases 42543 Beta Releases 42544 Gamma Releases 42545 Production Releases 43546 Unstable Releases 43

55 Bugs 43551 Defect Notices 43552 Known Defects 44553 Defect History 44

56 Schedule 4557 History 46

v

6 Installation 4761 Repositories 47

611 Repositories for YUM 47612 Repositories for APT 48

62 Downloading 49621 Downloading with YUM 49622 Downloading with APT 51623 Downloading the Binary RPM 51624 Downloading the Debian DEB 54625 Downloading the Source RPM 57626 Downloading the Debian DSC 57627 Downloading the Tar Ball 58628 Downloading from CVS 59

63 Configuration 61631 Configuring the Binary RPM 62632 Configuring the Debian DEB 63633 Configuring the Source RPM 63634 Configuring the Debian DSC 67635 Configuring the Tar Ball 67

6351 Configure Options 676352 Environment Variables 746353 Build 77

64 Building 77641 Building from the Source RPM 77642 Building from the Debian DSC 78643 Building from the Tar Ball 78

6431 Native Build 796432 Cross-Build 79

65 Installing 79651 Installing the Binary RPM 79652 Installing the Debian DEB 80653 Installing the Tar Ball 80

66 Removing 80661 Removing the Binary RPM 80662 Removing the Debian DEB 80663 Removing the Source RPM 81664 Removing the Debian DSC 81665 Removing the Tar Ball 81

67 Loading 81671 Normal Module Loading 81

6711 Linux Fast-STREAMS Module Loading 826712 Linux STREAMS Module Loading 82

68 Maintenance 82681 Makefile Targets 83

6811 User Targets 836812 Maintainer Targets 856813 Clean Targets 856814 Manual Page Targets 86

vi OpenSS7 SS7 Stack

6815 Release Targets 866816 Logging Targets 876817 Problem Report Targets 896818 Release Archive Targets 896819 RPM Build Targets 9068110 Debian Build Targets 9168111 Documentation Targets 92

7 Troubleshooting 9371 Test Suites 93

711 Pre-installation Checks 937111 Pre-Installation System Checks 937112 Pre-Installation Maintenance Checks 947113 Specific Pre-Installation Checks 94

712 Post-installation Checks 967121 Running Test Suites 97

72 Problem Reports 97721 Problem Report Guidelines 98722 Generating Problem Reports 98723 Automatic Problem Reports 99724 Stand Alone Problem Reports 100

73 Known Problems 101

Licenses 103GNU Affero General Public License 104

Preamble 104How to Apply These Terms to Your New Programs 114

GNU General Public License 115Preamble 115How to Apply These Terms to Your New Programs 126

GNU Lesser General Public License 127Terms and Conditions 127

GNU Free Documentation License 130Preamble 130Terms and Conditions for Copying Distribution and Modification

130How to use this License for your documents 136

Indices 137Index of Concepts 137Index of Data Types 139Index of Functions and Macros 140Index of Variables and Constants 141Index of Files and Programs 142Index of Configuration Options 143Index of Makefile Targets 144Index of Authors 145Index of Manual Pages Referenced 146

Preface 1

Preface

Notice

This package is released and distributed under the AGPL (see [GNU Affero General PublicLicense] page 104) Please note however that there are different licensing terms for themanual pages and some of the documentation (derived from OpenGroup1 publications andother sources) Consult the permission notices contained in the documentation for moreinformationThis manual is released under the FDL (see [GNU Free Documentation License] page 130)with no sections invariant

Abstract

This manual provides a Installation and Reference Manual for OpenSS7 SS7 Stack

Objective

The objective of this manual is to provide a guide for the STREAMS programmer whendeveloping STREAMS modules drivers and application programs for OpenSS7 SS7 StackThis guide provides information to developers on the use of the STREAMS mechanism atuser and kernel levelsSTREAMS was incorporated in UNIX System V Release 3 to augment the character in-putoutput (IO) mechanism and to support development of communication servicesSTREAMS provides developers with integral functions a set of utility routines and facilitiesthat expedite software design and implementation

Intent

The intent of this manual is to act as an introductory guide to the STREAMS programmerIt is intended to be read alone and is not intended to replace or supplement the OpenSS7 SS7Stack manual pages For a reference for writing code the manual pages (see STREAMS(9))provide a better reference to the programmer Although this describes the features of theOpenSS7 SS7 Stack package OpenSS7 Corporation is under no obligation to provide anysoftware system or feature listed herein

Audience

This manual is intended for a highly technical audience The reader should already befamiliar with Linux kernel programming the Linux file system character devices driverinput and output interrupts software interrupt handling scheduling process contextsmultiprocessor locks etcThe guide is intended for network and systems programmers who use the STREAMSmechanism at user and kernel levels for Linux and UNIX system communication servicesReaders of the guide are expected to possess prior knowledge of the Linux and UNIX systemprogramming networking and data communication

1 Formerly XOpen and UNIX International

2 OpenSS7 SS7 Stack

Revisions

Take care that you are working with a current version of this manual you will not benotified of updates To ensure that you are working with a current version contact theAuthor or check The OpenSS7 Project website for a current versionA current version of this manual is normally distributed with the OpenSS7 SS7 Stackpackage strss7-09a82

Version Controlstrss7texiv

Revision 09227 2008-09-20 110426 brian

- added package patchlevel

Revision 09226 2008-08-03 060328 brian

- protected agains texinfo commands in log entries

Revision 09225 20080727 084858 brian

- no invariant sections more libtool ignores

Revision 09224 2008-04-29 071035 brian

- updating headers for release

Revision 09223 2008-04-25 115046 brian

- updates to AGPLv3

Revision 09222 20070815 051816 brian

- GPLv3 updates

Revision 09221 20070812 064407 brian

- updated licenses in manuals

Revision 09220 20070803 133451 brian

- manual updates put ss7 modules in public release

Revision 09219 20070228 063035 brian

- updates and corrections ifdef instead of if

Revision 09218 20061002 113129 brian

- changes to get master builds working for RPM and DEB

- added outside licenses to package documentation

- added LICENSE automated release file

- copy MANUAL to source directory

- add and remove devices in -dev debian subpackages

- get debian rules working better

- release library version files

- added notes to debian changelog

- corrections for cooked manual pages in spec files

- added release documentation to spec and rules files

- copyright header updates

- moved controlling tty checks in stream head

- missing some defines for LiS build in various source files

- added OSI headers to striso package

- added includes and manual page paths to acincludes for various packages

- added sunrpc uidlpi uinpi and uitpi licenses to documentation and release

files

2 httpwwwopenss7orgtarballsstrss7-09a8tarbz2

Preface 3

- moved pragma weak statements ahead of declarations

- changes for master build of RPMS and DEBS with LiS

Revision 09217 20060828 104655 brian

- correction

Revision 09216 20060828 103246 brian

- updated references

Revision 09215 20060827 122638 brian

- finalizing auto release files

Revision 09214 20060826 091650 brian

- better release file generation

Revision 09213 20060823 110028 brian

- added preface corrections and updates for release

Revision 09212 20060822 124409 brian

- documentation updates

Revision 09211 20060322 100200 brian

- added makefile target index

Revision 09210 20060303 120609 brian

- 3264-bit compatibility

Revision 0929 20050708 131556 brian

- updates to documentation

Revision 0928 20050624 133859 brian

- added troubleshooting section to manuals

Revision 0927 20050514 083346 brian

- copyright header correction

Revision 0926 20050412 092906 brian

- corrections

Revision 0925 20050411 204840 brian

- documentation updates and corrections

Revision 0924 20050315 005650 brian

- Updated version numbering in texinfo files

Revision 0923 20050315 005147 brian

- Updated version numbering in texinfo files

Revision 0922 20050217 200011 brian

- Fixes for texi documentation

Revision 0921 20050126 082418 brian

- Changed name of texinfo file

Revision 09 20050126 082418 brian

file strss7texi was initially added on branch OpenSS7-0_9_2

4 OpenSS7 SS7 Stack

ISO 9000 Compliance

Only the TEX texinfo or roff source for this manual is controlled An opaque (printedpostscript or portable document format) version of this manual is an UNCONTROLLEDVERSION

Disclaimer

OpenSS7 Corporation disclaims all warranties with regard to this documentation includingall implied warranties of merchantability fitness for a particular purpose non-infringementor title that the contents of the manual are suitable for any purpose or that the implemen-tation of such contents will not infringe on any third party patents copyrights trademarksor other rights In no event shall OpenSS7 Corporation be liable for any direct indirectspecial or consequential damages or any damages whatsoever resulting from loss of usedata or profits whether in an action of contract negligence or other tortious action arisingout of or in connection with any use of this manual or the performance or implementationof the contents thereof

OpenSS7 Corporation reserves the right to revise this software and documentation for anyreason including but not limited to conformity with standards promulgated by variousagencies utilization of advances in the state of the technical arts or the reflection of changesin the design of any techniques or procedures embodied described or referred to hereinOpenSS7 Corporation is under no obligation to provide any feature listed herein

US Government Restricted Rights

If you are licensing this Software on behalf of the US Government (Government) thefollowing provisions apply to you If the Software is supplied by the Department of Defense(DoD) it is classified as Commercial Computer Software under paragraph 252227-7014of the DoD Supplement to the Federal Acquisition Regulations (DFARS) (or any successorregulations) and the Government is acquiring only the license rights granted herein (thelicense rights customarily provided to non-Government users) If the Software is suppliedto any unit or agency of the Government other than DoD it is classified as RestrictedComputer Software and the Governmentrsquos rights in the Software are defined in paragraph52227-19 of the Federal Acquisition Regulations (FAR) (or any successor regulations) orin the cases of NASA in paragraph 1852227-86 of the NASA Supplement to the FAR (orany successor regulations)

Acknowledgements

As with most open source projects this project would not have been possible withoutthe valiant efforts and productive software of the Free Software Foundation and the LinuxKernel Community

Sponsors

Funding for completion of the OpenSS7 OpenSS7 SS7 Stack package was provided in partby

bull OpenSS7 Corporation

Additional funding for The OpenSS7 Project was provided by

Preface 5

bull OpenSS7 Corporationbull Lockheed Martin Cobull Motorolabull HOB Internationalbull Comverse Ltdbull Sonus Networks Incbull France Telecombull SS8 Networks Incbull Nortel Networksbull Verisignbull eServGlobal (NZ) Pty Ltdbull NetCentrex S Abull SysMaster Corporationbull GeoLink SAbull AirNet Communicationsbull TECOREbull Tumsan Oybull Vodare Ltdbull Excel Telecommunications

Contributors

The primary contributor to the OpenSS7 OpenSS7 SS7 Stack package is Brian F G Bidu-lock The following is a list of significant contributors to The OpenSS7 Project

minus Per Berquistminus John Boydminus Chuck Wintersminus Peter Courtneyminus Tom Chandlerminus Gurol Ackmanminus Kutluk Testiciogluminus John Wenkerminus Others

Authors

The authors of the OpenSS7 OpenSS7 SS7 Stack package includeminus Brian Bidulock

See [Index of Authors] page 145 for a complete listing and cross-index of authors to sectionsof this manual

Maintainer

The maintainer of the OpenSS7 OpenSS7 SS7 Stack package isminus Brian Bidulock

Please send bug reports to bugsopenss7org using the lsquosend-prrsquo script included in thepackage only after reading the lsquoBUGSrsquo file in the release or See Section 72 [Problem Re-ports] page 97

6 OpenSS7 SS7 Stack

Web Resources

The OpenSS7 Project provides a website dedicated to the software packages released by theOpenSS7 Project

Bug Reports

Please send bug reports to bugsopenss7org using the lsquosend-prrsquo script included inthe OpenSS7 SS7 Stack package only after reading the lsquoBUGSrsquo file in the release or SeeSection 72 [Problem Reports] page 97 You can access the OpenSS7 GNATS databasedirectly via the web however the preferred method for sending new bug reports is viamail with the lsquosend-prrsquo script

Mailing Lists

The OpenSS7 Project provides a number of general discussion Mailing Lists for discussionconcerning the OpenSS7 OpenSS7 SS7 Stack package as well as other packages released byThe OpenSS7 ProjectThese are mailman mailing lists and so have convenient web interfaces for subscribers tocontrol their settings See httpwwwopenss7orgmailinglisthtmlThe mailing lists are as follows

lsquoopenss7rsquo The lsquoopenss7rsquo mailing list is for general enquiries information exchange andannouncements regarding the OpenSS7 Project This is our original mailinglist and takes the highest amount of traffic

lsquoopenss7-announcersquoThe lsquoopenss7-announcersquo mailing list is for announcements related to theOpenSS7 Project This list will accept announcements posted by subscribersSubscribe to this list if you are interested in announcements from theOpenSS7 Project subscribers and sponsors related to the OpenSS7 Projector STREAMS SS7 SIGTRAN or SCTP in general

lsquoopenss7-cvsrsquoThe lsquoopenss7-cvsrsquo mailing list is for automatic CVS log reporting You mustget permission of the owner to subscribe to this list Subscribers are not allowedto post to this list this is merely for distributing notification of changes to theCVS repositoryh

lsquoopenss7-developrsquoThe lsquoopenss7-developrsquo mailing list is for email exchange related to the de-velopment projects under the OpenSS7 Project This includes developmentrequests proposals requests for comment or proposal Subscribe to this listif you are interested in ongoing development details regarding the OpenSS7Project

lsquoopenss7-testrsquoThe lsquoopenss7-testrsquo mailing list is for email exchange related to the testingof code under the OpenSS7 Project This specifically relates to conformancetesting verification testing interoperability testing and beta testing Subscribeto this list if you are interested in participating in and receiving ongoing detailsof test activities under the OpenSS7 Project

Preface 7

lsquoopenss7-bugsrsquoThe lsquoopenss7-bugsrsquo mailing list is specifically tailored to bug tracking Themailing list takes a feed from the OpenSS7 GNATS bug tracking system andaccepts posting of responses to bug reports tracking and resolution Subscribeto this list if you are interested in receiving detailed OpenSS7 release code bugtracking information This list is not archived for historical information onproblem reports see our GNATS databases

lsquoopenss7-updatesrsquoThe lsquoopenss7-updatesrsquo mailing list provides updates on OpenSS7 Project codereleases and ongoing activities Subscribers are not allowed to post to this listthis list is for official OpenSS7 Project announcements only Subscribe to thislist if you are interested in receiving updates concerning official releases andactivities of the OpenSS7 Project

lsquoopenss7-streamsrsquoThe lsquoopenss7-streamsrsquo mailing list is for email exchange related to theSTREAMS development projects under the OpenSS7 Project This includesdevelopment requests proposals requests for comment or proposal Subscribeto this list if you are interested in ongoing development details regarding theOpenSS7 Project STREAMS components

lsquolinux-streamsrsquoThe lsquolinux-streamsrsquo mailing list is for mail exchange related to LinuxFast-STREAMS or Linux STREAMS This includes patches developmentrequests proposals requests for comment or proposal Subscribe to this list ifyou are interested in ongoing development details regarding the STREAMSfor Linux components This is the the new (September 2006) home of thelsquolinux-streamsrsquo list formerly of gsycesceturjces

Spam

To avoid spam being sent to the members of the OpenSS7 mailing list(s) we have blockedmail from non-subscribers Please subscribe to the mailing list before attempting to postto them (Attempts to post when not subscribed get bounced)As an additional measure against spam subscriber lists for all OpenSS7 mailing lists arenot accessible to non-subscribers for most lists subscriber lists are only accessible to thelist administrator This keeps your mailing address from being picked off our website bybulk mailers

Acceptable Use Policy

It is acceptable to post professional and courteous messages regarding the OpenSS7 packageor any general information or questions concerning STREAMS SS7 SIGTRAN SCTP ortelecommunications applications in general

Large Attachments

The mailing list is blocked from messages of greater than 40k If you have attachments(patches test programs etc) and you mail them to the list it will bounce to the listadministrator If you are interested in making your patches test programs test results or

8 OpenSS7 SS7 Stack

other large attachments available to the members of the mailing list state in the messagethat you would like them posted and the list administrator will place them in the mailarchives

Quick Start Guide 9

Quick Start Guide

OpenSS7 SS7 Stack

Package strss7-09a8 was released under AGPLv3 2008-10-31

The OpenSS7 SS7 Stack package includes a wide array of kernel modules SVR 42STREAMS drivers modules libraries utilities test programs daemons and developmentenvironment for the development and execution of Signalling System Number 7 (SS7)Signalling Transport (SIGTRAN) Integrated Services Digital Network (ISDN) and Voiceover IP (VoIP) protocol stack components and applications for the Linux Fast-STREAMSenvironment

However the current package has had ISDN components moved to the lsquostrisdnrsquo packageSIGTRAN components moved to the lsquosigtranrsquo package and VoIP components moved tothe lsquostrvoiprsquo package Only SS7 components remain in the lsquostrss7rsquo package

This distribution is only currently applicable to Linux 24 and 26 kernels and was tar-geted at ix86 x86_64 ppc and ppc64 architectures but should build and install for otherarchitectures as well

Release

This is the strss7-09a8 package released 2008-10-31 This lsquo09a8rsquo release and thelatest version can be obtained from the download area of The OpenSS7 Project websiteusing a command such as

$gt wget httpwwwopenss7orgtarballsstrss7-09a8tarbz2

The release is available as an autoconf(1) tarball lsquosrcrpmrsquo or lsquodscrsquo as a set of binarylsquorpmrsquos or lsquodebrsquos or as a yum(8) or apt(8) repository See the download page for theautoconf(1) tarballs lsquosrcrpmrsquos lsquodscrsquos or repository access instructions See the strss7package page for tarballs source and binary packages

Please see the lsquoNEWSrsquo file for release notes and history of user visible changes for the currentversion and the lsquoChangeLogrsquo file for a more detailed history of implementation changesThe lsquoTODOrsquo file lists features not yet implemented and other outstanding items

Please see the lsquoINSTALLrsquo lsquoINSTALL-strss7rsquo and lsquoREADME-makersquo files (or see Chapter 6[Installation] page 47) for installation instructions

When working from cvs(1) or git(1) please see the lsquoREADME-cvsrsquo file (or see Section 628[Downloading from CVS] page 59) An abbreviated installation procedure that works formost applications appears below

This release of the package is published strictly under Version 3 of the GNU Affero PublicLicense which can be found in the file lsquoCOPYINGrsquo Package specific licensing terms (if any)can be found in the file lsquoLICENSESrsquo Please respect these licensing arrangements If youare interested in different licensing terms please contact the copyright holder or OpenSS7Corporation ltsalesopenss7comgt

See lsquoREADME-alpharsquo (if it exists) for alpha release information

10 OpenSS7 SS7 Stack

Prerequisites

The quickest and easiest way to ensure that all prerequisites are met is to download andinstall this package from within the OpenSS7 Master Package openss7-092G insteadof separatelyPrerequisites for the OpenSS7 SS7 Stack package are as follows1 Linux distribution somewhat Linux Standards Base compliant with a 24 or 26 kernel

and the appropriate tool chain for compiling out-of-tree kernel modules Most recentLinux distributions are usable out of the box but some development packages must beinstalled For more information see Section 52 [Compatibility] page 34

minus A fairly LSB compliant GNULinux distribution1

minus Linux 24 kernel (2410 - 2427) orminus Linux 26 kernel (263 - 2626)minus glibc2 or betterminus GNU groff (for man pages)2

minus GNU texinfo (for info files)minus GNU bison and flex (for config programs)minus net-snmp (for SNMP agents)3

(Note If you acquired strss7 a part of the OpenSS7 Master Package then the dependencieslisted below will already have been met by unpacking the master package)2 OpenSS7 Linux Fast-STREAMS streams-09244

3 OpenSS7 STREAMS Compatibility Modules strcompat-09274 OpenSS7 STREAMS XNS strxns-09275 OpenSS7 STREAMS XTITLI strxnet-092126 OpenSS7 STREAM Network Services Library strnsl-0924 (Optional)7 OpenSS7 STREAMS Sockets strsock-0924 (Optional)8 OpenSS7 STREAMS INET strinet-09279 OpenSS7 STREAMS SCTP strsctp-0929

10 OpenSS7 STREAMS Channels strchan-092411 OpenSS7 STREAMS X25 strx25-092112 OpenSS7 STREAMS ISO striso-092413 OpenSS7 STREAMS ISDN strisdn-0924

When configuring and building multiple OpenSS7 Project release packages place all of thesource packages (unpacked tarballs) at the same directory level and all build directories atthe same directory level (eg all source packages under lsquousrsrcrsquo)When installing packages that install as kernel modules it is necessary to have the correctkernel development package installed For the following distributions use the followingcommands

1 See Section 521 [GNULinux Distributions] page 34 for more information2 If you are using a Debian release please make sure to install the groff extension package (lsquogroff_extrsquo) as

it contains the refer or grefer commands necessary for including references in the manual pages3 A wide range of net-snmp releases are supported from UCD-SNMP 425 through net-snmp 544 Although at one time this package supported LiS LiS is now deprecated and unsupported

Quick Start Guide 11

Ubuntu $gt apt-get install linux-headersDebian $gt apt-get install kernel-headersFedora $gt yum install kernel-devel

You also need the same version of gcc(1) compiler with which the kernel was built If it isnot the default add lsquoCC=kgccrsquo on the line after lsquoconfigurersquo for example

$gt strss7-09a8configure CC=rsquogcc-34rsquo

Installation

The following commands will download configure build check install validate uninstalland remove the package

$gt wget httpwwwopenss7orgtarballsstrss7-09a8tarbz2$gt tar -xjvf strss7-09a8tarbz2$gt mkdir build$gt pushd build$gt strss7-09a8configure --enable-autotest$gt make$gt make check$gt sudo make install$gt sudo make installcheck$gt sudo make uninstall$gt popd$gt sudo rm -rf build$gt rm -rf strss7-09a8$gt rm -f strss7-09a8tarbz2

If you have problems try building with the logging targets instead If the make of a loggingtarget fails an automatic problem report will be generated that can be mailed to TheOpenSS7 Project5 Installation steps using the logging targets proceed as follows

$gt wget httpwwwopenss7orgtarballsstrss7-09a8tarbz2$gt tar -xjvf strss7-09a8tarbz2$gt mkdir build$gt pushd build$gt strss7-09a8configure --enable-autotest$gt make compilelog$gt make checklog$gt sudo make installlog$gt sudo make installchecklog$gt sudo make uninstalllog$gt popd$gt sudo rm -rf build$gt rm -rf strss7-09a8$gt rm -f strss7-09a8tarbz2

See lsquoREADME-makersquo for additional specialized make targets

5 Please see Section 72 [Problem Reports] page 97 or the file lsquoPROBLEMSrsquo in the release directory for moreinformation on filing a proper Problem Report

12 OpenSS7 SS7 Stack

For custom applications see the lsquoINSTALLrsquo and lsquoINSTALL-strss7rsquo files or the see Chapter 6[Installation] page 47 as listed below If you encounter troubles see Chapter 7 [Trou-bleshooting] page 93 before issuing a bug report

Brief Installation Instructions

The OpenSS7 SS7 Stack package is available from the downloads area of The OpenSS7Project website using a command such as

$gt wget httpwwwopenss7orgtarballsstrss7-09a8tarbz2

Unpack the tarball using a command such as$gt tar -xjvf strss7-09a8tarbz2

The tarball will unpack into the relative subdirectory named after the package name strss7-09a8The package builds using the GNU autoconf utilities and the lsquoconfigurersquo script To buildthe package we recommend using a separate lsquobuildrsquo directory as follows

$gt mkdir build$gt cd build$gt strss7-09a8configure

In general the package configures and builds without adding any special options to thelsquoconfigurersquo script For general options to the lsquoconfigurersquo script see the GNU lsquoINSTALLrsquofile in the distribution

$gt less strss7-09a8INSTALL

For specific options to the lsquoconfigurersquo script see the lsquoINSTALL-strss7rsquo file in the distri-bution or simply execute the configure script with the lsquo--helprsquo option like so

$gt strss7-09a8configure --help

After configuring the package the package can be compiled simply by issuing the lsquomakersquocommand

$gt make

Some specialized makefile targets exists see the lsquoREADME-makersquo file in the distribution orsimply invoke the lsquohelprsquo target like so

$gt make help | less

After successfully building the package the package can be checked by invoking the lsquocheckrsquomake target like so

$gt make check

After successfully checking the package the package can be installed by invoking thelsquoinstallrsquo make target (as root) like so

$gt sudo make install

The test suites that ship with the package can be invoked after the package has been installedby invoking the lsquoinstallcheckrsquo target This target can either be invoked as root or as anormal user like so

$gt make installcheck

(Note you must add the lsquo--enable-autotestrsquo flag to lsquoconfigurersquo above for the test suitesto be invoked with lsquomake installcheckrsquo)The package can be cleanly removed by invoking the lsquouninstallrsquo target (as root)

Quick Start Guide 13

$gt sudo make uninstall

Then the build directory and tarball can be simply removed$gt cd $gt rm -rf build$gt rm -rf strss7-09a8$gt rm -f strss7-09a8tarbz2

Detailed Installation Instructions

More detailed installation instructions can be found in the Chapter 6 [Installation] page 47contained in the distribution in lsquotextrsquo lsquoinforsquo lsquohtmlrsquo and lsquopdfrsquo formats

$gt cd strss7-09a8$gt less docmanualstrss7txt$gt lynx docmanualstrss7html$gt info docmanualstrss7info$gt xpdf docmanualstrss7pdf

The lsquotextrsquo version of the manual is always available in the lsquoMANUALrsquo file in the releaseThe current manual is also always available online from The OpenSS7 Project website at

$gt lynx httpwwwopenss7orgstrss7_manualhtml

Chapter 1 Introduction 15

1 Introduction

This manual documents the design implementation installation operation and future de-velopment schedule of the OpenSS7 SS7 Stack package

11 Overview

This manual documents the design implementation installation operation and future de-velopment of the OpenSS7 SS7 Stack packageThe OpenSS7 SS7 Stack package is an SS7 SIGTRAN ISDN VoIP package for Linux thatcan be used with Linux Fast-STREAMS1 or Linux STREAMS2 It includes developmenttools header files and manual pages forbull Communications Device Interface (CDI)bull Data Link Provider Interface (DLPI)bull Network Provider Interface (NPI)bull Transport Provider Interface (TPI)bull Signalling Data Link Interface (SDLI)bull Signalling Data Terminal Interface (SDTI)bull Message Transfer Part Interface (MTPI)bull Call Control Interface (CCI)bull Transaction Interface (TRI)bull Transaction Component Interface (TCI) andbull Mobile Application Part Interface (MAPI)

Also it provides STREAMS drivers and modules for SS7 SIGTRAN ISDN and VoIPincludingbull

The OpenSS7 SS7 Stack package is essential to the development and support of SS7 andISDN networking and call control modules and drivers and provides a fundamental set ofSS7 header files and manual pages for such developmentThe OpenSS7 SS7 Stack does not provide the STREAMS components See the manualsreferenced above

12 Organization of this Manual

This manual is organized (loosely) into several sections as followsChapter 1 [Introduction] page 15 This introductionChapter 2 [Objective] page 17 Objective of the packageChapter 3 [Reference] page 19 Contents of the packageChapter 4 [Conformance] page 31 Conformance of the packageChapter 5 [Releases] page 33 Releases of the packageChapter 6 [Installation] page 47 Installation of the packageChapter 7 [Troubleshooting] page 93 Troubleshooting of the package

1 See Section ldquoAbout This Manualrdquo in Linux Fast-STREAMS (LfS) Reference Manual2 See Section ldquoAbout This Manualrdquo in Linux STREAMS (LiS) Reference Manual

16 OpenSS7 SS7 Stack

13 Conventions and Definitions

This manual uses texinfo typographic conventions

Chapter 2 Objective 17

2 Objective

Chapter 3 Reference 19

3 Reference

31 Applications

20 OpenSS7 SS7 Stack

32 SS7 Protocol Stack

The SS7 Protocol Stack consists of a number of components

Chapter 3 Reference 21

321 Signalling Data Link (SDL)

22 OpenSS7 SS7 Stack

322 Signalling Data Terminal (SDT)

Chapter 3 Reference 23

323 Signalling Link (SL)

24 OpenSS7 SS7 Stack

324 Message Transfer Part (MTP)

Chapter 3 Reference 25

325 Signalling Connection Control Part (SCCP)

26 OpenSS7 SS7 Stack

326 Transaction Capabilities Application Part (TCAP)

Chapter 3 Reference 27

327 Base Station System Application Part (BSSAP)

28 OpenSS7 SS7 Stack

33 Device Drivers

Chapter 3 Reference 29

331 Digium Drivers

30 OpenSS7 SS7 Stack

332 SeaLevel ACB56 Drivers

Chapter 4 Conformance 31

4 Conformance

Chapter 5 Releases 33

5 Releases

This is the OpenSS7 Release of the OpenSS7 SS7 Stack tools drivers and modules usedwith the Linux Fast-STREAMS or Linux STREAMS1 SVR 42 STREAMS releasesThe purpose of providing a separate release of this package was to separate the OpenSS7SS7 Stack tools headers drivers and modules from the Linux STREAMS2 package for usewith both Linux STREAMS3 and Linux Fast-STREAMS in preparation for replacement ofthe former by the laterThe following sections provide information on OpenSS7 SS7 Stack releases as well as com-patibility information of OpenSS7 release to the original GCOM releases of these modulesand drivers as well as Linux kernel compatibility

51 Prerequisites

The quickest and easiest way to ensure that all prerequisites are met is to download andinstall this package from within the OpenSS7 Master Package openss7-092G insteadof separatelyPrerequisites for the OpenSS7 SS7 Stack package are as follows1 Linux distribution somewhat Linux Standards Base compliant with a 24 or 26 kernel

and the appropriate tool chain for compiling out-of-tree kernel modules Most recentLinux distributions are usable out of the box but some development packages must beinstalled For more information see Section 52 [Compatibility] page 34

minus A fairly LSB compliant GNULinux distribution4

minus Linux 24 kernel (2410 - 2427) orminus Linux 26 kernel (263 - 2626)minus glibc2 or betterminus GNU groff (for man pages)5

minus GNU texinfo (for info files)minus GNU bison and flex (for config programs)minus net-snmp (for SNMP agents)6

(Note If you acquired strss7 a part of the OpenSS7 Master Package then the dependencieslisted below will already have been met by unpacking the master package)2 OpenSS7 Linux Fast-STREAMS streams-09247

3 OpenSS7 STREAMS Compatibility Modules strcompat-09274 OpenSS7 STREAMS XNS strxns-09275 OpenSS7 STREAMS XTITLI strxnet-09212

1 Linux STREAMS is buggy unsupported and deprecated Do not use it2 Linux STREAMS is buggy unsupported and deprecated Do not use it3 Linux STREAMS is buggy unsupported and deprecated Do not use it4 See Section 521 [GNULinux Distributions] page 34 for more information5 If you are using a Debian release please make sure to install the groff extension package (lsquogroff_extrsquo) as

it contains the refer or grefer commands necessary for including references in the manual pages6 A wide range of net-snmp releases are supported from UCD-SNMP 425 through net-snmp 547 Although at one time this package supported LiS LiS is now deprecated and unsupported

34 OpenSS7 SS7 Stack

6 OpenSS7 STREAM Network Services Library strnsl-0924 (Optional)7 OpenSS7 STREAMS Sockets strsock-0924 (Optional)8 OpenSS7 STREAMS INET strinet-09279 OpenSS7 STREAMS SCTP strsctp-0929

10 OpenSS7 STREAMS Channels strchan-092411 OpenSS7 STREAMS X25 strx25-092112 OpenSS7 STREAMS ISO striso-092413 OpenSS7 STREAMS ISDN strisdn-0924

If you need to rebuild the package from sources with modifications you will need a largerGNU tool chain as described in See Section 628 [Downloading from CVS] page 59

52 Compatibility

This section discusses compatibility with major prerequisites

521 GNULinux Distributions

OpenSS7 SS7 Stack is compatible with the following Linux distributions8

bull CentOS Enterprise Linux 34 (centos34) TBDbull CentOS Enterprise Linux 40 (centos4) TBDbull CentOS Enterprise Linux 492 (centos49) TBDbull CentOS Enterprise Linux 50 (centos5)bull CentOS Enterprise Linux 51 (centos51)bull CentOS Enterprise Linux 52 (centos52)bull Debian 30r2 Woody (deb30) TBDbull Debian 31r0a Sarge (deb31) TBDbull Debian 40r1 Etch (deb40)bull Debian 40r2 Etch (deb40)bull Debian 40r3 Etch (deb40)bull Fedora Core 1 (FC1) TBDbull Fedora Core 2 (FC2) TBDbull Fedora Core 3 (FC3) TBDbull Fedora Core 4 (FC4) TBDbull Fedora Core 5 (FC5) TBDbull Fedora Core 6 (FC6) TBDbull Fedora 7 (FC7)bull Fedora 8 (FC8)bull Fedora 9 (FC9)bull Gentoo 20061 (untested) TBD

8 Items marked as lsquoTBDrsquo are scheduled to have support deprecated That is in a future release the distributionsmarked lsquoTBDrsquo will not longer be validated before release

Chapter 5 Releases 35

bull Gentoo 20071 (untested) TBDbull Lineox 4026 (LEL4) TBDbull Lineox 4053 (LEL4) TBDbull Mandrakelinux 92 (MDK92) TBDbull Mandrakelinux 100 (MDK100) TBDbull Mandrakelinux 101 (MDK101) TBDbull Mandriva Linux LE2005 (MDK102) TBDbull Mandriva Linux LE2006 (MDK103) TBDbull Mandriva One (untested)bull RedHat Linux 72 (RH7)bull RedHat Linux 73 (RH7)bull RedHat Linux 80 (RH8) TBDbull RedHat Linux 9 (RH9) TBDbull RedHat Enterprise Linux 30 (EL3) TBDbull RedHat Enterprise Linux 4 (EL4)bull RedHat Enterprise Linux 5 (EL5)bull SuSE 80 Professional (SuSE80) TBDbull SuSE 91 Personal (SuSE91) TBDbull SuSE 92 Professional (SuSE92) TBDbull SuSE OpenSuSE (SuSEOSS) TBDbull SuSE 100 (SuSE100) TBDbull SuSE 101 (SuSE101) TBDbull SuSE 102 (SuSE102) TBDbull SuSE 103 (SuSE103) TBDbull SuSE 110 (SuSE110)bull SLES 9 (SLES9) TBDbull SLES 9 SP2 (SLES9) TBDbull SLES 9 SP3 (SLES9) TBDbull SLES 10 (SLES10)bull Ubuntu 510 (ubu510) TBDbull Ubuntu 603 LTS (ubu603) TBDbull Ubuntu 610 (ubu610) TBDbull Ubuntu 704 (ubu704) TBDbull Ubuntu 710 (ubu710)bull Ubuntu 804 (ubu804)bull WhiteBox Enterprise Linux 30 (WBEL3) TBDbull WhiteBox Enterprise Linux 4 (WBEL4) TBD

When installing from the tarball (see Section 653 [Installing the Tar Ball] page 80) thisdistribution is probably compatible with a much broader array of distributions than thoselisted above These are the distributions against which the current maintainer creates andtests builds

36 OpenSS7 SS7 Stack

522 Kernel

The OpenSS7 SS7 Stack package compiles as a Linux kernel module It is not necessaryto patch the Linux kernel to build or use the package9 Nor do you have to recompile yourkernel to build or use the package OpenSS7 packages use autoconf scripts to adapt thepackage source to your existing kernel The package builds and runs nicely against produc-tion kernels from the distributions listed above Rather than relying on kernel versions theautoconf scripts interrogate the kernel for specific features and variants to better adaptto distribution production kernels that have had patches applied over the official kernelorgsources

The OpenSS7 SS7 Stack package is compatible with 24 kernel series after 2410 and hasbeen tested up to and including 2427 It has been tested from 263 up to and including2626 (with Fedora 9 openSUSE 110 and Ubuntu 804 patchsets) Please note that yourmileage may vary if you use a kernel more recent than 26264 it is difficult to anticipatechanges that kernel developers will make in the future Many kernels in the 26 seriesnow vary widely by release version and if you encounter problems try a kernel within thesupported series

UP validation testing for kernels is performed on all supported architectures SMP valida-tion testing was initially performed on UP machines as well as on an Intel 30GHz PentiumIV 630 with HyperThreading enabled (2x) Because HyperThreading is not as independentas multiple CPUs SMP validation testing was limited Current releases have been testedon dual 18GHz Xeon HP servers (2x) as well as dual quad-core SunFire (8x) servers

It should be noted that while the packages will configure build and install against XENkernels that problems running validation test suites against XEN kernels has been reportedXEN kernels are explicitly not supported This may change at some point in the future ifsomeone really requires running OpenSS7 under a XEN kernel

523 Architectures

The OpenSS7 SS7 Stack package compiles and installs on a wide range of architecturesAlthough it is believed that the package will work on all architectures supported by theLinux kernel being used validation testing has only been performed with the followingarchitectures

bull ix86

bull x86 64

bull ppc (MPC 860)

bull ppc64

32-bit compatibility validation testing is performed on all 64-bit architectures supporting32-bit compatibility If you would like to validate an OpenSS7 package on a specific machinearchitecture you are welcome to sponsor the project with a test machine

9 At a later date it is possible to move this package into the kernel however with continued resistance toSTREAMS from within the Linux developer community this is currently unlikely

Chapter 5 Releases 37

524 Linux STREAMS

The OpenSS7 SS7 Stack package is currently compatible with Linux STREAMS10 howeverto use the OpenSS7 SS7 Stack package with LiS requires use of the OpenSS7 release packagesof LiS The OpenSS7 SS7 Stack package is compatible with the OpenSS7 LiS-2187 releasethat is available from the The OpenSS7 Project Downloads Page But do not use LiS itis buggy unsupported and deprecated Use Linux Fast-STREAMS instead

525 Linux Fast-STREAMS

The OpenSS7 SS7 Stack package is currently compatible with Linux Fast-STREAMS (LfS)The OpenSS7 SS7 Stack package is compatible with the OpenSS7 streams-0924 releasethat is available from the The OpenSS7 Project Downloads Page

53 Release Notes

The sections that follow provide information on OpenSS7 releases of the OpenSS7 SS7 Stackpackage

Major changes for release strss7-09a8

The OpenSS7 SS7 Stack package contains a wide array of SS7 drivers and components forLinux Fast-STREAMS This is the public release package which has most of the componentsremoved Subscribers and sponsors of the OpenSS7 Project have access to the full array ofcomponents

This is the eighth release of the OpenSS7 SS7 Stack strss7 package that contains SS7(Signalling System No 7) signalling stack components for Linux Fast-STREAMS Thepackage contains the necessary header files manual pages and other documentation for SS7components in a separate autoconf tarball

The release includes maintenance support for recent distributions and tool chain but alsoincludes some performance and feature upgrades and inspection bug fixes It deprecatesprevious releases Please upgrade before reporting bugs on previous releases

This release is primarily a maintenance release

Major features since the last public release are as follows

- Minor documentation corrections- Kernel module license made explicit GPL v2 And then changed back to GPL- License upgrade to AGPL Version 3- Modifications to build under Fedora lsquo26225-49rsquo kernel These changes also sup-

port lsquo26229-91fc7rsquo kernel Use IRQF_DISABLED and IRQF_SHARED instead ofdeprecated SA_INTERRUPT and SA_SHIRQ Use pci_register_driver instead of pci_module_init

- Ability to strap out major documentation build and installation primarily for embeddedtargets

- Improvements to common build process for embedded and cross-compile targets- Modifications to build under Fedora lsquo2625-45fc9rsquo and lsquo26265-45fc9rsquo kernels

10 Linux STREAMS is buggy unsupported and deprecated Do not use it

38 OpenSS7 SS7 Stack

- Updated tool chain to lsquom4-1412rsquo lsquoautoconf-263rsquo and lsquotexinfo-413rsquo- Conversion of RPM spec files to common approach for major subpackages- Updated references database for manual pages and roff documents- Build system now builds yum(8) repositories for RPMs and apt-get(8) repositories

for DEBs Installation documentation has been updated to include details of repositoryinstall sourcesref

- Added MODULE_VERSION to all modules and drivers- Corrections for recent RHAS4 kernels defining irq handler t with 3 argument function

template- Added sdl-pmod and sdt-pmod STREAMS modules and manual pages These

two STREAMS modules simluate an SDT and SDL interface connection using aSTREAMS-based pipe for testing purposes

- Added MTPI specification texinfo (info html pdf) document- Added CNAM project document The CNAM projects provides a locally attached

TCAP CNAM database front-end that performs SS7 stack functions local to the switch-ing office and queries a back-end CNAM database using IP over the Internet

- Added SDLI SDTI and SLI specifications texinfo (info html pdf) document- Added manual pages for LMI and all LMI primitives- Added manual pages for SDLI and all SDLI primitives- Added manual pages for SDTI and all SDTI primitives- Added manual pages for SLI and all SLI primitives

This is a public beta release of the package it deprecates previous releases Please upgradeto the current release before reporting bugs Please see lsquoREADME-alpharsquo in the release orSection 54 [Maturity] page 42

As with other OpenSS7 releases this release configures compiles installs and builds RPMsand DEBs for a wide range of Linux 24 and 26 RPM- and DPKG-based distributions andcan be used on production kernels without patching or recompiling the kernel

This package is publicly released under the GNU Affero General Public License Version 3The release is available as an autoconf tarball SRPM DSC and set of binary RPMs andDEBs See the downloads page for the autoconf tarballs SRPMs and DSCs For tarballsSRPMs DSCs and binary RPMs and DEBs see the strss7 package page

See httpwwwopenss7orgcodefilesstrss7-09a8ChangeLog andhttpwwwopenss7orgcodefilesstrss7-09a8NEWS in the release formore information Also see the lsquostrss7pdfrsquo manual in the release (also in htmlhttpwwwopenss7orgstrss7_manualhtml)

For the news release see httpwwwopenss7orgrel20081029_5html

Major changes for release strss7-09a7

The OpenSS7 SS7 Stack package contains a wide array of SS7 drivers and components forLinux Fast-STREAMS This is the public release package which has most of the componentsremoved Subscribers and sponsors of the OpenSS7 Project have access to the full array ofcomponents

Chapter 5 Releases 39

This is the seventh release of the OpenSS7 SS7 Stack strss7 package that contains SS7(Signalling System No 7) signalling stack components for Linux Fast-STREAMS Thepackage contains the necessary header files manual pages and other documentation for SS7components in a separate autoconf tarball

This release is primarily to support recent compilers kernels and distributions

Major features since the last public release are as follows

- Support build on openSUSE 102

- Support build on Fedora 7 with 2621 kernel

- Support build on CentOS 50 (RHEL5)

- Support build on Ubuntu 704

- Updated to gettext 0161

- Changes to support build on 2620-12307fc5 and 2620-12933fc6 kernel

- Supports build on Fedora Core 6

- Support for recent distributions and tool chains

Major changes for release strss7-09a6

The OpenSS7 SS7 Stack package contains a wide array of SS7 drivers and components forLinux Fast-STREAMS This is the public release package which has most of the componentsremoved Subscribers and sponsors of the OpenSS7 Project have access to the full array ofcomponents

This is the sixth release of the OpenSS7 SS7 Stack strss7 package that contains SS7 (Sig-nalling System No 7) signalling stack components for Linux Fast-STREAMS The packagecontains the necessary header files manual pages and other documentation for SS7 compo-nents in a separate autoconf tarball

This release is primarily to support recent compilers kernels and distributions

Major features since the last public release are as follows

- Corrected support for the DS2152213522155221542135221555 chips present inolder V400P cards (See httpwwwopenss7orgcodefilesstrss7-09a8BUGSin the release for more information)

- Support for the DS2156 chip present in recent V401PE cards (Seehttpwwwopenss7orgcodefilesstrss7-09a8BUGS in the releasefor more information)

- Corrections for timer bugs in the X400P-SS7 driver (See httpwwwopenss7orgcodefilesstrss7-09a8BUGSin the release for more information)

- Improvements to the common build environment with better support for standalonepackage builds on 24 kernels

- Support for autoconf 261 automake 110 and gettext 016

- Support for Ubuntu 610 distribution and bug fixes for i386 kernels

- The package now looks for other subpackages with a version number as unpacked byseparate tarball

40 OpenSS7 SS7 Stack

Major changes for release strss7-09a5

The OpenSS7 SS7 Stack package contains a wide array of SS7 SIGTRAN ISDN and VoIPdrivers and components for Linux Fast-STREAMS This is the public release package whichhas most of the components removed Subscribers and sponsors of the OpenSS7 Projecthave access to the full array of components

This is the fifth release of the OpenSS7 SS7 Stack strss7 package that contains SS7 (Sig-nalling System No 7) SIGTRAN (SIGnalling TRANsport) ISDN (Integrated ServicesDigital Network) and VoIP (Void over Internet Protocol) signalling stack components forLinux Fast-STREAMS The package contains the necessary header files manual pages andother documentation for SS7SIGTRANISDNVoIP components in a separate autoconftarball

This release is primarily to support recent compilers kernels and distributions and toupgrade the X400P-SS7 driver with support for the Varion V401P (Tormenta III) cardsAlso this is the first release that has ISDN SIGTRAN and VoIP components moved toseparate packages (but will still build all components)

- The X400P-SS7 driver has been upgraded to support the Varion V401P (Tormenta III)card This driver passes all validation test suites and is production grade The driverstill supports the older cards Also an autoconf style validation test suite was addedand the lsquotest-x400prsquo test case executable upgraded

- Support for most recent 2618 kernels (including Fedora Core 5 with inode diet patch-set)

- The package will now build doxygen(1) html documentation with the rsquodoxyrsquo maketarget See rsquomake helprsquo or README-make in the distribution for more information

- Now builds 32-bit compatibility libraries and tests them against 64-bit kernel modulesand drivers The lsquomake installcheckrsquo target will now automatically test both 64-bitnative and 32-bit compatibility versions one after the other on 64-bit platforms

- Added versions to all library symbols

- Many documentation updates for all OpenSS7 packages Automated release file gener-ation making for vastly improved and timely text documentation present in the releasedirectory

- Dropped support for LiS

- Package will now support extended ranges of minor devices on 26 kernels under LinuxFast-STREAMS only

- Better detection of SUSE distributions release numbers and SLES distributions sup-port for additional SuSE distributions on ix86 as well as x86_64 Added distributionsupport includes SLES 9 SLES 9 SP2 SLES 9 SP3 SLES 10 SuSE 101

- Improved compiler flag generation and optimizations for recent gcc compilers and someidiosyncratic behaviour for some distributions (primarily SUSE)

- Optimized compilation is now available also for user level programs in addition to kernelprograms Added new lsquo--with-optimizersquo option to configure to accomplish this

- Automated release file generation making for vastly improved and timely text docu-mentation present in the release directory

Chapter 5 Releases 41

- Added --disable-devel configure option to suppress building and installing devel-opment environment This feature is for embedded or pure runtime targets that do notneed the development environment (static libraries manual pages documentation)

- Added send-pr script for automatic problem report generation

Major changes for release strss7-09a-4

This release is primarily to support additional compilers (gcc 402) architectures (x86 64SMP 32-bit compatibility) recent Linux distributions (EL4 SuSE 10 LE2006 OpenSuSE)and kernels (2615)

- Changes necessary for LP64 compatible builds Changes to support 32-bit ioctlcompatibility for LP64 architectures Binary compatibility should not have beendisrupted At the same time as the ioctl32 changes TRANSPARENT ioctl supportfor most of the IO controls for the ldl(4) driver has been added

- Changes to satisfy gcc 402 compiler

- Corrections for and testing of 64-bit clean compile and test runs on x86 64 architectureSome bug corrections resulting from gcc 402 compiler warnings

- Corrected build flags for Gentoo and 2615 kernels as reported on mailing list

- Initial corrections for and testing of SMP operation on Intel 630 Hyper-Threaded SMPon x86 64 This package should now run well on N-way Xeons even with Hyper-Threading enabled

- Corrections and validation of 32-bit compatibility over 64-bit on x86 64 Should applywell to other 64-bit architectures as well

This is a public alpha release of the package

Major changes for release strss7-09a-3

This is primarily a bug fixes release and corrections resulting from testing This isa major bug fix release The previous release was largely untested This release hasbeen verified (conformance test suite passes) for operation with Linux Fast-STREAMS(lsquostreams-07a4rsquo)

With this release version numbers were changed to reflect an upstream version only tobe consistent with other OpenSS7 package releases All RPM release numbers will belsquo-1$(PACKAGE_RPMEXTRA)rsquo and all Debian release numbers will be lsquo_0rsquo If you wish toapply patches and release the package please bump up the release number and apply asuitable release suffix for your organization We leave Debian release number lsquo_1rsquo reservedfor your use so you can still bundle the source in the lsquodscrsquo file

Major changes for this release include build against Linux 26 kernels and popular distri-butions based on the 26 kernel as well as wider distribution support The package alsosupports both lsquoLiS-2181rsquo as well as lsquostreams-07arsquo on both kernels

Not publicly released

Major changes for release strss7-09a-2

Not publicly released

42 OpenSS7 SS7 Stack

Initial release strss7-09a-1

Initial autoconfRPM packaging of the strss7 releaseNot publicly released

54 Maturity

The OpenSS7 Project adheres to the following release philosophybull pre-alpha releasebull alpha releasebull beta releasebull gamma releasebull production releasebull unstable release

541 Pre-Alpha Releases

Pre-alpha releases are releases that have received no testing whatsoever Code in the releaseis not even known to configure or compile The purpose of a pre-alpha release is to makecode and documentation available for inspection only and to solicit comments on the designapproach or other characteristics of the software packagePre-alpha release packages ship containing warnings recommending that the user not evenexecute the contained code

542 Alpha Releases

Alpha releases are releases that have received little to no testing or that have been testedand contains known bugs or defects that make the package unsuitable even for testing Thepurpose for an alpha release are the same as for the pre-alpha release with the additionalpurpose that it is an early release of partially functional code that has problems that anexternal developer might be willing to fix themselves and contribute back to the projectAlpha release packages ship containing warnings that executing the code can crash machinesand might possibly do damage to systems upon which it is executed

543 Beta Releases

Beta releases are releases that have received some testing but the testing to date is notexhaustive Beta release packages do not ship with known defects All known defectsare resolved before distribution however as exhaustive testing has not been performedunknown defects may exist The purpose for a beta release is to provide a baseline for otherorganizations to participate in the rigorous testing of the packageBeta release packages ship containing warnings that the package has not been exhaustivelytested and that the package may cause systems to crash Suitability of software in thiscategory for production use is not advised by the project however as always is at thediscretion of the user of the software

544 Gamma Releases

Gamma releases are releases that have received exhaustive testing within the project butexternal testing has been minimal Gamma release packages do not ship with known defects

Chapter 5 Releases 43

As exhaustive internal testing has been performed unknown defects should be few Pleaseremember that there is NO WARRANTY on public release packagesGamma release packages typically resolve problems in previous beta releases and mightnot have had full regression testing performed Suitability of software in this categoryfor production use is at the discretion of the user of the software The OpenSS7 Projectrecommends that the complete validation test suites provided with the package be performedand pass on target systems before considering production use

545 Production Releases

Production releases are releases that have received exhaustive testing within the projectand validated on specific distributions and architectures Production release packages donot ship with known defects Please remember that there is NO WARRANTY on publicrelease packagesProduction packages ship containing a list of validated distributions and architectures Fullregression testing of any maintenance changes is performed Suitability of software in thiscategory for production use on the specified target distributions and architectures is at thediscretion of the user It should not be necessary to preform validation tests on the set ofsupported target systems before considering production use

546 Unstable Releases

Unstable releases are releases that have received extensive testing within the project andvalidated on a a wide range of distributions and architectures however is has tested un-stable and found to be suffering from critical problems and issues that cannot be resolvedMaintenance of the package has proved impossible Unstable release packages ship withknown defects (and loud warnings) Suitability of software in this category for productionuse is at the discretion of the user of the software The OpenSS7 Project recommendsthat the problems and issues be closely examined before this software is used even in anon-production environment Each failing test scenario should be completely avoided bythe application OpenSS7 beta software is more stable that software in this category

55 Bugs

551 Defect Notices

OpenSS7 SS7 Stack has unknown defects This is an alpha release Some defects couldbe harmful No validation testing whatsoever has been performed by the OpenSS7 Projecton this software The software might fail to configure or compile on some systems TheOpenSS7 Project recommends that you do not use this software for purposes other thandeveloment or evaluation and then only with great care Use at your own risk Rememberthat there is NO WARRANTY11

This software is alpha software As such it can likely crash your kernel Installation of thesoftware can irreparably mangle your header files or Linux distribution in such a way asto make it unusable Crashes could lock your system and rebooting the system might notrepair the problem You can possibly lose all the data on your system Because this software

11 See sections Disclaimer of Warranty and Limitation of Liability under [GNU Affero General Public License]page 104

44 OpenSS7 SS7 Stack

can crash your kernel the resulting unstable system could destroy computer hardware orperipherals making them unusable You could void the warranty on any system on whichyou run this software YOU HAVE BEEN WARNED

552 Known Defects

With the exception of packages not originally created by the OpenSS7 Project the OpenSS7Project software does not ship with known bugs in any release stage except pre-alphaOpenSS7 SS7 Stack had no known bugs at the time of release

553 Defect History

This section contains historical bugs that were encountered during development and theirresolutions This list serves two purposes1 It captures bugs encountered between releases during development that could possibly

reoccur (and the Moon is made of blue cheese) It therefore provides a place for usersto look if they encounter a problem

2 It provides a low overhead bug list between releases for developers to use as a lsquoTODOrsquolist

Bugs

006 2008-08-17T034223+0000The xnet library was discovered to contain a thread-safety bug caused by newerbehaviour of pthread once() causing the library to core dump when used onrecent implementations of pthreads (nptl)The xnet library is no longer normally compiled as part of the lsquostrss7rsquo packagefixed in strss7-09a8

005 2007-07-21T171502-0600It was discovered that recent kernel on RHAS4 are defining irq handler t buthave the old 3 argument function template for irq handlers The detectionlogic assumed that if irq hander t existed that the newer 2 argument functiontemplate for irq handlers were in effect This caused builds to fail on theseRHAS4 kernelsfixed in strss7-09a8rc1A check was added to the configure script to test whether the irq handler t hasthe newer 2 argument template

004 2007-03-13T233637-0600 (x400p-ss75766)Older chips were not being recognized correctly either Reflected device tableand a few missing break statements was the causefixed in strss7-09a6

003 2007-03-13T024038-0600 (x400p-ss75766)It appears that V401PE cards were almost loading (configuring mappingdownloading firmware) but were failing to configure at the final stage of theprocess (matching device id to board type) The device id for the 2155 is sup-posed to be b4 regardless of E1 or T1 but I just guess that the card is reporting

Chapter 5 Releases 45

34 instead of b4 for E1 (it might be the firmware setting or unsetting the highbit as was done for the other devices) I changed the sl x400pc driver to printerror messages when loading if such mismatches occur and set the device idsto accept 0x3X as an E1 2155 device and 0bX as a T1J1 2155 device (eventhough they are all the same)As it turns out the V401PE cards have a DS2156 chip instead of a DS2155chip The only difference is the lack of Tx fixed gain control (register 0x7d)and the DS2156 supports a UTOPIA II bus that is not used on the V401PEI changed the driver to recognize the DS2156 and skip register 0x7d when itexists The DS2156 chip will work for both V401T (D33D) and V401E (D44D)cardsfixed in strss7-09a6

002 2007-03-08T210547-0700Timers were message up (using HZ instead of milliseconds) on the X400P driverThis did not affect architectures with 1000 HZ or 1024 HZ tick clocks but 100HZ systems objectfixed in strss7-09a6

001 2007-03-05T155814-0700For some reason the package was always building and installing the lsquolibxnetrsquotexinfo document which was keeping the RPM from installing after thelsquostrxnetrsquo package This was fixed in lsquodocmanualMakefileamrsquo with theaddition of a lsquoWITH_XNETrsquo conditionalfixed in strss7-09a6

56 Schedule

Current Plan

The current plan includes the public production release of SCCP ISUP and TCAP com-ponents MTP3 has not yet been publicly released and is not currently scheduled (Imple-menting the AS-side of M3UA is taking precedence) The first public production releases ofSCCP ISUP and TCAP are planned for the end of July 2007 This will be followed by laband limitied field trial testing with a lead customer in August and production deploymentin the lead customerrsquos network in 1Q2008 Expect that over the next 8 months releases ofthis package will include major new development and validation testing as well as includingSCCP ISUP and TCAP components that have nor heretofore been publicly released

Things to Do

There is a great long list of these but here is a crack at the first onesminus Compile entire (private) package against Linux Fast-STREAMSminus Convert test programs into conformance test suites under GNU autotest This should

be straight forward matterminus Start retesting SIGTRAN components against SCTP and Linux Fast-STREAMS start-

ing with M2PAminus Start retesting SS7 Device Drivers under Linux Fast-STREAMS starting with X400P

46 OpenSS7 SS7 Stack

minus Start retesting SS7 Stack components (MTP2 MTP3 SCCP ISUP TCAP) underLinux Fast-STREAMS

minus Package a public release It has been way too long since a public release of this packageThe package has almost a million lines of code in it most of which the public has neverseen

minus Complete the SL-MUX driver and utility programsminus Complete the libslpcap library (pcap(3)) for live capture of SS7 link SDUs using

ethereal(1) or wireshark(1)

57 History

For the latest developments with regard to history of changes please see the lsquoChangeLogrsquofile in the release package

Chapter 6 Installation 47

6 Installation

61 Repositories

The OpenSS7 SS7 Stack package release can be accessed from the repositories of TheOpenSS7 Project For rpm(1) based systems the package is available in a yum(8) reposi-tory based on lsquorepomdrsquo XML and may also be accessed using zypper(8) or yast(8) Fordpkg(1) based systems the package is available in a apt(8) repository

By far the easiest (most repeatable and manageable) form for installing and using OpenSS7packages is to install packages from the yum(8) or apt(8) repositories If your distributiondoes not support yum(8) zypper(8) yast(8) or apt(8) then it is still possible to installthe RPMs or DEBs from the repositories using rpm(1) dpkg(1) or by using wget(1) andthen installing them from RPM or DEB using rpm(1) or dpkg(1) locally

If binaries are not available for your distribution or specific kernel but your distributionsupports rpm(1) or dpkg(1) the next best method for installing and using OpenSS7 pack-ages is to download and rebuild the source RPMs or DSCs from the repository This canalso be performed with yum(8) zypper(8) yast(8) apt(8) or directly using wget(1)rpm(1) or dpkg(1)

If your architecture does not support rpm(1) or dpkg(1) at all or you have special needs(such as cross-compiling for embedded targets) the final resort method is to downloadconfigure build and install from tarball In this later case the easiest way to build andinstall OpenSS7 packages from tarball is to use the tarball for the OpenSS7 Master Packageopenss7-092G

611 Repositories for YUM

To install or upgrade from the OpenSS7 lsquorepomdrsquo repositories you will need a file inyour lsquoetcyumrepodrsquo directory This file can be obtained directly from the OpenSS7repository like so

$gt REPOS=httpwwwopenss7orgreposrpms$gt wget $REPOScentos52x86_64repodataopenss7repo$gt sudo cp -f openss7repo etcyumrepod$gt sudo yum makecache

This example assumes the the distribution is lsquocentosrsquo and the distribution releaseis lsquo52rsquo and the architecture requires is lsquox86_64rsquo Another example would belsquo$REPOSi686suse110i686repodataopenss7reporsquo for using yum(8) with SUSE

Once the repository is set up OpenSS7 includes a number of virtual package definitionsthat eas the installation and removal of kernel modules libraries and utilities Downloadingconfiguring building and installation for a single-kernel distribution is as easy as

$gt sudo yum install strss7

Removing the package is as easy as

$gt sudo yum remove strss7

If you have difficulty downloading the lsquoopenss7reporsquo file edit the following informationinto the file and place it into the lsquoetcyumrepodopenss7reporsquo file

48 OpenSS7 SS7 Stack

-| [openss7]-| enabled = 1-| name = OpenSS7 Repository-| baseurl = httpwwwopenss7orgreposrpmscentos52x86_64-| gpgcheck = 1-| gpgkey = httpwwwopenss7orgpubkeyasc

Note that it is also possible to point to these repositories as an additional installation sourcewhen installing CentOS RedHat Fedora or others You will have an additional STREAMScategory from which to choose installation packagesSome additional installation real or virtual package names and the installations they ac-complish are as follows

lsquostrss7rsquoThis package can be used to install or remove the entire OpenSS7 SS7 Stackpackage When installing kernel modules will be installed automatically forthe highest version kernel on your system When removing all correspondingkernel modules will also be removed

lsquostrss7-develrsquoThis package can be used to install or remove the development components ofthe OpenSS7 SS7 Stack package When installing lsquostrss7rsquo and appropriatekernel module and kernel module development and debug packages will alsobe installed When removing the development package and all kernel moduledevelopment and debug packages will also be removed

lsquostrss7-2420-287rsquoThis package can be used to install or remove the package for a specific kernelversion When installing the lsquostrss7rsquo package will also be installed if necessaryWhen removing the last kernel module package the lsquostrss7rsquo package will alsobe removedNote that the version lsquo2420-287rsquo is just an example Use the version re-turned by lsquo$(uname -r)rsquo for the kernel for which you wish to install or removethe packages

lsquostrss7-2420-287-develrsquoThis package can be used to install or remove the development and debugpackages for a specific kernel version When installing the lsquostrss7rsquo andlsquostrss7-develrsquo packages will also be installed if necessary When removingthe development and debug for kernel modules for the last kernel thelsquostrss7-develrsquo package will also be removedNote that the version lsquo2420-287rsquo is just an example Use the version re-turned by lsquo$(uname -r)rsquo for the kernel for which you wish to install or removethe packages

For assistance with specific RPMs see Section 623 [Downloading the Binary RPM]page 51

612 Repositories for APT

For assistance with specific DEBs see Section 624 [Downloading the Debian DEB] page 54

Chapter 6 Installation 49

62 Downloading

The OpenSS7 SS7 Stack package releases can be downloaded from the downloads page ofThe OpenSS7 Project The package is available as a binary RPM (for popular architectures)a source RPM Debian binary DEB and source DSC or as a tar ball If you are using abrowsable viewer you can obtain the OpenSS7 release of strss7 from the links in thesections that followBy far the easiest (most repeatable and manageable) form for installing and using OpenSS7packages is to download and install individual packages from binary RPM or DEB If binaryRPMs or DEBs are not available for your distribution but your distribution supportsrpm(1) or dpkg(1) the next best method for installing and using OpenSS7 packages is todownload and rebuild the source RPMs or DSCsIf your architecture does not support rpm(1) or dpkg(1) at all or you have special needs(such as cross-compiling for embedded targets) the final resort method is to downloadconfigure build and install from tarball In this later case the easiest way to build andinstall OpenSS7 packages from tarball is to use the tarball for the OpenSS7 Master Packageopenss7-092G

621 Downloading with YUM

OpenSS7 repositories support yum(8) and zypper(8) in repomd XML format as well asYaST and YaST2 formatsOpenSS7 includes virtual packages that ease the installation and removal of kernel moduleslibraries and utilities Downloading configuration building and installation for a signle-kernel distribution installation is as easy as sudo yum install strss7

This and additional packages for installation are detailed as follows

lsquostrss7rsquo Install this package if you need the runtime lsquostrss7rsquo package sudo yum install strss7

This will install the lsquostrss7rsquo lsquostrss7-librsquo and lsquostrss7-KVERSIONrsquo RPMswhere lsquoKVERSIONrsquo is the highest version number kernel on your systemRemove this package if you need to remove all vestages of the lsquostrss7rsquo package

sudo yum remove strss7

This will remove the lsquostrss7rsquo lsquostrss7-librsquo lsquostrss7-develrsquolsquostrss7-KVERSIONrsquo and lsquostrss7-devel-KVERSIONrsquo RPMs for allkernels on your system

lsquostrss7-develrsquoInstall this package if you need the development lsquostrss7rsquo package

sudo yum install strss7-devel

This will install the lsquostrss7rsquo lsquostrss7-librsquo lsquostrss7-develrsquolsquostrss7-KVERSIONrsquo and lsquostrss7-devel-KVERSIONrsquo RPMs wherelsquoKVERSIONrsquo is the highest version number kernel on your systemRemove this package if you do not need development capabilities for thelsquostrss7rsquo package for any kernel

50 OpenSS7 SS7 Stack

sudo yum remove strss7-devel

This will remove the lsquostrss7-develrsquo and lsquostrss7-devel-KVERSIONrsquo RPMs forall kernels on your system

lsquostrss7-2420-287rsquoInstall this package if you need the runtime lsquostrss7rsquo for kernel versionlsquo2420-287rsquo The value lsquo2420-287rsquo is just an example For the runningkernel you can install the runtime lsquostrss7rsquo components with

sudo yum install strss7-$(uname -r)

This will install the lsquostrss7rsquo lsquostrss7-librsquo and lsquostrss7-2420-287rsquo RPMswhere lsquo2420-287rsquo is the kernel version specified

Remove this package if you no longer need the runtime lsquostrss7rsquo for kernelversion lsquo2420-287rsquo The value lsquo2420-287rsquo is just an example For therunning kernel you can remove the runtime lsquostrss7rsquo components with

sudo yum remove strss7-$(uname -r)

This will remove the lsquostrss7-2420-287rsquo and lsquostrss7-devel-2420-287rsquoRPMs where lsquo2420-287rsquo is the kernel version specified Also if this is thelast kernel for which lsquostrss7rsquo was installed the lsquostrss7rsquo lsquostrss7-librsquo andlsquostrss7-develrsquo RPMs will also be removed

Note that this is a virtual package name the actual RPMs installed or removedfrom the system is a kernel module package whose precise name will dependupon the system being used

lsquostrss7-devel-2420-287rsquoInstall this package if you need the development lsquostrss7rsquo package for kernelversion lsquo2420-287rsquo The value lsquo2420-287rsquo is just an example For therunning kernel you can install the kernel development lsquostrss7rsquo componentswith

sudo yum install strss7-devel-$(uname -r)

This will install the lsquostrss7rsquo lsquostrss7-librsquo lsquostrss7-develrsquolsquostrss7-2420-287rsquo and lsquostrss7-devel-2420-287rsquo RPMswhere lsquo2420-287rsquo is the kernel version specified

Remove this package if you no longer need the development capabilities for thelsquostrss7rsquo package for kernel version lsquo2420-287rsquo The value lsquo2420-287rsquo isjust an example For the running kernel you can remove the kernel developmentlsquostrss7rsquo components with

sudo yum remove strss7-devel-$(uname -r)

This will remove the lsquostrss7-devel-2420-287rsquo RPMs wherelsquo2420-287rsquo is the kernel version specified Also if this is the last kernel forwhich lsquostrss7rsquo was installed the lsquostrss7-develrsquo RPMs will also be removed

Note that this is a virtual package name the actual RPMs installed or removedfrom the system is a kernel module package whose precise name will dependupon the system being used

Chapter 6 Installation 51

lsquostrss7-librsquoThis package is an auxillary package that should be removed and inserted au-tomatically by yum(8) In rare instances you might need to remove or installthis package explicitly

622 Downloading with APT

OpenSS7 repositries support apt(8) repositorie digests and signatures

623 Downloading the Binary RPM

To install from binary RPM you will need several of the RPM for a complete installationBinary RPM fall into several categories To download and install a complete packagerequires the appropriate RPM from each of the several categories below as applicableSome release packages do not provide RPMs in each of the several categories

To install from Binary RPM you will need all of the following kernel independent packagesfor your architecture and one of the kernel-dependent packages from the next section

Independent RPM

Independent RPM are dependent on neither the Linux kernel version nor the STREAMSpackage For example the source package lsquostrss7-source-09a8-172noarchrpmrsquo isnot dependent on kernel nor STREAMS package

All of the following kernel and STREAMS independent RPM are required for your architec-ture Binary RPMs listed here are for example only additional binary RPMs are availablefrom the downloads site If your architecture is not available you can build binary RPMfrom the source RPM (see see Section 641 [Building from the Source RPM] page 77)

Architecture Independent

strss7-dev-09a8-172noarchrpmThe lsquostrss7-devrsquo package contains the device definitions necessary to run ap-plications programs developed for OpenSS7 SS7 Stack1

strss7-doc-09a8-172noarchrpmThe lsquostrss7-docrsquo package contains this manual in plain text postscript lsquopdfrsquoand lsquohtmlrsquo forms along with the meta-information from the lsquostrss7rsquo packageIt also contains all of the manual pages necessary for developing OpenSS7 SS7Stack applications and OpenSS7 SS7 Stack STREAMS modules or drivers

strss7-init-09a8-172noarchrpmThe lsquostrss7-initrsquo package contains the init scripts and provides thelsquopostinstrsquo scripts necessary to create kernel module preloads and modulesdefinitions for all kernel module lsquocorersquo subpackages

1 Not all distributions support the lsquodevrsquo RPM macro a case in point is the SuSE 80 distribution whichuses an older version of rpm(1) Distributions that do not support the lsquodevrsquo macro will build devices asa lsquopostrsquo operation Note also that not all release packages contain devices Only packages that provideSTREAMS character device drivers need devices and then only when the lsquospecfsrsquo or lsquodevfsdrsquo is not beingused

52 OpenSS7 SS7 Stack

strss7-source-09a8-172noarchrpmThe lsquostrss7-sourcersquo package contains the source code necessary for buildingthe OpenSS7 SS7 Stack release It includes the autoconf(1) configurationutilities necessary to create and distribute tarballs lsquorpmrsquo and lsquodebrsquolsquodscrsquo2

Architecture Dependent

strss7-devel-09a8-172i686rpmThe lsquostrss7-develrsquo package contains library archives for static compilationheader files to develop OpenSS7 SS7 Stack modules and drivers This alsoincludes the header files and static libraries required to compile OpenSS7 SS7Stack applications programs

strss7-lib-09a8-172i686rpmThe lsquostrss7-librsquo package contains the run-time shared libraries necessary torun application programs and utilities developed for the lsquostrss7rsquo package3

STREAMS-Dependent RPM

STREAMS-Dependent RPM are dependent upon the specific STREAMS package beingused either Linux STREAMS or Linux Fast-STREAMS Packages dependent uponLinux STREAMS will have lsquoLiSrsquo in the package name Packages dependent uponLinux Fast-STREAMS will have lsquostreamsrsquo in the package name Note that someSTREAMS-Dependent RPM are also Kernel-Dependent RPM as described below

One of the following STREAMS-Dependent packages is required for your architecture Ifyour architecture is not on the list you can build binary RPM from the source RPM (seesee Section 641 [Building from the Source RPM] page 77)

strss7-LiS-util-09a8-172i686rpmThe lsquostrss7-LiS-utilrsquo package provides administrative and configuration testutilities and commands associated with the OpenSS7 SS7 Stack package Be-cause this package must link a STREAMS-specific library it is a STREAMS-Dependent package Use the lsquostrss7-LiS-utilrsquo package if you have LiS in-stalled

strss7-streams-util-09a8-172i686rpmThe lsquostrss7-streams-utilrsquo package provides administrative and configura-tion test utilities and commands associated with the OpenSS7 SS7 Stack pack-age Because this package must link a STREAMS-specific library it is aSTREAMS-Dependent package Use the lsquostrss7-streams-utilrsquo package ifyou have streams installed

Kernel-Dependent RPM

Kernel-Dependent RPM are dependent on specific Linux Kernel Binary RPM releasesPackages are provided for popular released RedHat kernels Packages dependent upon Red-

2 Note that not all releases have source RPM packages Release packages that do not contain kernel modulesdo not generate a source RPM package

3 Note that not all release packages contain shared libraries and therefore not all release packages containthis package

Chapter 6 Installation 53

Hat or other kernel RPM will have the lsquo_kversionrsquo kernel package version in the packagenameOne of the following Kernel-Dependent packages is required for your architecture and kernelversion If your architecture or kernel version is not on the list you can build binary RPMfrom the source RPM (see see Section 641 [Building from the Source RPM] page 77)4

strss7-core-2420-287-09a8-172i686rpmThe lsquostrss7-corersquo package contains the loadable kernel modules that dependonly on the kernel This package is heavily tied to the kernel for which it wascompiled This particular package applies to kernel version lsquo2420-287rsquo5

strss7-info-2420-287-09a8-172i686rpmThe lsquostrss7-inforsquo package6 contains the module symbol version informationfor the lsquocorersquo subpackage above It is possible to load this subpackage andcompile modules that use the exported symbols without loading the actualkernel modules (from the lsquocorersquo subpackage above) This package is heavilytied to the kernel for which it was compiled This particular package applies tokernel version lsquo2420-287rsquo7

strss7-LiS-core-2420-287-09a8-172i686rpmThe lsquostrss7-LiS-corersquo package contains the kernel modules that providethe OpenSS7 SS7 Stack STREAMS modules and drivers This package isheavily tied to the STREAMS package and kernel for which it was compiledThis particular package applies to lsquoLiSrsquo (Linux STREAMS) on kernel versionlsquo2420-287rsquo8

strss7-streams-core-2420-287-09a8-172i686rpmThe lsquostrss7-streams-corersquo package contains the kernel modules that pro-vide the OpenSS7 SS7 Stack STREAMS modules and drivers This package isheavily tied to the STREAMS package and kernel for which it was compiledThis particular package applies to lsquostreamsrsquo (Linux Fast-STREAMS) on kernelversion lsquo2420-287rsquo9

strss7-LiS-info-2420-287-09a8-172i686rpmThe lsquostrss7-LiS-inforsquo package10 contains the module symbol version infor-mation for the lsquoLiS-corersquo subpackage above It is possible to load this sub-package and compile modules that use the exported symbols without loaded the

4 Note that on Mandrakelinux unlike other RPM kernel distributions kernel packages for the ix86 architec-tures are always placed in i586 architecture packages regardless of the true processor architecture of thekernel package lsquoconfigurersquo detects this and builds the appropriate packages

5 Note that the lsquo_kversionrsquo of lsquo2420-287rsquo is only an example Note also that only release packages thatcontain kernel modules will contain a lsquocorersquo subpackage

6 Note that only release packages that contain kernel modules and that export versioned symbols will containa lsquoinforsquo subpackage Also this subpackage is only applicable to 24 series kernels and is not necessary andnot built for 26 series kernels

7 Note that the lsquo_kversionrsquo of lsquo2420-287rsquo is only an example8 Note that the lsquo_kversionrsquo of lsquo2420-287rsquo is only an example9 Note that the lsquo_kversionrsquo of lsquo2420-287rsquo is only an example

10 Note that only release packages that contain kernel modules and that export versioned symbols will containa lsquoLiS-inforsquo subpackage

54 OpenSS7 SS7 Stack

actual kernel modules (from the lsquoLiS-corersquo subpackage above) This packageis heavily tied to the STREAMS package and kernel for which it was compiledThis particular package applies to lsquoLiSrsquo (Linux STREAMS) on kernel versionlsquo2420-287rsquo11

strss7-streams-info-2420-287-09a8-172i686rpmThe lsquostrss7-streams-inforsquo package12 contains the module symbol version in-formation for the lsquostreams-corersquo subpackage above It is possible to loadthis subpackage and compile modules that use the exported symbols withoutloaded the actual kernel modules (from the lsquostreams-corersquo subpackage above)This package is heavily tied to the STREAMS package and kernel for whichit was compiled This particular package applies to lsquostreamsrsquo (Linux Fast-STREAMS) on kernel version lsquo2420-287rsquo13

Configuration and Installation

To configure build and install the binary RPM See Section 631 [Configuring the BinaryRPM] page 62

624 Downloading the Debian DEB

To install from binary DEB you will need several of the DEB for a complete installationBinary DEB fall into several categories To download and install a complete package requiresthe appropriate DEB from each of the several categories below as applicable Some releasepackages do not provide DEBs in each of the several categories

To install from Binary DEB you will need all of the following kernel independent packagesfor your architecture and one of the kernel-dependent packages from the next section

Independent DEB

Independent DEB are dependent on neither the Linux kernel version nor the STREAMSpackage For example the source package lsquostrss7-source_09a8-0_i386debrsquo is notdependent on kernel nor STREAMS package

All of the following kernel and STREAMS independent DEB are required for your architec-ture Binary DEBs listed here are for example only additional binary DEBs are availablefrom the downloads site If your architecture is not available you can build binary DEBfrom the Debian DSC (see see Section 642 [Building from the Debian DSC] page 78)

Architecture Independent

strss7-dev 09a8-0 alldebThe lsquostrss7-devrsquo package contains the device definitions necessary to run ap-plications programs developed for OpenSS7 SS7 Stack14

11 Note that the lsquo_kversionrsquo of lsquo2420-287rsquo is only an example12 Note that only release packages that contain kernel modules and that export versioned symbols will contain

a lsquostreams-inforsquo subpackage13 Note that the lsquo_kversionrsquo of lsquo2420-287rsquo is only an example14 Note that not all release packages contain devices Only packages that provide STREAMS character device

drivers need devices and then only when the lsquospecfsrsquo or lsquodevfsdrsquo is not being used

Chapter 6 Installation 55

strss7-doc 09a8-0 alldebThe lsquostrss7-docrsquo package contains this manual in plain text postscript lsquopdfrsquoand lsquohtmlrsquo forms along with the meta-information from the lsquostrss7rsquo packageIt also contains all of the manual pages necessary for developing OpenSS7 SS7Stack applications and OpenSS7 SS7 Stack STREAMS modules or drivers

strss7-init 09a8-0 alldebThe lsquostrss7-initrsquo package contains the init scripts and provides the postinstscripts necessary to create kernel module preloads and modules definitions forall kernel module lsquocorersquo subpackages

strss7-source 09a8-0 alldebThe lsquostrss7-sourcersquo package contains the source code necessary for buildingthe OpenSS7 SS7 Stack release It includes the autoconf(1) configurationutilities necessary to create and distribute tarballs rpms and debdscs15

Architecture Dependent

strss7-devel 09a8-0 i386debThe lsquostrss7-develrsquo package contains library archives for static compilationheader files to develop OpenSS7 SS7 Stack modules and drivers This alsoincludes the header files and static libraries required to compile OpenSS7 SS7Stack applications programs

strss7-lib 09a8-0 i386debThe lsquostrss7-librsquo package contains the run-time shared libraries necessary torun application programs and utilities developed for the lsquostrss7rsquo package16

STREAMS-Dependent DEB

STREAMS-Dependent DEB are dependent upon the specific STREAMS package beingused either Linux STREAMS or Linux Fast-STREAMS Packages dependent uponLinux STREAMS will have lsquoLiSrsquo in the package name Packages dependent uponLinux Fast-STREAMS will have lsquostreamsrsquo in the package name Note that someSTREAMS-Dependent DEB are also Kernel-Dependent DEB as described below

One of the following STREAMS-Dependent packages is required for your architecture Ifyour architecture is not on the list you can build binary DEB from the Debian DSC (seesee Section 642 [Building from the Debian DSC] page 78)

strss7-LiS-util 09a8-0 i386debThe lsquostrss7-LiS-utilrsquo package provides administrative and configuration testutilities and commands associated with the OpenSS7 SS7 Stack package Be-cause this package must link a STREAMS-specific library it is a STREAMS-Dependent package Use the lsquostrss7-LiS-utilrsquo package if you have LiS in-stalled

15 Note that not all releases have source DEB packages Release packages that do not contain kernel modulesdo not generate a source DEB package

16 Note that not all release packages contain shared libraries and therefore not all release packages containthis package

56 OpenSS7 SS7 Stack

strss7-streams-util 09a8-0 i386debThe lsquostrss7-streams-utilrsquo package provides administrative and configura-tion test utilities and commands associated with the OpenSS7 SS7 Stack pack-age Because this package must link a STREAMS-specific library it is aSTREAMS-Dependent package Use the lsquostrss7-streams-utilrsquo package ifyou have streams installed

Kernel-Dependent DEB

Kernel-Dependent DEB are dependent on specific Linux Kernel Binary DEB releases Pack-ages are provided for popular released Debian kernels Packages dependent upon Debian orother kernel DEB will have the lsquo_kversionrsquo kernel package version in the package nameOne of the following Kernel-Dependent packages is required for your architecture and kernelversion If your architecture or kernel version is not on the list you can build binary DEBfrom the source DEB (see see Section 642 [Building from the Debian DSC] page 78)17

strss7-core-2420-287 09a8-0 i386debThe lsquostrss7-corersquo package contains the loadable kernel modules that dependonly on the kernel This package is heavily tied to the kernel for which it wascompiled This particular package applies to kernel version lsquo2420-287rsquo18

strss7-info-2420-287 09a8-0 i386debThe lsquostrss7-inforsquo package19 contains the module symbol version informationfor the lsquocorersquo subpackage above It is possible to load this subpackage andcompile modules that use the exported symbols without loading the actualkernel modules (from the lsquocorersquo subpackage above) This package is heavilytied to the kernel for which it was compiled This particular package applies tokernel version lsquo2420-287rsquo20

strss7-LiS-core-2420-287 09a8-0 i386debThe lsquostrss7-LiS-corersquo package contains the kernel modules that providethe OpenSS7 SS7 Stack STREAMS modules and drivers This package isheavily tied to the STREAMS package and kernel for which it was compiledThis particular package applies to lsquoLiSrsquo (Linux STREAMS) on kernel versionlsquo2420-287rsquo21

strss7-streams-core-2420-287 09a8-0 i386debThe lsquostrss7-streams-corersquo package contains the kernel modules that pro-vide the OpenSS7 SS7 Stack STREAMS modules and drivers This package isheavily tied to the STREAMS package and kernel for which it was compiled

17 Note that on Mandrakelinux unlike other DEB kernel distributions kernel packages for the ix86 architecturesare always placed in i586 architecture packages regardless of the true processor architecture of the kernelpackage lsquoconfigurersquo detects this and builds the appropriate packages

18 Note that the lsquo_kversionrsquo of lsquo2420-287rsquo is only an example Note also that only release packages thatcontain kernel modules will contain a lsquocorersquo subpackage

19 Note that only release packages that contain kernel modules and that export versioned symbols will containa lsquoinforsquo subpackage Also this subpackage is only applicable to 24 series kernels and is not necessary andnot built for 26 series kernels

20 Note that the lsquo_kversionrsquo of lsquo2420-287rsquo is only an example21 Note that the lsquo_kversionrsquo of lsquo2420-287rsquo is only an example

Chapter 6 Installation 57

This particular package applies to lsquostreamsrsquo (Linux Fast-STREAMS) on kernelversion lsquo2420-287rsquo22

strss7-LiS-info-2420-287 09a8-0 i386debThe lsquostrss7-LiS-inforsquo package23 contains the module symbol version infor-mation for the lsquoLiS-corersquo subpackage above It is possible to load this sub-package and compile modules that use the exported symbols without loaded theactual kernel modules (from the lsquoLiS-corersquo subpackage above) This packageis heavily tied to the STREAMS package and kernel for which it was compiledThis particular package applies to lsquoLiSrsquo (Linux STREAMS) on kernel versionlsquo2420-287rsquo24

strss7-streams-info-2420-287 09a8-0 i386debThe lsquostrss7-streams-inforsquo package25 contains the module symbol version in-formation for the lsquostreams-corersquo subpackage above It is possible to loadthis subpackage and compile modules that use the exported symbols withoutloaded the actual kernel modules (from the lsquostreams-corersquo subpackage above)This package is heavily tied to the STREAMS package and kernel for whichit was compiled This particular package applies to lsquostreamsrsquo (Linux Fast-STREAMS) on kernel version lsquo2420-287rsquo26

Configuration and Installation

To configure build and install the Debian DEB See Section 632 [Configuring the DebianDEB] page 63

625 Downloading the Source RPM

If you cannot obtain a binary RPM for your architecture or would like to roll you ownbinary RPM download the following source RPM

strss7-09a8-1srcrpmThis is the source RPM for the package From this source RPM it is possible tobuild binary RPM for any supported architecture and for any 24 or 26 kernelfor either Linux STREAMS or Linux Fast-STREAMS

Configuration

To configure the source RPM See Section 633 [Configuring the Source RPM] page 63

626 Downloading the Debian DSC

If you cannot obtain a binary DEB for your architecture or would like to roll your ownDEB download the following Debian DSC

22 Note that the lsquo_kversionrsquo of lsquo2420-287rsquo is only an example23 Note that only release packages that contain kernel modules and that export versioned symbols will contain

a lsquoLiS-inforsquo subpackage24 Note that the lsquo_kversionrsquo of lsquo2420-287rsquo is only an example25 Note that only release packages that contain kernel modules and that export versioned symbols will contain

a lsquostreams-inforsquo subpackage26 Note that the lsquo_kversionrsquo of lsquo2420-287rsquo is only an example

58 OpenSS7 SS7 Stack

strss7 09a8-0dscstrss7 09a8-0targz

This is the Debian DSC for the package From this Debian DSC it is possible tobuild binary DEB for any supported architecture and for any 24 or 26 kernelfor either Linux STREAMS or Linux Fast-STREAMS

Configuration

To configure the source RPM See Section 634 [Configuring the Debian DSC] page 67

627 Downloading the Tar Ball

For non-rpm(1) and non-dpkg(1) architectures download the tarball as follows

strss7-09a8targzstrss7-09a8tarbz2

These are the tar(1) balls for the release These tar(1) balls contain theautoconf(1) distribution which includes all the source necessary for buildingand installing the package These tarballs will even build Source RPM andBinary RPM on rpm(1) architectures and Debian DSC and DEB on dpkg(1)architectures

The tar ball may be downloaded easily with wget(1) as follows wget httpwwwopenss7orgstrss7-09a8tarbz2

or wget httpwwwopenss7orgstrss7-09a8targz

Note that you will need an OpenSS7 Project user name and password to download releasecandidates (which are only available to subscribers and sponsors of the OpenSS7 Project)

Unpacking the Archive

After downloading one of the tar balls unpack the archive using one of the following com-mands wget httpwwwopenss7orgstrss7-09a8targz tar -xzvf strss7-09a8targz

or wget httpwwwopenss7orgstrss7-09a8tarbz2 tar -xjvf strss7-09a8tarbz2

Either will create a subdirectory name lsquostrss7-09a8rsquo containing all of the files andsubdirectories for the strss7 package

Chapter 6 Installation 59

Configuration

To configure and install the tar ball See Section 635 [Configuring the Tar Ball] page 67

628 Downloading from CVS

If you are a subscriber or sponsor of The OpenSS7 Project with CVS archive access privilegesthen you can download release mid-release or release candidate versions of the lsquostrss7rsquopackage from the project CVS archiveThe OpenSS7 SS7 Stack package is located in the lsquostrss7rsquo module of lsquovarcvsrsquo Forrelease tag information see Chapter 5 [Releases] page 33To access the archive from the project CVS pserver use the following commands to checkout a version from the archive export CVSROOT=rsquo-dpserverusernamecvsopenss7com2401varcvsrsquo cvs loginPassword cvs co -r strss7_09a8 strss7 cvs logout

It is of course possible to check out by date or by other criteria For more informationsee cvs(1)

Preparing the CVS Working Directory

Although public releases of the lsquostrss7rsquo package do not require reconfiguration creating aconfigurable directory from the CVS archive requires tools not normally distributed withthe other releasesThe build host requires the following GNU toolsbull m4 1412

bull autoconf 263

bull automake 1101

bull libtool 224

bull gettext 017

bull flex 2533

bull bison 23

Most desktop development GNULinux distributions wil have these tools however somenon-development or server-style installations might not and they must be installed sepa-rately27

Also these tools can be acquired from the FSF website in the free software directory andalso at the following locationsbull m4-1412bull autoconf-263

27 Older version of bison (20) and the older version of flex (254a) are also suitable Where possible use themore recent bison 23 and flex 2533

60 OpenSS7 SS7 Stack

bull automake-1101bull libtool-224bull gettext-017bull flex-2533bull bison-23

It should be stressed that in particular the autoconf(1) and automake(1) must be atversion releases 263 and 1101 The versions normally distributed in some mainstreamGNULinux distributions are in fact much older than these versions28 GNU version ofthese packages configured and installed to default directories will install in lsquousrlocalrsquoallowing them to coexist with distribution installed versionsFor building documentation the build host also requires the following documentation toolsbull gs 651 or ghostscript 651 or newerbull tetex 30 or texlive 2007 or newerbull texinfo 413a or newerbull transfig 323d or newerbull imagemagick 538 or ImageMagick 538 or newerbull groff 1172 or newerbull gnuplot 37 or newerbull latex2html 162 or newer

Most desktop GNULinux distributions will have these tools however some server-styleinstallations (eg Ubuntu-server SLES 9 or Fedora 6 or 7) will not and they must beinstalled separately29

Note that texinfo 412 must not be used as it breaks the build processFor uncooked manual pages the entire groff(1) package is required on older Debian andUbuntu systems (the base package did not include grefer(1) which is used extensively byuncooked manual pages) The following will get what you need on older systems Debian apt-get install groff_extUbuntu apt-get install groff

On newer systems simply apt-get install groff

In addition the build host requires a complete tool chain for compiling for the target hostincluding kernel tools such as genksyms(8) and others

28 A notable exception is Debian and Fedora 7 Note that on Fedora 7 the gettext-devel package must beinstalled

29 In particular for CentOS Fedora 6 or 7 the tetex-latex and gnuplot packages must be loaded as wellNote also that the latex2html used to be part of the textex package (or subpackages) but is now oftenpackaged on its own Recent distributions such as SUSE 110 and Fedora 9 use the texlive package insteadof the tetex package

Chapter 6 Installation 61

If you wish to package lsquorpmsrsquo on an rpm(1) system or lsquodebsrsquo on a dpkg(1) system you willneed the appropriate tool chain Systems based on rpm(1) typically have the necessary toolchain available however dpkg(1) systems do not The following on a Debian or Ubuntusystem will get what you need apt-get install debhelper apt-get install fakeroot

To generate a configuration script and the necessary scriptlets required by the GNUautoconf(1) system execute the following commands on the working directory autoreconf -fiv strss7

where lsquostrss7rsquo is the name of the directory to where the working copy was checked outunder the previous step This command generates the lsquoconfigurersquo script and other missingpieces that are normally distributed with the release Tar Balls SRPMs and DSCs

Make sure that lsquoautoreconf --versionrsquo returns lsquo263rsquo Otherwise you may need to per-form something like the following PATH=usrlocalbin$PATH autoreconf -fiv strss7

After reconfiguring the directory the package can then be configured and built using thesame instructions as are used for the Tar Ball see Section 635 [Configuring the Tar Ball]page 67 and Section 643 [Building from the Tar Ball] page 78

Do note however that make(1) will rebuild the documentation that is normally releasedwith the package Additional tools may be necessary for building the documentationTo avoid building and installing the documentation use the lsquo--disable-develrsquo orlsquo--disable-docsrsquo option to configure described in Section 635 [Configuring the Tar Ball]page 67

When configuring the package in a working directory and while working a change-compile-test cycle that involves configuration macros or documentation I find it ofgreat advantage to invoke the GNU lsquoconfigurersquo options lsquo--enable-maintainer-modersquolsquo--enable-dependency-trackingrsquo and lsquo--disable-develrsquo The first of these threeoptions will add maintainer-specific targets to any generated lsquoMakefilersquo the second optionwill invoke automatic dependency tracking within the lsquoMakefilersquo so rebuilds after changesto macro source or documentation files will be automatically rebuilt and the last optionwill suppress rebuilding and reinstalling documentation manual pages and header filesHeader files will still be available under the lsquousrsrcrsquo directory

63 Configuration

62 OpenSS7 SS7 Stack

631 Configuring the Binary RPM

In general the binary RPM do not require any configuration however during installationit is possible to relocate some of the installation directories This allows some degree ofcustomization Relocations that are available on the binary RPM are as follows

lsquostrss7-LiS-core-2420-287-09a8-172i686rpmrsquolsquostrss7-streams-core-2420-287-09a8-172i686rpmrsquo

lsquolibmodules2420-287rsquoThis relocatable directory contains the kernel modules that providethe strss7 STREAMS core drivers and modules30

lsquostrss7-LiS-info-2420-287-09a8-172i686rpmrsquolsquostrss7-streams-info-2420-287-09a8-172i686rpmrsquo

lsquousrincludestrss72420-287rsquoThis relocatable directory contains the kernel module exportedsymbol information that allows other kernel modules to be com-piled against the correct version of the strss7 package31

lsquostrss7-dev-09a8-172i686rpmrsquo(not relocatable)

lsquostrss7-devel-09a8-172i686rpmrsquolsquousrlibrsquo

This relocatable directory contains strss7 libraries

lsquousrincludestrss7rsquoThis relocatable directory contains strss7 header files

lsquostrss7-doc-09a8-172i686rpmrsquolsquousrsharedocrsquo

This relocatable directory contains all package specific documenta-tion (including this manual) The subdirectory in this directory isthe lsquostrss7-09a8rsquo directory

lsquousrshareinforsquoThis relocatable directory contains info files (including the info ver-sion of this manual)

lsquousrsharemanrsquoThis relocatable directory contains manual pages

lsquostrss7-LiS-lib-09a8-172i686rpmrsquolsquostrss7-streams-lib-09a8-172i686rpmrsquo

lsquousrlibrsquoThis relocatable directory contains the run-time shared librariesnecessary to run applications programs and utilities developed forOpenSS7 SS7 Stack

30 Note that the lsquo_kversionrsquo of lsquo2420-287rsquo is only an example31 Note that the lsquo_kversionrsquo of lsquo2420-287rsquo is only an example Also note that the lsquoinforsquo subpackage is

only applicable to the 24 kernel series

Chapter 6 Installation 63

lsquousrsharelocalersquoThis relocatable directory contains the locale information for sharedlibrary files

lsquostrss7-source-09a8-172i686rpmrsquo

lsquousrsrcrsquoThis relocatable directory contains the source code

lsquostrss7-LiS-util-09a8-172i686rpmrsquolsquostrss7-streams-util-09a8-172i686rpmrsquo

lsquousrbinrsquoThis relocatable directory contains binary programs and utilities

lsquousrsbinrsquoThis relocatable directory contains system binary programs andutilities

lsquousrlibexecrsquoThis relocatable directory contains test programs

lsquoetcrsquo This relocatable directory contains init scripts and configurationinformation

Installation

To install the binary RPM See Section 651 [Installing the Binary RPM] page 79

632 Configuring the Debian DEB

In general the binary DEB do not require any configuration

Installation

To install the Debian DEB See Section 652 [Installing the Debian DEB] page 80

633 Configuring the Source RPM

When building from the source RPM (see Section 641 [Building from the Source RPM]page 77) the rebuild process uses a number of macros from the userrsquos lsquorpmmacrosrsquo file asdescribed in rpm(8)

Following is an example of the lsquo~rpmmacrosrsquo file that I use for rebuilding RPMS

64 OpenSS7 SS7 Stack

RPM macros for building rpms

vendor OpenSS7 Corporation

distribution OpenSS7

disturl httpwwwopenss7org

packager Brian Bidulock ltbidulockopenss7orggt

url httpwwwopenss7org

_signature gpg

_gpg_path homebriangnupg

_gpg_name openss7openss7org

_gpgbin usrbingpg

_source_payload w9bzdio

_binary_payload w9bzdio

_unpackaged_files_terminate_build 1

_missing_doc_files_terminate_build 1

_use_internal_dependency_generator 0

_repackage_all_erasures 0

_rollback_transaction_on_failure 0

configure2_5x configure

make make When building from the source RPM (see Section 641 [Building from the Source RPM]page 77) it is possible to pass a number of additional configuration options to therpmbuild(1) process

The additional configuration options are described below

Note that distributions that use older versions of rpm do not have the lsquo--withrsquo orlsquo--withoutrsquo options defined To achieve the same effect as

--with someparm=somearg

do

--define _with_someparm --with-someparm=somearg

This is a generic description of common rpmbuild(1) options Not all rpmbuild(1) optionsare applicable to all SRPMs Options that are kernel module specific are only applicable toSRPMs that build kernel modules STREAMS options are only applicable to SRPMs thatprovide or require STREAMS

--define _kversion $PACKAGE_KVERSIONSpecifies the kernel version other than the running kernel for which tobuild If _kversion is not defined when rebuilding the environmentvariable PACKAGE KVERSION is used If the environment variablePACKAGE KVERSION is not defined then the version of the runningkernel (ie discovered with lsquouname -rrsquo) is used as the target version forkernel-dependent packages This option can also be defined in an lsquorpmspecrsquofile using the macro name lsquo_kversionrsquo

Chapter 6 Installation 65

--with checks--without checks

Enable or disable preinstall checks Each packages supports a number ofpreinstall checks that can be performed by invoking the lsquocheckrsquo target withautomake(1) These currently consist of checking each kernel module forunresolved kernel symbols checking for documentation for exported kernelmodule symbols checking for documentation for exported library symbolschecking for standard options for build and installable programs checkingfor documentation for built and installable programs Normally these checksare only run in maintainer mode but can be enabled and disabled with thisoption

--with k-optimize=HOW--without k-optimize

Specify lsquoHOWrsquo optimization normal size speed or quick size compiles kernelmodules -Os speed compiles kernel modules -O3 and quick compiles kernelmodules -O0 The default is normal Use with care

--with cooked-manpages--without cooked-manpages

Some systems do not like grefer(1) references in manual pages32 This optionwill cook soelim(1) refer(1) tbl(1) and pic(1) commands from the man-ual pages and also strip groff(1) comments The default is to leave manualpages uncooked they are actually smaller that way

--with public--without public

Release public packages or private packages This option has no effect on thelsquostrss7rsquo package The default is to release public packages

--with k-debug--without k-debug

Specifies whether kernel debugging is to be performed on the build kernel mod-ules Mutually exclusive with test and safe below This has the effect ofremoving static and inline attributes from functions and invoking all debuggingmacros in the code The default is to not perform kernel debugging

--with k-test--without k-test

Specifies whether kernel testing is to be performed Mutually exclusive withdebug above and safe below This has the effect of removing static and inlineattributes from functions and invoking most debugging macros in the code Thedefault is to not perform kernel testing

32 In particular some Debian systems do not load the groff(1) extensions package and do not have grefer(1)

installed Although this is an oversight on the configuration of the particular Debian system we accomodatesuch misconfiguration with this feature

66 OpenSS7 SS7 Stack

--with k-safe--without k-safe

Specifies whether kernel saftey is to be performed Mutually exclusive withdebug and test above This has the effect of invoking some more pedanticassertion macros in the code The default is not to apply kernel safety

--with k-inline--without k-inline

Specifies whether kernel inline functions are to be placed inline This hasthe effect of adding the lsquo-finline-functionsrsquo flag to CFLAGS for compil-ing kernel modules Linux 24 kernels are normally compiled lsquo-O2rsquo whichdoes not respect the inline directive This compiles kernel modules withlsquo-finline-functionsrsquo to get closer to lsquo-O3rsquo optimization For better opti-mization controls See Section 635 [Configuring the Tar Ball] page 67

--with k-modversions--without k-modversions

Specifies whether kernel symbol versions are to be applied to symbols exportedby package kernel modules The default is to version exported module symbolsThis package does not export symbols so this option has no effect

--with devfs--without devfs

Specifies whether the build is for a device file system daemon enabled systemwith autoloading or not The default is to build for devfsd(1) autoloadingwhen CONFIG DEVFS FS is defined in the target kernel The lsquorebuildrsquo tar-get uses this option to signal to the RPM spec file that the lsquodevrsquo subpackageneed not be built This option does not appear when the package has no devices

--with devel--without devel

Specifies whether to build development environment packages such as those thatinclude header files static libraries manual pages and texinfo(1) documen-tation The default is to build development environment packages This optioncan be useful when building for an embedded target where only the runtimecomponents are desired

--with docs--without docs

Specifies whether to build and install major documentation such manual pagesand texinfo(1) documentation The default is to build and install documen-tation This option can be useful when building for an embedded target whereonly the runtime and static compile components are desired but not majordocumentation This option does not override the setting of --without devel

--with tools--without tools

Specifies whether user space packages are to be built The default is to builduser space packages This option can be useful when rebuilding for multiplearchitectures and target kernels The lsquorebuildrsquo automake(1) target uses this

Chapter 6 Installation 67

feature when rebuilding for all available architectures and kernels to rebuilduser packages once per architecture instead of once per kernel

--with modules--without modules

Specifies whether kernel modules packages are to be built The default is tobuild kernel module packages This option can be useful when rebuilding formultiple architectures and target kernels The lsquorebuildrsquo automake(1) targetuses this feature to rebuild for all available architectures and kernels

--with lis--without lis

Specifies that the package is to be rebuilt against Linux STREAMS The defaultis to automatically identify whether lsquoLiSrsquo or lsquostreamsrsquo is loaded on the buildsystem and build accordingly

--with lfs--without lfs

Specifies that the package is to be rebuilt against Linux Fast-STREAMS Thedefault is to automatically identify whether lsquoLiSrsquo or lsquostreamsrsquo is loaded on thebuild system and build accordingly

In general the default values of these options are sufficient for most purposes and no optionsneed be provided when rebuilding the Source RPMs

Build

To build from the source RPM See Section 641 [Building from the Source RPM] page 77

634 Configuring the Debian DSC

The Debian DSC can be configured by passing options in the environment variableBUILD DEBOPTIONS The options placed in this variable take the same form as thosepassed to the lsquoconfigurersquo script See Section 635 [Configuring the Tar Ball] page 67 Foran example See Section 642 [Building from the Debian DSC] page 78

Build

To build from the Debian DSC See Section 642 [Building from the Debian DSC] page 78

635 Configuring the Tar Ball

All of the normal GNU autoconf(1) configuration options and environment variables applyAdditional options and environment variables are provided to tailor or customize the buildand are described below

6351 Configure Options

This is a generic description of common lsquoconfigurersquo options that are in addition to thoseprovided by autoconf(1) automake(1) libtool(1) and gettext(1)Not all lsquoconfigurersquo options are applicable to all release packages Options that arekernel module specific are only applicable to release packages that build kernel modulesSTREAMS options are only applicable to release packages that provide or requireSTREAMS

68 OpenSS7 SS7 Stack

Following are the additional lsquoconfigurersquo options their meaning and use

--enable-checks--disable-checks

Enable or disable preinstall checks Each release package supports a numberof preinstall checks that can be performed by invoking the lsquocheckrsquo target withmake(1) These currently consist of checking each kernel module for unresolvedkernel symbols checking for documentation for exported kernel module sym-bols checking for documentation for exported library symbols checking forstandard options for build and installable programs checking for documenta-tion for built and installable programs Normally these checks are only run inmaintainer mode but can be enabled and disabled with this option

--enable-autotest--disable-autotest

Enable or disable pre- and post-installation testing Each release package sup-ports a number of autotest test suites that can be performed by invokingthe lsquoinstallcheckrsquo target with make(1) These currently consist of runninginstalled modules commands and binaries against a number of specific testcases Normally these checks are only run in maintainer mode but can beenabled and disabled with this option

--disable-compress-manpagesCompress manual pages with lsquogzip -9rsquo or lsquobzip2 -9rsquo or leave them uncom-pressed The default is to compress manual pages with lsquogzip -9rsquo or lsquobzip2 -9rsquoif a single compressed manual page exists in the target installation directory(lsquo--mandirrsquo) This disables automatic compression

--disable-publicDisable public release This option is not usable on public releases and only hasa usable effect on OpenSS7 SS7 Stack when the package is acquired from CVSIn particular the STREAMS SS7VoIPISDNSIGTRAN Stacks (strss7-09a8) release package has a large number of non-public components Speci-fying this option will cause the package to build and install all private releasecomponents in addition to the public release components This option affects allrelease packages Most release packages do not have private release components

--disable-initscriptsDisables the installation of init scripts The default is to configure and installinit scripts and their associated configuration filesAlthough the default is to install init scripts installation attempts to detect aSystem V init script configuration and if one is not found the init scripts areinstalled into the appropriate directories but the symbolic links to the run levelscript directories are not generated and the script is not invoked Therefore itis safe to leave this option unchanged even on distributions that do not supportSystem V init script layout

--disable-32bit-libsDisables the build and install of 32-bit compatibility libraries and test binarieson 64-bit systems that support 32-bit compatibility The default is to build

Chapter 6 Installation 69

and install 32-bit compatibility libraries and test binaries This option canbe usefule when configuring for an embedded target where only native sharedlibraries and binaries are desired

--disable-develDisables the installation of development environment components such asheader files static libraries manual pages and texinfo(1) documentationThe default is to install development environment components This optioncan be useful when configuring for an embedded target where only the runtimecomponents are desired or when performing a edit-compile-test cycle

--disable-docsDisables the build and installation of major documentation such manual pagesand texinfo(1) documentation The default is to build and install documen-tation This option can be useful when building for an embedded target whereonly the runtime and static compile components are desired but not major doc-umentation This option does not override the setting of lsquo--disable-develrsquo

--enable-toolsSpecifies whether user space programs and libraries are to be built and installedThe default is to build and install user space programs and libraries This optioncan be useful when rebuilding for multiple architectures and target kernelsparticularly under rpm(1) or dpkg(1) The lsquorebuildrsquo automake(1) target usesthis feature when rebuilding RPMs for all available architectures and kernelsto rebuild user packages once per architecture instead of once per kernel

--enable-modulesSpecifies whether kernel modules are to be built and installed The default is tobuild and install kernel modules This option can be useful when rebuilding formultiple architectures and target kernels particularly under rpm(1) or dpkg(1)The lsquorebuildrsquo automake(1) target uses this feature to rebuild for all availablearchitectures and kernels This option has no effect for release packages thatdo not provide kernel modules

--enable-archSpecifies whether architectural dependent package components are to be builtand installed This option can be useful when rebuilding for multiple architec-tures and target kernels particularly under dpkg(1) The default is to config-ure build and install architecture dependent package components This optionhas no effect for release packages that do not provide architecture dependentcomponents

--enable-indepSpecifies whether architecture independent package components are to be builtand installed This option can be useful when rebuilding for multiple architec-tures and target kernels particularly under dpkg(1) The default is to con-figure build and install architecture independent package components Thisoptions has no effect for release packages that do not provide architecture in-dependent components

70 OpenSS7 SS7 Stack

--enable-k-inlineEnable kernel inline functions Most Linux kernels build withoutlsquo-finline-functionsrsquo This option adds the lsquo-finline-functionsrsquo andlsquo-Winlinersquo flags to the compilation of kernel modules Use with care Thisoption has no effect for release packages that do not provide kernel modules

--enable-k-safeEnable kernel module run-time safety checks Specifies whether kernel safety isto be performed This option is mutually exclusive with lsquo--enable-k-testrsquo andlsquo--enable-k-debugrsquo below This has the effect of invoking some more pedanticassertion macros in the code The default is not to apply kernel safety Thisoption has no effect for release packages that have are no kernel modules

--enable-k-testEnable kernel module run-time testing Specifies whether kernel testing is to beperformed This option is mutually exclusive with lsquo--enable-k-safersquo aboveand lsquo--enable-k-debugrsquo below This has the effect of remove static andinline attributes from functions and invoking most non-performance affectingdebugging macros in the code The default is not to perform kernel testing Thisoption has no effect for release packages that do not provide kernel modules

--enable-k-debugEnable kernel module run-time debugging Specifies whether kernel debuggingis to be performed This option is mutually exclusive with lsquo--enable-k-safersquoand lsquo--enable-k-testrsquo above This has the effect of removing static andinline attributes from functions and invoking all debugging macros in thecode (including performance-affecting debug macros) The default is to notperform kernel debugging This option has no effect for release packages thatdo not provide kernel modules

--disable-k-modversionsDisable module versions on strss7 symbols Specifies whether kernel symbolversions are to be used on symbols exported from built strss7 modules Thedefault is to provide kernel symbol versions on all exported symbols Thisoption has no effect for release packages that do not provide kernel modules

--enable-devfs--disable-devfs

Specifies whether the build is for a device file system daemon enabled systemwith autoloading or not The default is to build for devfsd(8) autoload-ing when CONFIG DEVFS FS is defined in the target kernel The lsquoreuildrsquoautomake(1) target uses this option to signal to the RPM spec file that the lsquodevrsquosubpackage need not be built This option has no effect for release packagesthat do not provide devices

--with-gpg-user=GNUPGUSERSpecify the gpg(1) lsquoGNUPGUSERrsquo for signing RPMs and tarballs The defaultis the content of the environment variable GNUPGUSER If unspecified thegpg(1) program will normally use the user name of the account invoking thegpg(1) program For building source RPMs the RPM macro lsquo_gpg_namersquo willoverride this setting

Chapter 6 Installation 71

--with-gpg-home=GNUPGHOMESpecify the lsquoGNUPGHOMErsquo directory for signing RPMs and tarballs The defaultis the userrsquos lsquo~gpgrsquo directory For building source RPMs the RPM macrolsquo_gpg_pathrsquo will override this setting

--with-pkg-epoch=EPOCHSpecifies the epoch for the package This is neither used for rpm(1) nor dpkg(1)packages it applies to the tarball release as a whole The default is the contentsof the lsquopkgepochrsquo file in the release package source directory or if that file doesnot exist zero (0)

--with-pkg-release=RELEASESpecifies the release for the package This is neither used for rpm(1) nordpkg(1) packages it applies to the tarball release as a whole The defaultis the contents of the lsquopkgreleasersquo file in the release package source directoryor if that file does not exist one (1) This is the number after the last pointin the package version number

--with-pkg-distdir=DIRSpecifies the distribution directory for the package This is used by the main-tainer for building distributions of tarballs This is the directory into whicharchives are copied for distribution The default is the top build directory

--with-cooked-manpagesConvert manual pages to remove macro dependencies and grefer(1) refer-ences Some systems do not like grefer(1) references in manual pages33 Thisoption will cook soelim(1) refer(1) tbl(1) and pic(1) commands fromthe manual pages and also strip groff(1) comments The default is to leavemanual pages uncooked (they are actually smaller that way)

--with-rpm-epoch=PACKAGE_EPOCHSpecify the lsquoPACKAGE_EPOCHrsquo for the RPM spec file The default is to use theRPM epoch contained in the release package file lsquorpmepochrsquo

--with-rpm-release=PACKAGE_RPMRELEASESpecify the lsquoPACKAGE_RPMRELEASErsquo for the RPM lsquospecrsquo file The default is touse the RPM release contained in the release package file lsquorpmreleasersquo

--with-rpm-extra=PACKAGE_RPMEXTRASpecify the lsquoPACKAGE_RPMEXTRArsquo extra release information for the RPM specfile The default is to use the RPM extra release information contained in therelease package file lsquorpmextrarsquo Otherwise this value will be determined fromautomatic detection of the RPM distribution

--with-rpm-topdir=PACKAGE_RPMTOPDIRSpecify the lsquoPACKAGE_RPMTOPDIRrsquo top directory for RPMs If specified with anull lsquoPACKAGE_RPMTOPDIRrsquo the default directory for the RPM distribution willbe used If this option is not provided on the command line the top builddirectory will be used as the RPM top directory as well

33 In particular some Debian or Ubuntu systems do not load the groff(1) extensions package and do not havegrefer(1) installed Although this is an oversight on the configuration of the particular Debian or Ubuntusystem we accomodate such misconfiguration with this feature

72 OpenSS7 SS7 Stack

--with-deb-epoch=EPOCHSpecify the lsquoPACKAGE_DEBEPOCHrsquo for the DEB control file The default is to usethe DEB epoch contained in the release package file lsquodebepochrsquo

--with-deb-release=RELEASESpecify the lsquoPACKAGE_DEBRELEASErsquo for the DEB control file The default is touse the DEB release contained in the release package file lsquodebreleasersquo

--with-deb-topdir=DIRSpecify the lsquoPACKAGE_DEBTOPDIRrsquo top directory for DEBs If specified with anull lsquoPACKAGE_DEBTOPDIRrsquo the default directory for the DEB distribution willbe used If this option is not provided on the command line the top builddirectory will be used as the DEB top directory as well

--with-k-release=PACKAGE_KRELEASESpecify the lsquoPACKAGE_KRELEASErsquo release of the Linux kernel for which the buildis targeted When not cross compiling if this option is not set the build willbe targeted at the kernel running in the build environment (eg lsquouname -rrsquo)When cross-compiling this option must be specified or the configure script willgenerate an error and terminate

--with-k-linkage=PACKAGE_KLINKAGESpecify the lsquoPACKAGE_KLINKAGErsquo for kernel module linkage This can be one ofthe followingbull lsquoloadablersquo ndash loadable kernel modulesbull lsquolinkablersquo ndash linkable kernel objects

The default is to build loadable kernel modules

--with-k-modules=K-MODULES-DIRSpecify the lsquoK-MODULES-DIRrsquo directory to which kernel modules will be installedThe default is based on the option lsquo--with-k-releasersquo lsquo--with-k-prefixrsquoand lsquo--with-k-rootdirrsquo The default is lsquoDESTDIRrsquolsquoK-MODULES-DIRrsquo which istypically lsquoDESTDIRlibmodulesPACKAGE_KRELEASErsquo This directory is nor-mally located by the lsquoconfigurersquo script and need only be provided for specialcross-build environments or when requested by a lsquoconfigurersquo script error mes-sage

--with-k-build=K-BUILD-DIRSpecify the lsquoK-BUILD-DIRrsquo base kernel build directory in which configured kernelsource resides The default is lsquoDESTDIRK-MODULES-DIRbuildrsquo This direc-tory is normally located by the lsquoconfigurersquo script and need only be providedfor special cross-build environments or when requested by a lsquoconfigurersquo scripterror message

--with-k-source=K-SOURCE-DIRSpecify the lsquoK-SOURCE-DIRrsquo base kernel build directory in which configuredkernel source resides The default is lsquoDESTDIRK-MODULES-DIRsourcersquo Thisdirectory is normally located by the lsquoconfigurersquo script and need only be pro-vided for special cross-build environments or when requested by a lsquoconfigurersquoscript error message

Chapter 6 Installation 73

--with-k-modver=K-MODVER-FILESpecify the lsquoK-MODVER-FILErsquo kernel module versions file The default is lsquoK-BUILD-DIRModulesymversrsquo This file is normally located by the lsquoconfigurersquoscript and need only be provided for special cross-build environments or whenrequested by a lsquoconfigurersquo script error message

--with-k-sysmap=K-SYSMAP-FILESpecify the lsquoK-SYSMAP-FILErsquo kernel system map file The default is lsquoK-BUILD-DIRSystemmaprsquo This file is normally located by the lsquoconfigurersquo script andneed only be provided for special cross-build environments or when requestedby a lsquoconfigurersquo script error message

--with-k-archdir=K-ARCHDIRSpecify the lsquoK-ARCHDIRrsquo kernel source architecture specific directory The de-fault is lsquoDESTDIRK-SOURCE-DIRarchrsquo This directory is normally located bythe lsquoconfigurersquo script and need only be provided for special cross-build envi-ronments or when requested by a lsquoconfigurersquo script error message

--with-k-machdir=K-MACHDIRSpecify the lsquoK-MACHDIRrsquo kernel source machine specific directory The defaultis lsquoDESTDIRK-SOURCE-DIRtarget_cpu rsquo This directory is normally locatedby the lsquoconfigurersquo script and need only be provided for special cross-buildenvironments or when requested by a lsquoconfigurersquo script error message

--with-k-config=K-CONFIGSpecify the lsquoK-CONFIGrsquo kernel configuration file The default is lsquoBOOTconfig-K-RELEASE rsquo This configuration file is normally located by the lsquoconfigurersquoscript and need only be provided for special cross-build environments or whenrequested by a lsquoconfigurersquo script error message

--with-k-optimize=HOW--without-k-optimize

Specify lsquoHOWrsquo optimization normal size speed or quick size compiles kernelmodules -Os speed compiles kernel modules -O3 and quick compiles kernelmodules -O0 The default is normal Use with care The most common useof this option is to specify lsquo--with-k-optimize=speed --disable-k-safersquo tocompile for maximum performance Nevertheless even these setting are ricingand the resulting kernel modules will only be about 5 faster

--with-lis[=LIS-DIR]--without-lis

Specify the lsquoLIS-DIRrsquo directory in which to find LiS headers Also specifiesthat the build is to be made against Linux STREAMS The default is lsquousrincludeLiSrsquo if it exists lsquonorsquo otherwise This directory is normally located bythe lsquoconfigurersquo script and need only be provided for special cross-build envi-ronments or when requested by a lsquoconfigurersquo script error message This optionhas no effect on release packages that do not use the STREAMS subsystem

74 OpenSS7 SS7 Stack

--with-lfs[=LFS-DIR]--without-lfs

Specify the lsquoLFS-DIRrsquo directory in which to find LfS headers Also specifiesthat the build is to be made against Linux Fast-STREAMS The default islsquousrincludestreamsrsquo if it exists lsquonorsquo otherwise This directory is normallylocated by the lsquoconfigurersquo script and need only be provided for special cross-build environments or when requested by a lsquoconfigurersquo script error messageThis option has no effect on release packages that do not use the STREAMSsubsystem

--with-strconf-master=STRCONF_CONFIGSpecify the lsquoSTRCONF_CONFIGrsquo file name to which the configuration master fileis written The default is lsquoConfigmasterrsquo This option has no effect on releasepackages that do not use the STREAMS subsystem and the strconf scriptsThis option should not be specified when configuring the master package as thesetting for all add-on packages will conflict

--with-base-major=STRCONF_MAJBASEStart numbering for major devices at lsquoSTRCONF_MAJBASErsquo The default is lsquo230rsquoThis option has no effect on release packages that do not use the STREAMSsubsystem and the strconf scripts This option should not be specified whenconfiguring the master package as the setting for all add-on packages will con-flict

6352 Environment Variables

Following are additional environment variables to lsquoconfigurersquo their meaning and use

GPG GPG signature command This is used for signing distributions by the main-tainer By default lsquoconfigurersquo will search for this tool

GNUPGUSERGPG user name This is used for signing distributions by the maintainer

GNUPGHOMEGPG home directory This is used for signing distributions by the maintainer

GPGPASSWDGPG password for signing This is used for signing distributions by the main-tainer This environment variable is not maintained by the lsquoconfigurersquo scriptand should only be used on an isolated system

SOELIM Roff source elimination command soelim(1) This is only necessary when theoption lsquo--with-cooked-manpagesrsquo has been specified and lsquoconfigurersquo cannotfind the proper soelim(1) command By default lsquoconfigurersquo will search forthis tool

REFER Roff references command refer(1) This is only necessary when the optionlsquo--with-cooked-manpagesrsquo has been specified and lsquoconfigurersquo cannot find theproper refer(1) command By default lsquoconfigurersquo will search for this tool

TBL Roff table command tbl(1) This is only necessary when the optionlsquo--with-cooked-manpagesrsquo has been specified and lsquoconfigurersquo cannot findthe proper tbl(1) command By default lsquoconfigurersquo will search for this tool

Chapter 6 Installation 75

PIC Roff picture command pic(1) This is only necessary when the optionlsquo--with-cooked-manpagesrsquo has been specified and lsquoconfigurersquo cannot findthe proper pic(1) command By default lsquoconfigurersquo will search for this tool

GZIP Default compression options provided to GZIP_CMD

GZIP CMDManpages (and kernel modules) compression commands gzip(1) This is onlynecessary when the option lsquo--without-compressed-manpagesrsquo has not beenspecified and lsquoconfigurersquo cannot find the proper gzip(1) command By de-fault lsquoconfigurersquo will search for this tool

BZIP2 Default compression options provided to BZIP2_CMD

BZIP2 CMDManpages compression commands bzip2(1) This is only necessary whenthe option lsquo--without-compressed-manpagesrsquo has not been specifiedand lsquoconfigurersquo cannot find the proper bzip2(1) command By defaultlsquoconfigurersquo will search for this tool

MAKEWHATISManpages apropros database rebuild command makewhatis(8) By defaultlsquoconfigurersquo will search for this tool By default lsquoconfigurersquo will search forthis tool

CHKCONFIGChkconfig command chkconfig(8) This was used for installation of initscripts All packages now come with init_install(8) and init_remove(8)scripts used to install and remove init scripts on both RPM and Debian sys-tems

RPM Rpm command rpm(1) This is only necessary for RPM builds By defaultlsquoconfigurersquo will search for this tool

RPMBUILDBuild RPM command rpmbuild(1) This is only necessary for RPM buildsBy default lsquoconfigurersquo will search for this tool rpm(1) will be used insteadof rpmbuild(1) only if rpmbuild(1) cannot be found

DPKG Dpkg comand dpkg(1) This command is used for building Debian packagesBy default lsquoconfigurersquo will search for this tool

DPKG SOURCEDpkg-source command dpkg-source(1) This command is used for buildingDebian dsc packages By default lsquoconfigurersquo will search for this tool

DPKG BUILDPACKAGEDpkg-buildpackage command dpkg-buildpackage(1) This command is usedfor building Debian deb packages By default lsquoconfigurersquo will search for thistool

DEB BUILD ARCHDebian build architecture This variable is used for building Debian packagesThe default is the autoconf build architecture

76 OpenSS7 SS7 Stack

DEB BUILD GNU CPUDebian build cpu This variable is used for building Debian packages Thedefault is the autoconf build cpu

DEB BUILD GNU SYSTEMDebian build os This variable is used for building Debian packages The defaultis the autoconf build os

DEB BUILD GNU TYPEDebian build alias This variable is used for building Debian packages Thedefault is the autoconf build alias

DEB HOST ARCHDebian host architecture This variable is used for building Debian packagesThe default is the autoconf host architecture

DEB HOST GNU CPUDebian host cpu This variable is used for building Debian packages Thedefault is the autoconf host cpu

DEB HOST GNU SYSTEMDebian host os This variable is used for building Debian packages The defaultis the autoconf host os

DEB HOST GNU TYPEDebian host alias This variable is used for building Debian packages Thedefault is the autoconf host alias

LDCONFIGConfigure loader command ldconfig(8) Command used to configure theloader when libraries are installed By default lsquoconfigurersquo will search for thistool

DESTDIR Cross build root directory Specifies the root directory for build and installation

DEPMODBuild kernel module dependencies command depmod(8) This is used dur-ing installation of kernel modules to a running kernel to rebuild the modulesdependency database By default lsquoconfigurersquo will search for this tool

MODPROBEProbe kernel module dependencies command modprobe(8) This is used duringinstallation of kernel modules to a running kernel to remove old modules Bydefault lsquoconfigurersquo will search for this tool

LSMOD List kernel modules command lsmod(8) This is used during installation ofkernel modules to a running kernel to detect old modules for removal Bydefault lsquoconfigurersquo will search for this tool

LSOF List open files command lsof(1) This is used during installation of kernelmodules to a running kernel to detect old modules for removal Processes own-ing the old kernel modules will be killed and the module removed If the processrestarts the new module will be demand loaded By default lsquoconfigurersquo willsearch for this tool

Chapter 6 Installation 77

GENKSYMSGenerate kernel symbols command genksyms(8) This is used for generatingmodule symbol versions during build By default lsquoconfigurersquo will search forthis tool

KGENKSYMSLinux 26 generate kernel symbols command genksyms(8) This is used forgenerating module symbol version during build By default lsquoconfigurersquo willsearch for this tool

OBJDUMPObject dumping command objdump(1) This is used for listing informationabout object files By default lsquoconfigurersquo will search for this tool

NM Object symbol listing command nm(1) This is used for listing informationabout object files By default lsquoconfigurersquo will search for this tool

MODPOST CACHECache file for modpost(1) The version of the modpostsh script that ships witheach package can cache information to a cache file to speed multiple builds Thisenvironment variable is used to specify a cache file

AUTOM4TEAutom4te command autom4te(1) This is the executable used by autotestfor pre- and post-installation checks By default lsquoconfigurersquo will search forthis tool

AUTOTESTAutotest macro build command autom4te(1) This is the executable used byautotest for pre- and post-installation checks By default lsquoconfigurersquo willsearch for this tool

6353 Build

To build from the tar ball See Section 643 [Building from the Tar Ball] page 78

64 Building

641 Building from the Source RPM

If you have downloaded the necessary source RPM (see Section 625 [Downloading theSource RPM] page 57) then the following instructions will rebuild the binary RPMs onyour system Once the binary RPMs are rebuilt you may install them as described above(see Section 651 [Installing the Binary RPM] page 79)The source RPM is rebuilt to binary RPMs as follows wget httpwwwopenss7orgrpmsSRPMSstrss7-09a8-1srcrpm rpmbuild --rebuild -vv strss7-09a8-1srcrpm

The rebuild process can also recognize a number of options that can be used to tweak theresulting binaries See Section 633 [Configuring the Source RPM] page 63 These optionsare provided on the rpm(1) command line For example

78 OpenSS7 SS7 Stack rpmbuild --rebuild -vv --target athlon-redhat-linux

--define _kversion 2420-287 --with lfs -- strss7-09a8-1srcrpm

will rebuild binary RPM for the lsquo2420-287rsquo kernel for the lsquoathlonrsquo architecture againstthe Linux Fast-STREAMS STREAMS package34

Installation

To install the resulting binary RPM See Section 651 [Installing the Binary RPM] page 79

642 Building from the Debian DSC

If you have downloaded the necessary Debian DSC (see Section 626 [Downloading theDebian DSC] page 57) then the following instructions will rebuild the binary DEBs onyour system Once the binary DEBs are rebuilt you may install them as described above(see Section 652 [Installing the Debian DEB] page 80)The Debian DSC is rebuilt to binary DEBs as follows wget httpwwwopenss7orgdebianstrss7_09a8-0dsc wget httpwwwopenss7orgdebianstrss7_09a8-0targz dpkg-buildpackage -v strss7_09a8-0dsc

The rebuild process can also recognize a number of options that can be used to tweak theresulting binaries See Section 634 [Configuring the Debian DSC] page 67 These optionsare provided in the environment variable BUILD DPKGOPTIONS and have the same formas the options to lsquoconfigurersquo See Section 635 [Configuring the Tar Ball] page 67 Forexample BUILD_DEBOPTIONS=rsquo

--with-lfs--with-k-release=2420-287--host=athlon-debian-linux-gnursquo

dpkg-buildpackage -v strss7_09a8-0dsc

will rebuild binary DEB for the lsquo2420-287rsquo kernel for the lsquoathlonrsquo architecture againstthe Linux Fast-STREAMS STREAMS package35

Installation

To install the resulting binary DEB See Section 652 [Installing the Debian DEB] page 80

643 Building from the Tar Ball

If you have downloaded the tar ball (see Section 627 [Downloading the Tar Ball] page 58)then the following instructions will rebuild the package on your system (Note that thebuild process does not required root privilege)

34 Note that the lsquo_kversionrsquo of lsquo2420-287rsquo is only an example35 Note that the lsquo_kversionrsquo of lsquo2420-287rsquo is only an example

Chapter 6 Installation 79

6431 Native Build

Following is an example of a native build against the running kernel wget httpwwwopenss7orgstrss7-09a8tarbz2 tar -xjvf strss7-09a8tarbz2 pushd strss7-09a8 configure make popd 6432 Cross-Build

Following is an example for a cross-build The kernel release version must always be specifiedfor a cross-build36 If you are cross-building specify the root for the build with environmentvariable DESTDIR The cross-compile host must also be specified if different from thebuild host Either the compiler and other tools must be in the usual places where GNUautoconf(1) can find them or they must be specified with declarations such as lsquoCC=usrlibppc-linuxgccrsquo on the lsquoconfigurersquo command line wget httpwwwopenss7orgstrss7-09a8tarbz2 tar -xjvf strss7-09a8tarbz2 pushd strss7-09a8 configure DESTDIR=someotherroot --with-k-release=2418 --host sparc-linux make popd 65 Installing

651 Installing the Binary RPM

If you have downloaded the necessary binary RPMs (see Section 623 [Downloading the Bi-nary RPM] page 51) or have rebuilt binary RPMs using the source RPM (see Section 641[Building from the Source RPM] page 77) then the following instructions will install theRPMs on your system For additional information on rpm(1) see rpm(8) pushd RPMSi686 rpm -ihv strss7--09a8-172i686rpm

You must have the correct binary RPMs downloaded or built for this to be successfulSome of the packages are relocatable and can have final installation directories altered withthe lsquo--relocatersquo option to rpm(1) see rpm(8) For example the following will relocatethe documentation and info directories

36 Because it is a cross-build the kernel version on the build machine is unlikely to be the kernel version ofthe target machine except by coincidence

80 OpenSS7 SS7 Stack pushd RPMSi686 rpm -ihv

--relocate rsquousrsharedoc=usrlocalsharedocrsquo --relocate rsquousrshareinfo=usrlocalshareinforsquo -- strss7-doc-09a8-172i686rpm

The previous example will install the lsquostrss7-docrsquo package by will relocate the documen-tation an info directory contents to the lsquousrlocalrsquo version

652 Installing the Debian DEB

If you have downloaded the necessary Debian DEBs (see Section 624 [Downloading the De-bian DEB] page 54) or have rebuild binary DEBs using the Debian DSC (see Section 642[Building from the Debian DSC] page 78) then the following instructions will install theDEBs on your system For additional information see dpkg(8) pushd debian dpkg -iv strss7-_09a8-0_deb

You must have the correct lsquodebrsquo files downloaded or build for this to be successful

653 Installing the Tar Ball

After the build process (see Section 643 [Building from the Tar Ball] page 78) installationonly requires execution of one of two automake(1) targets

lsquomake installrsquoThe lsquoinstallrsquo automake(1) target will install all the components of the pack-age Root privilege is required to successfully invoke this target

lsquomake install-striprsquoThe lsquoinstall-striprsquo automake(1) target will install all the components of thepackage but will strip unnecessary information out of the objects and compressmanual pages Root privilege is required to successfully invoke this target

66 Removing

661 Removing the Binary RPM

To remove an installed version of the binary RPMs (whether obtained from the OpenSS7binary RPM releases or whether created by the source RPM) execute the following com-mand rpm -evv lsquorpm -qa | grep rsquo^strss7-rsquolsquo

For more information see rpm(1)

662 Removing the Debian DEB

To remove and installed version of the Debian DEB (whether obtained from the OpenSS7binary DEB releases or whether created by the Debian DSC) execute the following com-mand

Chapter 6 Installation 81 dpkg -ev lsquodpkg -l | grep rsquo^strss7-rsquolsquo

For more information see dpkg(8)

663 Removing the Source RPM

To remove all the installed binary RPM build from the source RPM see Section 661[Removing the Binary RPM] page 80 Then simply remove the binary RPM package filesand source RPM file A command such as find -name rsquostrss7-rpmrsquo -type f -print0 | xargs --null rm -f

should remove all lsquostrss7rsquo RPMs from your system

664 Removing the Debian DSC

To remove all the installed binary DEB build from the Debian DSC see Section 662[Removing the Debian DEB] page 80 Then simply remove the binary DEB package filesand Debian DSC file A command such as find ( -name rsquostrss7-debrsquo

-o -name rsquostrss7-dscrsquo -o -name rsquostrss7-tar ) -type f -print0 | xargs --null rm -f

should remove all lsquostrss7rsquo DEBs DSCs and TARs from your system

665 Removing the Tar Ball

To remove a version installed from tar ball change to the build directory where the packagewas built and use the lsquouninstallrsquo automake(1) target as follows cd usrsrcstrss7 make uninstall cd rm -fr strss7-09a8 rm -f strss7-09a8targz rm -f strss7-09a8tarbz2

If you have inadvertently removed the build directory and therefore no longer have aconfigured directory from which to execute lsquomake uninstallrsquo then perform all of the stepsfor configuration and installation (see Section 653 [Installing the Tar Ball] page 80) exceptthe final installation and then perform the steps above

67 Loading

671 Normal Module Loading

When OpenSS7 SS7 Stack installs modules and drivers belonging to release packages arenormally configured for demand loading The lsquoinstallrsquo and lsquoinstall-striprsquo automake(1)

82 OpenSS7 SS7 Stack

targets will make the necessary changes to the lsquoetcmodulesconfrsquo file and place the mod-ules in an appropriate place in lsquolibmodules2420-287strss7rsquo The lsquomake installrsquoprocess should have copied the kernel module files lsquostreams-orsquo to the directory lsquolibmodules2420-287strss7rsquo This means that to load any of these modules you cansimply execute for example lsquomodprobe stream-somedriver rsquo37

6711 Linux Fast-STREAMS Module Loading

The lsquostrss7rsquo demand load system supports both the old kerneld and the new kmod mech-anisms for demand loading kernel modules

The convention for lsquostrss7rsquo kernel loadable object files is

bull Their name start with streams-

bull They are placed in lsquolibmodules2420-287streamsrsquo where lsquo2420-287rsquo isan example kernel version

If your kernel has been built using the lsquokerneldrsquo daemon then lsquostrss7rsquo kernel moduleswill automatically load as soon as the STREAMS module is pushed or the driver is openedThe lsquomake installrsquo process makes the necessary changes to the lsquoetcmodulesconfrsquo fileAfter the install you will see lines like the following added to your lsquoetcmodulesconfrsquofile prune modulesstrss7if -f libmoduleslsquouname -rlsquomodulesstrss7include libmoduleslsquouname -rlsquomodulesstrss7endif

which will provide for demand loading of the modules if they have been built and installedfor the running kernel The lsquolibmoduleslsquouname -rlsquomodulesstrss7rsquo file looks likethis alias char-major-245 streams-some_driver

alias char-major-246 streams-other_driver Note that STREAMS modules are not listed in this file but will be loaded by name usinglsquokerneldrsquo if available

Linux Fast-STREAMS has a wider range of kernel module loading mechanisms than isprovided by the deprecated LiS For mechanisms used for kernel module loading underLinux Fast-STREAMS See Section ldquoToprdquo in Linux Fast-STREAMS Reference Manual

6712 Linux STREAMS Module Loading

LiS is deprecated and this section has been deleted

68 Maintenance

37 Note that the lsquo_kversionrsquo of lsquo2420-287rsquo is only an example

Chapter 6 Installation 83

681 Makefile Targets

automake(1) has many targets not all of which are obvious to the casual user In additionOpenSS7 automake(1) files have additional rules added to make maintaining and releasinga package somewhat easier This list of targets provides some help with what targets can beinvoked what they do and what they hope to achieve The available targets are as follows

6811 User Targets

The following are normal targets intended to be invoked by installers of the package Theyare concerned with compiling checking the compile installing checking the installationand removing the package

lsquo[all]rsquo This is also the default target It compiles the package and all release packagesselected by lsquoconfigurersquo This is performed after configuring the source withlsquoconfigurersquo A lsquoMakefilersquo stub is provided so that if the package has not hadautoreconf(1) run (such as when checked out from CVS the package willattempt to run lsquoautoreconf -fivrsquoAll OpenSS7 Project packages are configured without maintainer mode andwithout dependency tracking by default This speeds compilation of the packagefor one-time builds This also means that if you are developing using the sourcepackage (edit-compile-test cycle) changes made to source files will not causethe automatic rebuilding due to dependencies There are two ways to enabledependency tracking specify lsquo--enable-maintainer-modersquo to lsquoconfigurersquo orspecify lsquo--enable-dependency-trackingrsquo to lsquoconfigurersquo I use the formerduring my edit-compile-test cycleThis is a standard GNU automake(1) makefile target This target does notrequire root privilege

lsquocheckrsquo All OpenSS7 Project release packages provide check scripts for the check targetThis step is performed after compiling the package and will run all of the lsquocheckrsquoprograms against the compiled binaries Which checks are performed dependson whether lsquo--enable-maintainer-modersquo was specified to lsquoconfigurersquo If inmaintainer mode checks that assist with the release of the package will berun (such as checking that all manual pages load properly and that they haverequired sections) We recommend running the check stage before installingbecause it catches problems that might keep the installed package from func-tioning properlyAnother way to enable the greater set of checks without invoking maintainermode is to specify lsquo--enable-checksrsquo to lsquoconfigurersquo For more informationsee Section 711 [Pre-installation Checks] page 93This is a standard GNU automake(1) makefile target although the functionsperformed are customized for the OpenSS7 Project This target does not requireroot privilege

lsquoinstallrsquolsquoinstall-striprsquo

The lsquoinstallrsquo target installs the package by installing each release packageThis target also performs some actions similar to the pre- and post-install scripts

84 OpenSS7 SS7 Stack

used by packaging tools such as rpm(1) or dpkg(1) The lsquoinstall-striprsquotarget strips unnecessary symbols from executables and kernel modules beforeinstallingThis is a standard GNU automake(1) makefile target This target requiresroot privilege

lsquoinstallcheckrsquoAll OpenSS7 Project packages provide test scripts for the lsquoinstallcheckrsquo tar-get Test scripts are created and run using autotest (part of the autoconf(1)package) Which test suites are run and how extensive they are depends onwhether lsquo--enable-maintainer-modersquo was specified to lsquoconfigurersquo When inmaintainer mode all test suites will be run When not in maintainer modeonly a few post-install checks will be performed but the test suites themselveswill be installed in lsquousrlibexecstrss7rsquo38 for later useThis is a standard GNU automake(1) makefile target This target might re-quire root privilege Tests requiring root privilege will be skipped when run asa regular user Tests requiring regular account privileges will be skipped whenrun as root

lsquoretestrsquo To complement the lsquoinstallcheckrsquo target above all OpenSS7 Project pack-ages provide the lsquoretestrsquo target as a means to rerun failed conformance testsuite test cases The lsquoretestrsquo target is provided because some test cases in thetest suites have delicate timing considerations that allow them to fail sporadi-cally Invoking this target will retest the failed cases until no cases that are notexpected failures remainThis is an OpenSS7 Project specific makefile target As with lsquoinstallcheckrsquothis target might require root privilege Tests requiring root privilege will beskipped when run as a regular user Tests requiring regular account privilegeswill be skipped when run as root

lsquouninstallrsquoThis target will reverse the steps taken to install the package This target alsoperforms pre- and post- erase scripts used by packaging tools such as rpm ordpkg You need to have a configured build directory from which to execute thistarget however you do not need to have compiled any of the files in that builddirectory39

The lsquouninstallrsquo target unfortunately removes add-on packages in the sameorder in which they were installed This is not good for the OpenSS7 MasterPackage where the lsquoremoversquo target should be used insteadThis is a standard GNU automake(1) makefile target This target requiresroot privilege

lsquoremoversquo This target is like lsquouninstallrsquo with the exception that it removes add-on pack-ages in the reverse order that installation was performed40

38 lsquousrlibexecstrss7rsquo is just an example the actual location is lsquo$libexecdir$PACKAGErsquo which variesfrom distribution to distribution (as some distributions such as Mandriva do not have a libexec directory)

39 Therefore it is possible to download the package configure it and then uninstall it This is handy if youdo not have the sources used to build and install the package immediately available

40 This is useful from the OpenSS7 Master Package

Chapter 6 Installation 85

This is an OpenSS7 Project specific makefile target This target requires rootprivilege

6812 Maintainer Targets

The following targets are targets intended for use by maintainers of the package or those re-sponsible for release and packaging of a derivative work of the package Some of these targetsare only effective when maintainer mode has been invoked (lsquo--enable-maintainer-modersquospecified to lsquoconfigurersquo)

lsquodistrsquo Creates a distribution package (tarball) in the top level build direc-tory OpenSS7 Project packages distribute two archives a lsquogzip tarrsquoarchive and a lsquobzip tarrsquo archive These archives will have the namelsquostrss7-09a8targzrsquo and lsquostrss7-09a8tarbz2rsquo

This is a standard GNU automake(1) makefile target This target does notrequire root privilege

lsquodistcheckrsquoThis target is intended for use when releasing the package It creates the tar(1)archives above and then unpacks the tarball in a source directory configures in aseparate build directory compiles the package installs the package in a separateinstall directory tests the install package to ensure that some components workand finally uses the unpacked source tree to build another tarball If you haveadded or removed files from the package this is a good way to ensure thateverything is still stable for release

This is a standard GNU automake(1) makefile target This target does notrequire root privilege

6813 Clean Targets

lsquomostlycleanrsquoCleans out most of the files from the compile stage This target is helpful if youhave not enabled dependency tracking and need to recompile with changes

This is a standard GNU automake(1) makefile target This target does notrequire root privilege

lsquocleanrsquo Cleans all the files from the build directory generated during the lsquomake [all]rsquophase It does not however remove files from the directory left there from thelsquoconfigurersquo run Use the lsquodistcleanrsquo target to remove those too

This is a standard GNU automake(1) makefile target This target might re-quire root privilege if the lsquoinstallcheckrsquo target or the testsuite was invokedwith root privilege (leaving files belonging to root)

lsquodistcleanrsquoThis target cleans out the directories left behind by lsquodistcheckrsquo and removesall the lsquoconfigurersquo and generated files from the build directory This willeffectively remove all the files in the build directory with the except of filesthat belong to you or some other process

86 OpenSS7 SS7 Stack

This is a standard GNU automake(1) makefile target This target might re-quire root privilege if the lsquoinstallcheckrsquo target or the testsuite was invokedwith root privilege (leaving files belonging to root)

lsquomaintainer-cleanrsquoThis target not only removes files from the build directory it removes generatedfiles from the source directory as well Care should be taken when invoking thistarget because it removes files generated by the maintainer and distributed withthe archive that might require special tools to regenerate These special toolsmight only be available to the maintainer41 It also means that you probablyneed a full blown Linux system to rebuild the package For more informationsee Section 628 [Downloading from CVS] page 59This is a standard GNU automake(1) makefile target This target might re-quire root privilege if the lsquoinstallcheckrsquo target or the testsuite was invokedwith root privilege (leaving files belonging to root)

lsquocheck-cleanrsquoThis target removes log files left behind by the lsquocheckrsquo target By default thecheck scripts append to log files in the top level build directory This targetcan be used to clean out those log files before the next runThis is an OpenSS7 Project specific makefile target This target does not requireroot privilege

6814 Manual Page Targets

The following targets are used to build install and uninstall just the manual pages from thedistribution These targets are good for creating a distribution of just the manual pagesWhen building atop multiple packages these targets recurse down through each package

lsquomansrsquo Build all of the manual pages This involves performing parametersubstitution on manual pages and optionally cooking the manual pages iflsquo--with-cooked-manpagesrsquo was requested during configuration

lsquoinstall-mansrsquoInstalls the manual pages under DESTDIR Specify DESTDIR to place themanual pages wherever you see fit If DESTDIR is not specified on the com-mand line the manual pages will be installed in the normal installation direc-tory

lsquouninstall-mansrsquoUninstalls the manual pages from DESTDIR Specify DESTDIR to indicatewhere to remove the manual pages from If DESTDIR is not specified on thecommand line the manual pages will be removed from the normal installationdirectory

6815 Release Targets

The following are targets used to generate complete releases into the package distributiondirectory These are good for unattended and NFS builds which is what I use them for

41 Theoretically this is true however the OpenSS7 Project does not use any maintainer programs that are notgenerally available (ie open source)

Chapter 6 Installation 87

Also when building from atop multiple packages these targets also recurse down througheach package

lsquoreleasersquo Build all of the things necessary to generate a release On an rpm(1) systemthis is the distribution archives the source rpm and the architecture dependentand architecture independent binary rpms All items are placed in the packagedistribution directory that can be specified with the lsquo--with-pkg-distdir=DIRrsquooption to lsquoconfigurersquo

This is an OpenSS7 Project specific makefile target This target does not requireroot privilege

lsquoforced-releasersquoThe lsquoreleasersquo target will not regenerate any files that already exist in thepackage distribution directory This forced target will

This is an OpenSS7 Project specific makefile target This target does not requireroot privilege

lsquorelease-signrsquoYou will be prompted for a password unless to specify it to make with theGNUPGPASS variable For unattended or non-interactive builds with signingyou can do that as lsquomake GNUPGPASS=mypasswd release-signrsquo

This is an OpenSS7 Project specific makefile target This target does not requireroot privilege

lsquoforced-release-signrsquoThe lsquorelease-signrsquo target will not regenerate any files that already exist inthe package distribution directory This forced target will

This is an OpenSS7 Project specific makefile target This target does not requireroot privilege

lsquorelease-cleanrsquoThis target will remove all distribution files for the current package from thepackage distribution directory

This is an OpenSS7 Project specific makefile target This target does not requireroot privilege

6816 Logging Targets

For convenience to log the output of a number of targets to a file log targets are definedThe log file itself is used as the target to make but make invokes the target minus a lsquologrsquosuffix So for example to log the results of target lsquofoorsquo invoke the target lsquofoologrsquo Theonly target that this does not apply to is lsquocompilelogrsquo When you invoke the targetlsquocompilelogrsquo a simple automake(1) is invoked and logged to the file lsquocompilelogrsquo Thelsquofoologrsquo rule applies to all other targets This does not work for all targets just a selectedfew42 Following are the logging targets

42 Note that because logging targets invoke a pipe automake(1) does not return the correct return status(always returns success if the tee(1) operation is successful) Therefore these targets should not be invokedby scripts that need to use the return value from automake(1)

88 OpenSS7 SS7 Stack

Common Logging Targets

Common logging targets correspond to normal user automake(1) makefile targets as follows

lsquocompilelogrsquoThis is an OpenSS7 Project specific makefile target but it invokes the standardGNU automake(1) makefile target lsquo[all]rsquo

lsquochecklogrsquoThis is an OpenSS7 Project specific makefile target but it invokes the standardGNU automake(1) makefile target lsquocheckrsquo

lsquoinstalllogrsquoThis is an OpenSS7 Project specific makefile target but it invokes the standardGNU automake(1) makefile target lsquoinstallrsquo

lsquoinstallchecklogrsquoThis is an OpenSS7 Project specific makefile target but it invokes the standardGNU automake(1) makefile target lsquoinstallcheckrsquo

lsquouninstalllogrsquoThis is an OpenSS7 Project specific makefile target but it invokes the standardGNU automake(1) makefile target lsquouninstallrsquo

lsquoremovelogrsquoThis is an OpenSS7 Project specific makefile target that invokes the OpenSS7Project lsquoremoversquo target

Maintainer Logging Targets

Maintainer logging targets correspond to maintainer mode automake(1) makefile targetsas follows

lsquodistlogrsquoThis is an OpenSS7 Project specific makefile target but it invokes the standardGNU automake(1) makefile target lsquodistrsquo

lsquodistchecklogrsquoThis is an OpenSS7 Project specific makefile target but it invokes the standardGNU automake(1) makefile target lsquodistcheckrsquo

lsquosrpmlogrsquoThis is an OpenSS7 Project specific makefile target that invokes the OpenSS7Project lsquosrpmrsquo target

lsquorebuildlogrsquoThis is an OpenSS7 Project specific makefile target that invokes the OpenSS7Project lsquorebuildrsquo target

lsquoresignlogrsquoThis is an OpenSS7 Project specific makefile target that invokes the OpenSS7Project lsquoresignrsquo target

lsquoreleaselogrsquoThis is an OpenSS7 Project specific makefile target that invokes the OpenSS7Project lsquoreleasersquo target

Chapter 6 Installation 89

lsquorelease-signlogrsquoThis is an OpenSS7 Project specific makefile target that invokes the OpenSS7Project lsquorelease-signrsquo target

If you want to add one simply add it to LOGGING TARGETS in lsquoMakefileamrsquo

6817 Problem Report Targets

To ease problem report generation all logging targets will automatically generate a problemreport suitable for mailing in the file lsquotargetprrsquo for target lsquotargetlogrsquo This problemreport file is in the form of an email and can be sent using the included send-pr script orby invoking the lsquosend-prrsquo makefile targetThere are two additional problem report targets

lsquoprrsquo The lsquoprrsquo target is for independently generating a problem report outside of thebuild or installation process The target will automatically generate a problemreport skeleton suitable for editing and mailing in the file lsquoproblemprrsquo Thisproblem report file is in the form of an email and can be edited and sent directlyor sent using the included send-pr script or by invoking the lsquosend-prrsquo targetThis is an OpenSS7 Project specific makefile target This target does not requireroot privilege

lsquosend-prrsquo The lsquosend-prrsquo target is for finalizing and mailing a problem report generatedeither inside or outside the build and installation process The target will au-tomatically finalize and mail the lsquoproblemprrsquo problem report if it has changedsince the last time that lsquosend-prrsquo was invokedThis is an OpenSS7 Project specific makefile target This target does not requireroot privilege (unless the problem report file was generated as root)

6818 Release Archive Targets

The following targets are used to generate and clean distribution archive and signature filesWhereas the lsquodistrsquo target affects archives in the top build directory the lsquorelease-archiversquotargets affects archives in the package distribution directory (either the top build directoryor that specified with lsquo--with-pkg-distdir=DIRrsquo to lsquoconfigurersquo)You can change the directory to which packages are distributed by using thelsquo--with-pkg-distdir=DIRrsquo option to lsquoconfigurersquo The default directory is the top builddirectory

lsquorelease-archivesrsquoThis target creates the distribution archive files if they have not already beencreated This not only runs the lsquodistrsquo target but also copies the files to thedistribution directory which by default is the top build directoryThe files generated are namedlsquostrss7-09a8targzrsquo and lsquostrss7-09a8tarbz2rsquoYou can change this distribution directory with the lsquo--with-pkg-distdirrsquo op-tion to lsquoconfigurersquo See lsquoconfigure --helprsquo for more details on optionsThis is an OpenSS7 Project specific makefile target This target does not requireroot privilege

90 OpenSS7 SS7 Stack

lsquorelease-sign-archivesrsquoThis target is like lsquorelease-archivesrsquo except that it also signs the archivesusing a GPG detached signature You will be prompted for a password unlessyou pass the GNUPGPASS variable to make For automated or unattendedbuilds pass the GNUPGPASS variable like solsquomake GNUPGPASS=mypasswd release-sign-archivesrsquoSignature files will be namedlsquostrss7-09a8targzascrsquo and lsquostrss7-09a8tarbz2ascrsquoThese files will be moved to the package distribution directory with the plaintext archivesThis is an OpenSS7 Project specific makefile target This target does not requireroot privilege

lsquorelease-clean-archivesrsquoThis target will clean the release archives and signature files from the packagedistribution directoryThis is an OpenSS7 Project specific makefile target This target does not requireroot privilege

6819 RPM Build Targets

On rpm(1) systems or systems sporting rpm packaging tools the following targets are usedto generate rpm(1) release packages The epoch and release number can be controlled by thecontents of the lsquorpmepochrsquo and lsquorpmreleasersquo files or with the lsquo--with-rpm-epoch=EPOCHrsquoand lsquo--with-rpm-release=RELEASErsquo options to lsquoconfigurersquo See lsquoconfigure --helprsquo formore information on options We always use release number lsquo1rsquo You can use releasenumbers above lsquo1rsquo

lsquosrpmrsquo This target generates the source rpm for the package (without signing the sourcerpm) The source rpm will be named lsquostrss7-09a8-1srpmrsquoThis is an OpenSS7 Project specific makefile target This target does not requireroot privilege

lsquorpmsrsquo This target is responsible for generating all of the package binary rpms for thearchitecture The binary rpms will be namedlsquostrss7--09a8-1rpmrsquowhere the stars indicate the subpackage and the architecture Both the archi-tecture specific subpackages (binary objects) and the architecture independent(lsquonoarchrsquo) subpackages will be built unless the the former was disabled withthe option lsquo--disable-archrsquo or the later with the option lsquo--disable-indeprsquopassed to lsquoconfigurersquoThis is an OpenSS7 Project specific makefile target This target does not requireroot privilege

lsquosignrsquolsquosrpm-signrsquo

These two targets are the same When invoked they will add a signature tothe source rpm file provided that the file does not already have a signature

Chapter 6 Installation 91

You will be prompted for a password if a signature is required Automated orunattended builds can be achieved by using the emake expect script includedin lsquo$srcdirscriptsemakersquoThis is an OpenSS7 Project specific makefile target This target does not requireroot privilege

lsquorebuildrsquo This target accepts searches out a list of kernel names from thelsquo$DESTDIRlibmodulesrsquo directory and builds rpms for those kernels andfor each of a set of architectures given in the AM RPMTARGETS variable tomake This is convenience target for building a group of rpms on a given buildmachineThis is an OpenSS7 Project specific makefile target This target does not requireroot privilege

lsquoresignrsquo This target will search out and sign with a GPG signature the source rpm andall of the binary rpms for this package that can be found in the package distri-bution directory This target will prompt for a GPG password Automated orunattended builds can be achieved with the emake expect script located herelsquo$srcdirscriptsemakersquoThis is an OpenSS7 Project specific makefile target This target does not requireroot privilege

68110 Debian Build Targets

On Debian systems or systems sporting Debian packaging tools the following targets areused to generate Debian release packages The release number can be controlled by thecontents of the lsquodebreleasersquo file or with the lsquo--with-debrelease=RELEASENUMBERrsquo optionto lsquoconfigurersquo See lsquoconfigure --helprsquo for more information on options

lsquodscrsquo This target will build the Debian source change package (lsquodscrsquo file) Weuse release number lsquo0rsquo so that the entire tarball is included in the lsquodscrsquo fileYou can use release number lsquo1rsquo for the same purposes Release numbersabove lsquo1rsquo will not include the entire tarball The lsquodscrsquo file will be namedlsquostrss7_09a8-0dscrsquoThis is an OpenSS7 Project specific makefile target This target does not requireroot privilege

lsquosigsrsquo This target signs the lsquodebrsquo files You will be prompted for a password unlessto specify it to make with the GNUPGPASS variableThis is an OpenSS7 Project specific makefile target This target does not requireroot privilege

lsquodebsrsquo This target will build the Debian binary package (lsquodebrsquo file) from thelsquodscrsquo created above (This target will also create the lsquodscrsquo if it hasnot been created already) The subpackage lsquodebrsquo files will be namedlsquostrss7-_09a8-0_debrsquo where the stars indicate the subpackage and thearchitectureThis is an OpenSS7 Project specific makefile target This target does not requireroot privilege

92 OpenSS7 SS7 Stack

lsquocsigrsquo This target signs the lsquodscrsquo file You will be prompted for a password unlessto specify it to make with the GNUPGPASS variableThis is an OpenSS7 Project specific makefile target This target does not requireroot privilege

68111 Documentation Targets

On systems that have doxygen(1) documentation tool the following targets are used togenerate doxygen html documentation

lsquodoxyrsquo This target generates doxygen(1) documetnation from suitably marked sourcesFile containing the necessary documentation marks are discovered automat-ically by configure Doxygen documentation can be generated bus is notdistributed Documentation is cerated in the subdirectory lsquodochtmlrsquo

Chapter 7 Troubleshooting 93

7 Troubleshooting

71 Test Suites

711 Pre-installation Checks

Most OpenSS7 packages including the OpenSS7 SS7 Stack package ship withpre-installation checks integral to the build system Pre-installation checks include checkscripts that are shipped in the lsquoscriptsrsquo subdirectory as well as specialized make targetsthat perform the checks

When building and installing the package from RPM or DEB source packages (seeSection 641 [Building from the Source RPM] page 77 and Section 642 [Building fromthe Debian DSC] page 78) a fundamental set of post-compile pre-installation checksare performed prior to building binary packages This is performed automatically anddoes not require any special actions on the part of the user creating binary packages fromsource packages

When building and installing the package from tarball (see Section 643 [Building fromthe Tar Ball] page 78 and Section 653 [Installing the Tar Ball] page 80) however pre-installation checks are only performed if specifically invoked by the builder of the packagePre-installation checks are invoked after building the package and before installing thepackage Pre-installation checks are performed by invoking the lsquocheckrsquo or lsquochecklogrsquotarget to make when building the package as shown in Example 71 wget httpwwwopenss7orgstrss7-09a8tarbz2 tar -xjvf strss7-09a8tarbz2 pushd strss7-09a8 configure make make check lt------- invoke pre-installation checks popd

Example 71 Invoking Pre-Installation Checks Pre-installation checks fall into two categories System Checks and Maintenance Checks

7111 Pre-Installation System Checks

System Checks are post-compilation checks that can be performed before installing thepackage that check to ensure that the compiled objects function and will be successfully in-stalled When the lsquo--enable-maintainer-modersquo option has not been passed to configureonly System Checks will be performed

For example the steps shown in Example 72 will perform System checks

94 OpenSS7 SS7 Stack wget httpwwwopenss7orgstrss7-09a8tarbz2 tar -xjvf strss7-09a8tarbz2 pushd strss7-09a8 configure make make check lt------ invokes System pre-installation checks popd

Example 72 Invoking System Checks 7112 Pre-Installation Maintenance Checks

Maintenance Checks include all System Checks but also checks to ensure that thekernel modules applications programs header files development tools test programsdocumentation and manual pages conform to OpenSS7 standards When thelsquo--enable-maintainer-modersquo option has been passed to configure Maintenance Checkswill be performed

For example the steps shown in Example 73 will perform Maintenance checks wget httpwwwopenss7orgstrss7-09a8tarbz2 tar -xjvf strss7-09a8tarbz2 pushd strss7-09a8 configure --enable-maintainer-mode make make check lt------ invokes Maintenance pre-installation checks popd

Example 73 Invoking Maintenance Checks 7113 Specific Pre-Installation Checks

A number of check scripts are provided in the lsquoscriptsrsquo subdirectory of the distributionthat perform both System and Maintenance checks These are as follows

check_commandsThis check performs both System and Maintenance checksWhen performing System tests the following tests are performedUnless cross-compiling or unless a program is included in AM_INSTALLCHECK_STD_OPTIONS_EXEMPT every program in bin_PROGRAMS sbin_PROGRAMS andlibexec_PROGRAMS is tested to ensure that the lsquo--helprsquo lsquo--versionrsquo andlsquo--copyingrsquo options are accepted When cross-compiling is is not possible toexecute cross-compiled binaries and these checks are skipped in that caseScript executables on the other hand can be executed on the build host so un-less listed in AM_INSTALLCHECK_STD_OPTIONS_EXEMPT every program in dist_bit_SCRIPTS dist_sbin_SCRIPTS and pkglibexec_SCRIPTS are tested to en-sure that the lsquo--helprsquo lsquo--versionrsquo and lsquo--copyingrsquo options are acceptedWhen performing Maintenance tests check_commands also checks to ensurethat a manual page exists in section 1 for every executable binary or script

Chapter 7 Troubleshooting 95

that will be installed from bin_PROGRAMS and dist_bin_SCRIPTS It alsochecks to ensure that a manual page exists in section 8 for every executable bi-nary or script that will be installed from sbin_PROGRAMS dist_sbin_SCRIPTSlibexec_PROGRAMS and pkglibexec_SCRIPTS

check_declsThis check only performs Maintenance checksIt collects the results from the check_libs check_modules and check_headers check scripts and tests to ensure every declaration of a functionprototype or external variable contained in installed header files has acorresponding exported symbol from either a to be installed shared objectlibrary or a to be installed kernel module Declarations are exemptedfrom this requirement if their identifiers have been explicitly added to theEXPOSED_SYMBOL variable If WARN_EXCESS is set to lsquoyesrsquo then the checkscript will only warn when excess declarations exist (without a correspondingexported symbol) otherwise the check script will generate an error and thecheck will fail

check_headersThis check only performs Maintenance checksWhen performing Maintenance tests it identifies all of the declarations includedin to be installed header files It then checks to ensure that a manual pageexists in sections 2 3 7 or 9 as appropriate for the type of declaration Italso checks to see if a manual page source file exists in the source directoryfor a declaration that has not been included in the distribution Function orprototype declarations that do not have a manual page in sections 2 3 or9 will cause the check to fail Other declarations (lsquovariablersquo lsquoexternvarrsquolsquomacrorsquo lsquoenumeratersquo lsquoenumrsquo lsquostructrsquo lsquounionrsquo lsquotypedefrsquo lsquomemberrsquo etc) willonly warn if a manual page does not exist but will not fail the check

check_libsThis check only performs Maintenance checksWhen performing Maintenance tests it checks that each exported symbol ineach to be installed shared object library has a manual page in section 3 It alsochecks that each exported symbol has a lsquofunctionrsquo lsquoprototypersquo or lsquoexternvarrsquodeclaration in the to be installed header files A missing declaration or manualpage will cause this check to fail

check_mansThis check only performs Maintenance checksWhen performing Maintenance tests it checks that to be install manual pagescan be formatted for display without any errors or warnings from the buildhost man program It also checks that required headings exist for manual pagesaccording to the section in which the manual page will be installed It warnsif recommended headings are not included in the manual pages Because someRPM distributions have manual pages that might conflict with the packagemanual pages this check script also checks for conflicts with installed manualpages on the build host This check script also checks to ensure that all to be

96 OpenSS7 SS7 Stack

installed manual pages are used in some fashion that is they have a declarationor exported symbol or are the name of a kernel module or STREAMS moduleor driver possibly capitalizedNote that checking for conflicts with the build host should probably be includedin the System checks (because System checks are performed before the sourceRPM install scriptlet)

check_modulesThis check performs both System and Maintenance checksWhen performing System tests it checks each to be installed kernel moduleto ensure that all undefined symbols can be resolved to either the kernel oranother module It also checks whether an exported or externally declaredsymbol conflicts with an exported or externally declared symbol present in thekernel or another module1

When performing Maintenance tests this check script tests that each to beinstalled kernel module has a manual page in section 9 and that each exportedsymbol that does not begin with an underscore and that belongs to an exportedfunction or exported variable has a manual page in section 9 It also checks toensure that each exported symbol that does not begin with an underscore andthat belongs to an exported function or exported variable has a lsquofunctionrsquolsquoprototypersquo or lsquoexternvarrsquo declaration in the to be installed header files

check_streamsThis check performs only Maintenance checksWhen performing Maintenance tests it checks that for each configuredSTREAMS module or driver or device node that a manual page exists insection 4 or section 7 as appropriate

The output of the pre-installation tests are fairly self explanatory Each check script savessome output to lsquonamelogrsquo where name is the name of the check script as listed above Asummary of the results of the test are display to standard output and can also be capturedto the lsquochecklogrsquo file if the lsquochecklogrsquo target is used instead of the lsquocheckrsquo target tomakeBecause the check scripts proliferate lsquonamelogrsquo files throughout the build directory a lsquomakecheck-cleanrsquo make target has be provided to clean them out lsquomake check-cleanrsquo shouldbe run before each successive run of lsquomake checkrsquo

712 Post-installation Checks

Most OpenSS7 packages ship with a compatibility and conformance test suite built us-ing the lsquoautotestrsquo capabilities of lsquoautoconfrsquo These test suites act as a wrapper for thecompatibility and conformance test programs that are shipped with the packageUnlike the pre-installation checks the post-installation checks are always run completeThe only check that post-installation test scripts perform is to test whether they havebeen invoked with root privileges or not When invoked as root or as a plain user sometests might be skipped that require root privileges or that require plain user privileges tocomplete successfully

1 This particular check has caught some name space pollution that has occurred in the 2611 kernel

Chapter 7 Troubleshooting 97

7121 Running Test Suites

There are several ways of invoking the conformance test suites

1 The test suites can be run after installation of the package by invoking the lsquomakeinstallcheckrsquo or lsquomake installchecklogrsquo target Some packages require that rootprivileges be acquired before invoking the package

2 The test suites can be run from the distribution subdirectory after installation of thepackage by invoking the testsuite shell script directly

3 The test suites can be run standalone from the lsquolibexecrsquo (lsquousrlibexecrsquo) installationdirectory by invoking the testsuite shell script directly

Typical steps for invoking the test suites directly from make are shown in Example 74 wget httpwwwopenss7orgstrss7-09a8tarbz2 tar -xjvf strss7-09a8tarbz2 pushd strss7-09a8 configure make make check lt------ invokes System pre-installation checks make install sudo make installcheck lt------- invokes post-installation tests popd

Example 74 Invoking System Checks When performing post-installation checks for the purposes of generating a problem re-port the checks should always be performed from the build directory either with lsquomakeinstallcheckrsquo or by invoking testsuite directly from the lsquotestsrsquo subdirectory of thebuild directory This ensures that all of the information known to configure and pertinentto the configuration of the system for which a test case failed will be collected in the re-sulting lsquotestsuitelogrsquo file deposited upon test suite failure in the lsquotestsrsquo directory Thislsquotestsuitelogrsquo file can then be attached as part of the problem report and provides richdetails to maintainers of the package See also See Section 72 [Problem Reports] page 97below

Typical steps for invoking and installed testsuite standalone are shown in Example 75 [sudo] usrlibexecstrss7testsuite

Example 75 Invoking testsuite Directly When invoked directly testsuite will generate a lsquotestsuitelogrsquo file in the current di-rectory and a lsquotestsuitedirrsquo directory of failed tests cases and debugging scripts Forgenerating a problem report for failed test cases see Section 724 [Stand Alone ProblemReports] page 100

72 Problem Reports

98 OpenSS7 SS7 Stack

721 Problem Report Guidelines

Problem reports in the following categories should include a log file as indicated in the tablebelow

lsquoconfigurersquoA problem with the configuration process occurs that causes the lsquoconfigurersquocommand to fail The problem report must include the lsquoconfiglogrsquo file thatwas generated by configure

lsquomake compilelogrsquoA problem with the build process occurs that causes the lsquomakersquo commandto fail Perform lsquomake cleanrsquo and then lsquomake compilelogrsquo and attach thelsquoconfiglogrsquo and lsquocompilelogrsquo files to the problem report

lsquomake checklogrsquoA problem occurs with the lsquomake checkrsquo target that causes it to fail Performlsquomake check-clean checklogrsquo and attach the lsquoconfiglogrsquo lsquocompilelogrsquoand lsquochecklogrsquo files to the problem report

lsquosudo make installlogrsquoA problem occurs with lsquosudo make installrsquo that causes it to fail Performlsquosudo make uninstallrsquo and lsquosudo make installlogrsquo and attach thelsquoconfiglogrsquo lsquocompilelogrsquo lsquochecklogrsquo and lsquoinstalllogrsquo files to theproblem report

lsquo[sudo] make installchecklogrsquoA problem occurs with the lsquomake installcheckrsquo target that causesthe test suite to fail Attach the resulting lsquoteststestsuitelogrsquo andlsquoinstallchecklogrsquo file to the problem report There is no need to attach theother files as they are included in lsquoteststestsuitelogrsquo

lsquo[sudo] make uninstalllogrsquoA problem occurs with the lsquomake uninstallrsquo target that causes the test suiteto fail Perform lsquosudo make uninstalllogrsquo and attach the lsquoconfiglogrsquolsquocompilelogrsquo lsquochecklogrsquo lsquoinstalllogrsquo lsquoinstallchecklogrsquolsquoteststestsuitelogrsquo and lsquouninstalllogrsquo file to the problem report

lsquo[sudo] make removelogrsquoA problem occurs with the lsquomake removersquo target that causes the test suiteto fail Perform lsquosudo make removelogrsquo and attach the lsquoconfiglogrsquolsquocompilelogrsquo lsquochecklogrsquo lsquoinstalllogrsquo lsquoinstallchecklogrsquolsquoteststestsuitelogrsquo and lsquoremovelogrsquo file to the problem report

For other problems that occur during the use of the OpenSS7 SS7 Stack package pleasewrite a test case for the test suite that recreates the problem if one does not yet existand provide a test program patch with the problem report Also include whatever logfiles are generated by the kernel (cmn_err(9)) or by the strerr(8) or strace(1) facilities(strlog(9))

722 Generating Problem Reports

The OpenSS7 Project uses the GNU GNATS system for problem reporting Although thelsquosend-prrsquo tool from the GNU GNATS package can be used for bug reporting to the projectrsquos

Chapter 7 Troubleshooting 99

GNATS database using electronic mail it is not always convenient to download and installthe GNATS system to gain access to the lsquosend-prrsquo toolTherefore the OpenSS7 SS7 Stack package provides the lsquosend-prrsquo shell script that canbe used for problem reporting The lsquosend-prrsquo shell script can invoked directly and is awork-alike for the GNU lsquosend-prrsquo toolThe lsquosend-prrsquo tool takes the same flags and can be used in the same fashion howeverwhereas lsquosend-prrsquo is an interactive tool2 lsquosend-prrsquo is also able to perform batch process-ing Whereas lsquosend-prrsquo takes its field information from local databases or from using thelsquoquery-prrsquo C-language program to query a remote database the lsquosend-prrsquo tool has thefield database internal to the toolProblem reports can be generate using make See Section 6817 [Problem Report Targets]page 89 An example of how simple it is to generate a problem report is illustrated inExample 76 make prSEND-PRSEND-PR send-pr send-pr was invoked to generate an external report AnSEND-PR automated problem report has been created in the file namedSEND-PR rsquoproblemprrsquo in the current directory This problem report canSEND-PR be sent to bugsopenss7org by calling this script asSEND-PR rsquohomebrianos7scriptssend-pr --file=problemprrsquoSEND-PRSEND-PR It is possible to edit some of the fields before sending on theSEND-PR problem report Please remember that there is NO WARRANTY SeeSEND-PR the file rsquoCOPYINGrsquo in the top level directorySEND-PRSEND-PR Please do not send confidential information to the bug reportSEND-PR address Inspect the file rsquoproblemprrsquo for confidentialSEND-PR information before mailingSEND-PR vim problempr lt--- follow instructions at head of file make send-pr

Example 76 Invoking Problem Report Generation Using the lsquomake prrsquo target to generate a problem report has the advantages that it willassemble any available lsquologrsquo files in the build directory and attach them to the problemreport

723 Automatic Problem Reports

The OpenSS7 SS7 Stack package also provides a feature for automatic problem reportgeneration that meets the problem report submission guidelines detailed in the precedingsectionsWhenever a logging makefile target (see Section 6816 [Logging Targets] page 87) is in-voked if the primary target fails the send-pr shell script is invoked to automatically

2 lsquosend-prrsquo launches the userrsquos EDITOR to edit the problem report before submitting it

100 OpenSS7 SS7 Stack

generate a problem report file suitable for the corresponding target (as described aboveunder see Section 721 [Problem Report Guidelines] page 98) An example is shown inExample 77 make compilelogmake[5] [libXNSdrvs_a-ipo] Error 1make[5] Leaving directory lsquou6buildel4strxnsrsquomake[4] [all-recursive] Error 1make[4] Leaving directory lsquou6buildel4strxnsrsquomake[3] [all] Error 2make[3] Leaving directory lsquou6buildel4strxnsrsquomake[2] [all-recursive] Error 1make[2] Leaving directory lsquou6buildel4rsquomake[1] [all] Error 2make[1] Leaving directory lsquou6buildel4rsquoSEND-PRSEND-PR send-pr Make target compilelog failed in the compile stage AnSEND-PR automated problem report has been created in the file namedSEND-PR rsquoproblemprrsquo in the current directory This problem report canSEND-PR be sent to bugsopenss7org by calling rsquomake send-prrsquoSEND-PRSEND-PR It is possible to edit some of the fields before sending on theSEND-PR problem report Please remember that there is NO WARRANTY SeeSEND-PR the file rsquoCOPYINGrsquo in the top level directorySEND-PRSEND-PR Please do not send confidential information to the bug reportSEND-PR address Inspect the file rsquoproblemprrsquo for confidentialSEND-PR information before mailingSEND-PR vim problempr lt--- follow instructions at head of file make send-pr

Example 77 Problem Report from Failed Logging Target 724 Stand Alone Problem Reports

The OpenSS7 SS7 Stack package installs the send-pr script and its configuration filelsquosend-prconfigrsquo in lsquo$libexecdirstrss7rsquo along with the validation testsuite seeSee Section 71 [Test Suites] page 93 As with the testsuite this allows the send-prscript to be used for problem report generation on an installed system that does not havea build directory

An example of invoking the package testsuite and then generating a problem report forfailed cases is shown in Example 78

Chapter 7 Troubleshooting 101 [sudo] usrlibexecstrss7testsuite test cases failed usrlibexecstrss7send-prSEND-PRSEND-PR send-pr send-pr was invoked to generate an external report AnSEND-PR automated problem report has been created in the file namedSEND-PR rsquoproblemprrsquo in the current directory This problem report canSEND-PR be sent to bugsopenss7org by calling this script asSEND-PR rsquousrlibexecstrss7send-pr --file problemprrsquoSEND-PRSEND-PR It is possible to edit some of the fields before sending on theSEND-PR problem report Please remember that there is NO WARRANTY SeeSEND-PR the file rsquoCOPYINGrsquo in the top level directorySEND-PRSEND-PR Please do not send confidential information to the bug reportSEND-PR address Inspect the file rsquoproblemprrsquo for confidentialSEND-PR information before mailingSEND-PR vim problempr lt--- follow instructions at head of file usrlibexecstrss7send-pr --file problempr

Example 78 Invoking send-pr Directly The advantage of the approach shown in the example is that the send-pr script is capableof collecting the lsquotestsuitelogrsquo file and the failed test cases and debugging scripts fromthe lsquotestsuitedirrsquo directory and including them in the problem report as well as allpackage pertinent information from the installed lsquosend-prconfigrsquo

73 Known Problems

The OpenSS7 Project does not ship software with known bugs All bugs are unknownVerified behaviour is that behaviour that has been verified by conformance test suites thatare shipped with the OpenSS7 SS7 Stack packageUnverified behaviour may contain unknown bugsPlease remember that there is NO WARRANTYSee also Section 55 [Bugs] page 43 or file lsquoBUGSrsquo in the release directory

Licenses 103

Licenses

104 OpenSS7 SS7 Stack

GNU Affero General Public License

The GNU Affero General Public LicenseVersion 3 19 November 2007

Copyright ccopy 2007 Free Software Foundation Inc httpfsforg

Everyone is permitted to copy and distribute verbatim copies of thislicense document but changing it is not allowed

Preamble

The GNU Affero General Public License is a free copyleft license for software and otherkinds of works specifically designed to ensure cooperation with the community in the caseof network server software

The licenses for most software and other practical works are designed to take away yourfreedom to share and change the works By contrast our General Public Licenses areintended to guarantee your freedom to share and change all versions of a programndashto makesure it remains free software for all its users

When we speak of free software we are referring to freedom not price Our General PublicLicenses are designed to make sure that you have the freedom to distribute copies of freesoftware (and charge for them if you wish) that you receive source code or can get it if youwant it that you can change the software or use pieces of it in new free programs and thatyou know you can do these things

Developers that use our General Public Licenses protect your rights with two steps (1)assert copyright on the software and (2) offer you this License which gives you legal per-mission to copy distribute andor modify the software

A secondary benefit of defending all usersrsquo freedom is that improvements made in alternateversions of the program if they receive widespread use become available for other developersto incorporate Many developers of free software are heartened and encouraged by theresulting cooperation However in the case of software used on network servers this resultmay fail to come about The GNU General Public License permits making a modifiedversion and letting the public access it on a server without ever releasing its source code tothe public

The GNU Affero General Public License is designed specifically to ensure that in such casesthe modified source code becomes available to the community It requires the operator of anetwork server to provide the source code of the modified version running there to the usersof that server Therefore public use of a modified version on a publicly accessible servergives the public access to the source code of the modified version

An older license called the Affero General Public License and published by Affero wasdesigned to accomplish similar goals This is a different license not a version of the AfferoGPL but Affero has released a new version of the Affero GPL which permits relicensingunder this license

The precise terms and conditions for copying distribution and modification follow

Licenses 105

Terms and Conditions

0 DefinitionsldquoThis Licenserdquo refers to version 3 of the GNU Affero General Public LicenseldquoCopyrightrdquo also means copyright-like laws that apply to other kinds of works such assemiconductor masksldquoThe Programrdquo refers to any copyrightable work licensed under this License Eachlicensee is addressed as ldquoyourdquo ldquoLicenseesrdquo and ldquorecipientsrdquo may be individuals ororganizationsTo ldquomodifyrdquo a work means to copy from or adapt all or part of the work in a fashionrequiring copyright permission other than the making of an exact copy The resultingwork is called a ldquomodified versionrdquo of the earlier work or a work ldquobased onrdquo the earlierworkA ldquocovered workrdquo means either the unmodified Program or a work based on the Pro-gramTo ldquopropagaterdquo a work means to do anything with it that without permission wouldmake you directly or secondarily liable for infringement under applicable copyright lawexcept executing it on a computer or modifying a private copy Propagation includescopying distribution (with or without modification) making available to the publicand in some countries other activities as wellTo ldquoconveyrdquo a work means any kind of propagation that enables other parties to makeor receive copies Mere interaction with a user through a computer network with notransfer of a copy is not conveyingAn interactive user interface displays ldquoAppropriate Legal Noticesrdquo to the extent that itincludes a convenient and prominently visible feature that (1) displays an appropriatecopyright notice and (2) tells the user that there is no warranty for the work (exceptto the extent that warranties are provided) that licensees may convey the work underthis License and how to view a copy of this License If the interface presents a listof user commands or options such as a menu a prominent item in the list meets thiscriterion

1 Source CodeThe ldquosource coderdquo for a work means the preferred form of the work for making modi-fications to it ldquoObject coderdquo means any non-source form of a workA ldquoStandard Interfacerdquo means an interface that either is an official standard definedby a recognized standards body or in the case of interfaces specified for a particularprogramming language one that is widely used among developers working in thatlanguageThe ldquoSystem Librariesrdquo of an executable work include anything other than the work asa whole that (a) is included in the normal form of packaging a Major Component butwhich is not part of that Major Component and (b) serves only to enable use of thework with that Major Component or to implement a Standard Interface for which animplementation is available to the public in source code form A ldquoMajor Componentrdquoin this context means a major essential component (kernel window system and soon) of the specific operating system (if any) on which the executable work runs or acompiler used to produce the work or an object code interpreter used to run it

106 OpenSS7 SS7 Stack

The ldquoCorresponding Sourcerdquo for a work in object code form means all the source codeneeded to generate install and (for an executable work) run the object code and tomodify the work including scripts to control those activities However it does notinclude the workrsquos System Libraries or general-purpose tools or generally availablefree programs which are used unmodified in performing those activities but which arenot part of the work For example Corresponding Source includes interface definitionfiles associated with source files for the work and the source code for shared librariesand dynamically linked subprograms that the work is specifically designed to requiresuch as by intimate data communication or control flow between those subprogramsand other parts of the workThe Corresponding Source need not include anything that users can regenerate auto-matically from other parts of the Corresponding SourceThe Corresponding Source for a work in source code form is that same work

2 Basic PermissionsAll rights granted under this License are granted for the term of copyright on theProgram and are irrevocable provided the stated conditions are met This License ex-plicitly affirms your unlimited permission to run the unmodified Program The outputfrom running a covered work is covered by this License only if the output given itscontent constitutes a covered work This License acknowledges your rights of fair useor other equivalent as provided by copyright lawYou may make run and propagate covered works that you do not convey withoutconditions so long as your license otherwise remains in force You may convey coveredworks to others for the sole purpose of having them make modifications exclusivelyfor you or provide you with facilities for running those works provided that youcomply with the terms of this License in conveying all material for which you do notcontrol copyright Those thus making or running the covered works for you must doso exclusively on your behalf under your direction and control on terms that prohibitthem from making any copies of your copyrighted material outside their relationshipwith youConveying under any other circumstances is permitted solely under the conditionsstated below Sublicensing is not allowed section 10 makes it unnecessary

3 Protecting Usersrsquo Legal Rights From Anti-Circumvention LawNo covered work shall be deemed part of an effective technological measure underany applicable law fulfilling obligations under article 11 of the WIPO copyright treatyadopted on 20 December 1996 or similar laws prohibiting or restricting circumventionof such measuresWhen you convey a covered work you waive any legal power to forbid circumvention oftechnological measures to the extent such circumvention is effected by exercising rightsunder this License with respect to the covered work and you disclaim any intentionto limit operation or modification of the work as a means of enforcing against theworkrsquos users your or third partiesrsquo legal rights to forbid circumvention of technologicalmeasures

4 Conveying Verbatim CopiesYou may convey verbatim copies of the Programrsquos source code as you receive it in anymedium provided that you conspicuously and appropriately publish on each copy an

Licenses 107

appropriate copyright notice keep intact all notices stating that this License and anynon-permissive terms added in accord with section 7 apply to the code keep intact allnotices of the absence of any warranty and give all recipients a copy of this Licensealong with the ProgramYou may charge any price or no price for each copy that you convey and you may offersupport or warranty protection for a fee

5 Conveying Modified Source VersionsYou may convey a work based on the Program or the modifications to produce it fromthe Program in the form of source code under the terms of section 4 provided thatyou also meet all of these conditionsa The work must carry prominent notices stating that you modified it and giving a

relevant dateb The work must carry prominent notices stating that it is released under this Li-

cense and any conditions added under section 7 This requirement modifies therequirement in section 4 to ldquokeep intact all noticesrdquo

c You must license the entire work as a whole under this License to anyone whocomes into possession of a copy This License will therefore apply along with anyapplicable section 7 additional terms to the whole of the work and all its partsregardless of how they are packaged This License gives no permission to licensethe work in any other way but it does not invalidate such permission if you haveseparately received it

d If the work has interactive user interfaces each must display Appropriate LegalNotices however if the Program has interactive interfaces that do not displayAppropriate Legal Notices your work need not make them do so

A compilation of a covered work with other separate and independent works whichare not by their nature extensions of the covered work and which are not combinedwith it such as to form a larger program in or on a volume of a storage or distributionmedium is called an ldquoaggregaterdquo if the compilation and its resulting copyright arenot used to limit the access or legal rights of the compilationrsquos users beyond what theindividual works permit Inclusion of a covered work in an aggregate does not causethis License to apply to the other parts of the aggregate

6 Conveying Non-Source FormsYou may convey a covered work in object code form under the terms of sections 4 and5 provided that you also convey the machine-readable Corresponding Source underthe terms of this License in one of these waysa Convey the object code in or embodied in a physical product (including a phys-

ical distribution medium) accompanied by the Corresponding Source fixed on adurable physical medium customarily used for software interchange

b Convey the object code in or embodied in a physical product (including a physi-cal distribution medium) accompanied by a written offer valid for at least threeyears and valid for as long as you offer spare parts or customer support for thatproduct model to give anyone who possesses the object code either (1) a copy ofthe Corresponding Source for all the software in the product that is covered by thisLicense on a durable physical medium customarily used for software interchange

108 OpenSS7 SS7 Stack

for a price no more than your reasonable cost of physically performing this con-veying of source or (2) access to copy the Corresponding Source from a networkserver at no charge

c Convey individual copies of the object code with a copy of the written offer toprovide the Corresponding Source This alternative is allowed only occasionallyand noncommercially and only if you received the object code with such an offerin accord with subsection 6b

d Convey the object code by offering access from a designated place (gratis or fora charge) and offer equivalent access to the Corresponding Source in the sameway through the same place at no further charge You need not require recipientsto copy the Corresponding Source along with the object code If the place tocopy the object code is a network server the Corresponding Source may be ona different server (operated by you or a third party) that supports equivalentcopying facilities provided you maintain clear directions next to the object codesaying where to find the Corresponding Source Regardless of what server hoststhe Corresponding Source you remain obligated to ensure that it is available foras long as needed to satisfy these requirements

e Convey the object code using peer-to-peer transmission provided you inform otherpeers where the object code and Corresponding Source of the work are being offeredto the general public at no charge under subsection 6d

A separable portion of the object code whose source code is excluded from the Cor-responding Source as a System Library need not be included in conveying the objectcode workA ldquoUser Productrdquo is either (1) a ldquoconsumer productrdquo which means any tangible per-sonal property which is normally used for personal family or household purposes or(2) anything designed or sold for incorporation into a dwelling In determining whethera product is a consumer product doubtful cases shall be resolved in favor of coverageFor a particular product received by a particular user ldquonormally usedrdquo refers to atypical or common use of that class of product regardless of the status of the par-ticular user or of the way in which the particular user actually uses or expects or isexpected to use the product A product is a consumer product regardless of whetherthe product has substantial commercial industrial or non-consumer uses unless suchuses represent the only significant mode of use of the productldquoInstallation Informationrdquo for a User Product means any methods procedures autho-rization keys or other information required to install and execute modified versions of acovered work in that User Product from a modified version of its Corresponding SourceThe information must suffice to ensure that the continued functioning of the modifiedobject code is in no case prevented or interfered with solely because modification hasbeen madeIf you convey an object code work under this section in or with or specifically foruse in a User Product and the conveying occurs as part of a transaction in whichthe right of possession and use of the User Product is transferred to the recipient inperpetuity or for a fixed term (regardless of how the transaction is characterized)the Corresponding Source conveyed under this section must be accompanied by theInstallation Information But this requirement does not apply if neither you nor any

Licenses 109

third party retains the ability to install modified object code on the User Product (forexample the work has been installed in ROM)The requirement to provide Installation Information does not include a requirementto continue to provide support service warranty or updates for a work that has beenmodified or installed by the recipient or for the User Product in which it has beenmodified or installed Access to a network may be denied when the modification itselfmaterially and adversely affects the operation of the network or violates the rules andprotocols for communication across the networkCorresponding Source conveyed and Installation Information provided in accord withthis section must be in a format that is publicly documented (and with an implementa-tion available to the public in source code form) and must require no special passwordor key for unpacking reading or copying

7 Additional TermsldquoAdditional permissionsrdquo are terms that supplement the terms of this License by mak-ing exceptions from one or more of its conditions Additional permissions that areapplicable to the entire Program shall be treated as though they were included in thisLicense to the extent that they are valid under applicable law If additional permis-sions apply only to part of the Program that part may be used separately under thosepermissions but the entire Program remains governed by this License without regardto the additional permissionsWhen you convey a copy of a covered work you may at your option remove anyadditional permissions from that copy or from any part of it (Additional permissionsmay be written to require their own removal in certain cases when you modify thework) You may place additional permissions on material added by you to a coveredwork for which you have or can give appropriate copyright permissionNotwithstanding any other provision of this License for material you add to a coveredwork you may (if authorized by the copyright holders of that material) supplementthe terms of this License with termsa Disclaiming warranty or limiting liability differently from the terms of sections 15

and 16 of this License orb Requiring preservation of specified reasonable legal notices or author attributions

in that material or in the Appropriate Legal Notices displayed by works containingit or

c Prohibiting misrepresentation of the origin of that material or requiring that mod-ified versions of such material be marked in reasonable ways as different from theoriginal version or

d Limiting the use for publicity purposes of names of licensors or authors of thematerial or

e Declining to grant rights under trademark law for use of some trade names trade-marks or service marks or

f Requiring indemnification of licensors and authors of that material by anyone whoconveys the material (or modified versions of it) with contractual assumptionsof liability to the recipient for any liability that these contractual assumptionsdirectly impose on those licensors and authors

110 OpenSS7 SS7 Stack

All other non-permissive additional terms are considered ldquofurther restrictionsrdquo withinthe meaning of section 10 If the Program as you received it or any part of it con-tains a notice stating that it is governed by this License along with a term that is afurther restriction you may remove that term If a license document contains a furtherrestriction but permits relicensing or conveying under this License you may add to acovered work material governed by the terms of that license document provided thatthe further restriction does not survive such relicensing or conveyingIf you add terms to a covered work in accord with this section you must place in therelevant source files a statement of the additional terms that apply to those files or anotice indicating where to find the applicable termsAdditional terms permissive or non-permissive may be stated in the form of a sep-arately written license or stated as exceptions the above requirements apply eitherway

8 TerminationYou may not propagate or modify a covered work except as expressly provided un-der this License Any attempt otherwise to propagate or modify it is void and willautomatically terminate your rights under this License (including any patent licensesgranted under the third paragraph of section 11)However if you cease all violation of this License then your license from a particularcopyright holder is reinstated (a) provisionally unless and until the copyright holderexplicitly and finally terminates your license and (b) permanently if the copyrightholder fails to notify you of the violation by some reasonable means prior to 60 daysafter the cessationMoreover your license from a particular copyright holder is reinstated permanently ifthe copyright holder notifies you of the violation by some reasonable means this is thefirst time you have received notice of violation of this License (for any work) from thatcopyright holder and you cure the violation prior to 30 days after your receipt of thenoticeTermination of your rights under this section does not terminate the licenses of partieswho have received copies or rights from you under this License If your rights havebeen terminated and not permanently reinstated you do not qualify to receive newlicenses for the same material under section 10

9 Acceptance Not Required for Having CopiesYou are not required to accept this License in order to receive or run a copy of theProgram Ancillary propagation of a covered work occurring solely as a consequence ofusing peer-to-peer transmission to receive a copy likewise does not require acceptanceHowever nothing other than this License grants you permission to propagate or modifyany covered work These actions infringe copyright if you do not accept this LicenseTherefore by modifying or propagating a covered work you indicate your acceptanceof this License to do so

10 Automatic Licensing of Downstream RecipientsEach time you convey a covered work the recipient automatically receives a licensefrom the original licensors to run modify and propagate that work subject to thisLicense You are not responsible for enforcing compliance by third parties with thisLicense

Licenses 111

An ldquoentity transactionrdquo is a transaction transferring control of an organization orsubstantially all assets of one or subdividing an organization or merging organizationsIf propagation of a covered work results from an entity transaction each party to thattransaction who receives a copy of the work also receives whatever licenses to the workthe partyrsquos predecessor in interest had or could give under the previous paragraph plusa right to possession of the Corresponding Source of the work from the predecessor ininterest if the predecessor has it or can get it with reasonable effortsYou may not impose any further restrictions on the exercise of the rights granted oraffirmed under this License For example you may not impose a license fee royalty orother charge for exercise of rights granted under this License and you may not initiatelitigation (including a cross-claim or counterclaim in a lawsuit) alleging that any patentclaim is infringed by making using selling offering for sale or importing the Programor any portion of it

11 PatentsA ldquocontributorrdquo is a copyright holder who authorizes use under this License of theProgram or a work on which the Program is based The work thus licensed is calledthe contributorrsquos ldquocontributor versionrdquoA contributorrsquos ldquoessential patent claimsrdquo are all patent claims owned or controlled bythe contributor whether already acquired or hereafter acquired that would be infringedby some manner permitted by this License of making using or selling its contributorversion but do not include claims that would be infringed only as a consequence offurther modification of the contributor version For purposes of this definition ldquocon-trolrdquo includes the right to grant patent sublicenses in a manner consistent with therequirements of this LicenseEach contributor grants you a non-exclusive worldwide royalty-free patent licenseunder the contributorrsquos essential patent claims to make use sell offer for sale importand otherwise run modify and propagate the contents of its contributor versionIn the following three paragraphs a ldquopatent licenserdquo is any express agreement or com-mitment however denominated not to enforce a patent (such as an express permissionto practice a patent or covenant not to sue for patent infringement) To ldquograntrdquo sucha patent license to a party means to make such an agreement or commitment not toenforce a patent against the partyIf you convey a covered work knowingly relying on a patent license and the Corre-sponding Source of the work is not available for anyone to copy free of charge and underthe terms of this License through a publicly available network server or other readilyaccessible means then you must either (1) cause the Corresponding Source to be soavailable or (2) arrange to deprive yourself of the benefit of the patent license for thisparticular work or (3) arrange in a manner consistent with the requirements of thisLicense to extend the patent license to downstream recipients ldquoKnowingly relyingrdquomeans you have actual knowledge that but for the patent license your conveying thecovered work in a country or your recipientrsquos use of the covered work in a countrywould infringe one or more identifiable patents in that country that you have reasonto believe are validIf pursuant to or in connection with a single transaction or arrangement you conveyor propagate by procuring conveyance of a covered work and grant a patent license

112 OpenSS7 SS7 Stack

to some of the parties receiving the covered work authorizing them to use propagatemodify or convey a specific copy of the covered work then the patent license you grantis automatically extended to all recipients of the covered work and works based on it

A patent license is ldquodiscriminatoryrdquo if it does not include within the scope of its cover-age prohibits the exercise of or is conditioned on the non-exercise of one or more of therights that are specifically granted under this License You may not convey a coveredwork if you are a party to an arrangement with a third party that is in the business ofdistributing software under which you make payment to the third party based on theextent of your activity of conveying the work and under which the third party grantsto any of the parties who would receive the covered work from you a discriminatorypatent license (a) in connection with copies of the covered work conveyed by you (orcopies made from those copies) or (b) primarily for and in connection with specificproducts or compilations that contain the covered work unless you entered into thatarrangement or that patent license was granted prior to 28 March 2007

Nothing in this License shall be construed as excluding or limiting any implied license orother defenses to infringement that may otherwise be available to you under applicablepatent law

12 No Surrender of Othersrsquo Freedom

If conditions are imposed on you (whether by court order agreement or otherwise) thatcontradict the conditions of this License they do not excuse you from the conditionsof this License If you cannot convey a covered work so as to satisfy simultaneouslyyour obligations under this License and any other pertinent obligations then as aconsequence you may not convey it at all For example if you agree to terms thatobligate you to collect a royalty for further conveying from those to whom you conveythe Program the only way you could satisfy both those terms and this License wouldbe to refrain entirely from conveying the Program

13 Remote Network Interaction Use with the GNU General Public License

Notwithstanding any other provision of this License if you modify the Program yourmodified version must prominently offer all users interacting with it remotely througha network (if your version supports such interaction) an opportunity to receive theCorresponding Source of your version by providing access to the Corresponding Sourcefrom a network server at no charge through some standard or customary means offacilitating copying of software This Corresponding Source shall include the Corre-sponding Source for any work covered by version 3 of the GNU General Public Licensethat is incorporated pursuant to the following paragraph

Notwithstanding any other provision of this License you have permission to link orcombine any covered work with a work licensed under version 3 of the GNU GeneralPublic License into a single combined work and to convey the resulting work Theterms of this License will continue to apply to the part which is the covered work butthe work with which it is combined will remain governed by version 3 of the GNUGeneral Public License

14 Revised Versions of this License

The Free Software Foundation may publish revised andor new versions of the GNUAffero General Public License from time to time Such new versions will be similar

Licenses 113

in spirit to the present version but may differ in detail to address new problems orconcernsEach version is given a distinguishing version number If the Program specifies thata certain numbered version of the GNU Affero General Public License ldquoor any laterversionrdquo applies to it you have the option of following the terms and conditions ei-ther of that numbered version or of any later version published by the Free SoftwareFoundation If the Program does not specify a version number of the GNU Affero Gen-eral Public License you may choose any version ever published by the Free SoftwareFoundationIf the Program specifies that a proxy can decide which future versions of the GNU AfferoGeneral Public License can be used that proxyrsquos public statement of acceptance of aversion permanently authorizes you to choose that version for the ProgramLater license versions may give you additional or different permissions However noadditional obligations are imposed on any author or copyright holder as a result of yourchoosing to follow a later version

15 Disclaimer of WarrantyTHERE IS NO WARRANTY FOR THE PROGRAM TO THE EXTENT PER-MITTED BY APPLICABLE LAW EXCEPT WHEN OTHERWISE STATED INWRITING THE COPYRIGHT HOLDERS ANDOR OTHER PARTIES PROVIDETHE PROGRAM ldquoAS ISrdquo WITHOUT WARRANTY OF ANY KIND EITHER EX-PRESSED OR IMPLIED INCLUDING BUT NOT LIMITED TO THE IMPLIEDWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULARPURPOSE THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCEOF THE PROGRAM IS WITH YOU SHOULD THE PROGRAM PROVE DEFEC-TIVE YOU ASSUME THE COST OF ALL NECESSARY SERVICING REPAIR ORCORRECTION

16 Limitation of LiabilityIN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO INWRITING WILL ANY COPYRIGHT HOLDER OR ANY OTHER PARTY WHOMODIFIES ANDOR CONVEYS THE PROGRAM AS PERMITTED ABOVE BELIABLE TO YOU FOR DAMAGES INCLUDING ANY GENERAL SPECIAL IN-CIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE ORINABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TOLOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUS-TAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAMTO OPERATE WITH ANY OTHER PROGRAMS) EVEN IF SUCH HOLDER OROTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAM-AGES

17 Interpretation of Sections 15 and 16If the disclaimer of warranty and limitation of liability provided above cannot be givenlocal legal effect according to their terms reviewing courts shall apply local law thatmost closely approximates an absolute waiver of all civil liability in connection withthe Program unless a warranty or assumption of liability accompanies a copy of theProgram in return for a fee

END OF TERMS AND CONDITIONS

114 OpenSS7 SS7 Stack

How to Apply These Terms to Your New Programs

If you develop a new program and you want it to be of the greatest possible use to the publicthe best way to achieve this is to make it free software which everyone can redistribute andchange under these termsTo do so attach the following notices to the program It is safest to attach them to thestart of each source file to most effectively state the exclusion of warranty and each fileshould have at least the ldquocopyrightrdquo line and a pointer to where the full notice is found

one line to give the programrsquos name and a brief idea of what it does

Copyright (C) year name of author

This program is free software you can redistribute it andor modify

it under the terms of the GNU Affero General Public License as published by

the Free Software Foundation either version 3 of the License or (at

your option) any later version

This program is distributed in the hope that it will be useful but

WITHOUT ANY WARRANTY without even the implied warranty of

MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE See the GNU

Affero General Public License for more details

You should have received a copy of the GNU Affero General Public License

along with this program If not see httpwwwgnuorglicenses

Also add information on how to contact you by electronic and paper mailIf your software can interact with users remotely through a network you should also makesure that it provides a way for users to get its source For example if your program is aweb application its interface could display a ldquoSourcerdquo link that leads users to an archive ofthe code There are many ways you could offer source and different solutions will be betterfor different programs see section 13 for the specific requirementsYou should also get your employer (if you work as a programmer) or school if any to signa ldquocopyright disclaimerrdquo for the program if necessary For more information on this andhow to apply and follow the GNU AGPL see httpwwwgnuorglicenses

Licenses 115

GNU General Public License

GNU GENERAL PUBLIC LICENSEVersion 3 29 June 2007

Copyright ccopy 2007 Free Software Foundation Inc httpfsforg

Everyone is permitted to copy and distribute verbatim copies of thislicense document but changing it is not allowed

Preamble

The GNU General Public License is a free copyleft license for software and other kinds ofworks

The licenses for most software and other practical works are designed to take away yourfreedom to share and change the works By contrast the GNU General Public License isintended to guarantee your freedom to share and change all versions of a programndashto makesure it remains free software for all its users We the Free Software Foundation use theGNU General Public License for most of our software it applies also to any other workreleased this way by its authors You can apply it to your programs too

When we speak of free software we are referring to freedom not price Our General PublicLicenses are designed to make sure that you have the freedom to distribute copies of freesoftware (and charge for them if you wish) that you receive source code or can get it if youwant it that you can change the software or use pieces of it in new free programs and thatyou know you can do these things

To protect your rights we need to prevent others from denying you these rights or askingyou to surrender the rights Therefore you have certain responsibilities if you distributecopies of the software or if you modify it responsibilities to respect the freedom of others

For example if you distribute copies of such a program whether gratis or for a fee youmust pass on to the recipients the same freedoms that you received You must make surethat they too receive or can get the source code And you must show them these terms sothey know their rights

Developers that use the GNU GPL protect your rights with two steps (1) assert copyrighton the software and (2) offer you this License giving you legal permission to copy distributeandor modify it

For the developersrsquo and authorsrsquo protection the GPL clearly explains that there is nowarranty for this free software For both usersrsquo and authorsrsquo sake the GPL requires thatmodified versions be marked as changed so that their problems will not be attributederroneously to authors of previous versions

Some devices are designed to deny users access to install or run modified versions of thesoftware inside them although the manufacturer can do so This is fundamentally incom-patible with the aim of protecting usersrsquo freedom to change the software The systematicpattern of such abuse occurs in the area of products for individuals to use which is pre-cisely where it is most unacceptable Therefore we have designed this version of the GPLto prohibit the practice for those products If such problems arise substantially in other

116 OpenSS7 SS7 Stack

domains we stand ready to extend this provision to those domains in future versions of theGPL as needed to protect the freedom of users

Finally every program is threatened constantly by software patents States should not allowpatents to restrict development and use of software on general-purpose computers but inthose that do we wish to avoid the special danger that patents applied to a free programcould make it effectively proprietary To prevent this the GPL assures that patents cannotbe used to render the program non-free

The precise terms and conditions for copying distribution and modification follow

Terms and Conditions

0 DefinitionsldquoThis Licenserdquo refers to version 3 of the GNU General Public LicenseldquoCopyrightrdquo also means copyright-like laws that apply to other kinds of works such assemiconductor masksldquoThe Programrdquo refers to any copyrightable work licensed under this License Eachlicensee is addressed as ldquoyourdquo ldquoLicenseesrdquo and ldquorecipientsrdquo may be individuals ororganizationsTo ldquomodifyrdquo a work means to copy from or adapt all or part of the work in a fashionrequiring copyright permission other than the making of an exact copy The resultingwork is called a ldquomodified versionrdquo of the earlier work or a work ldquobased onrdquo the earlierworkA ldquocovered workrdquo means either the unmodified Program or a work based on the Pro-gramTo ldquopropagaterdquo a work means to do anything with it that without permission wouldmake you directly or secondarily liable for infringement under applicable copyright lawexcept executing it on a computer or modifying a private copy Propagation includescopying distribution (with or without modification) making available to the publicand in some countries other activities as wellTo ldquoconveyrdquo a work means any kind of propagation that enables other parties to makeor receive copies Mere interaction with a user through a computer network with notransfer of a copy is not conveyingAn interactive user interface displays ldquoAppropriate Legal Noticesrdquo to the extent that itincludes a convenient and prominently visible feature that (1) displays an appropriatecopyright notice and (2) tells the user that there is no warranty for the work (exceptto the extent that warranties are provided) that licensees may convey the work underthis License and how to view a copy of this License If the interface presents a listof user commands or options such as a menu a prominent item in the list meets thiscriterion

1 Source CodeThe ldquosource coderdquo for a work means the preferred form of the work for making modi-fications to it ldquoObject coderdquo means any non-source form of a workA ldquoStandard Interfacerdquo means an interface that either is an official standard definedby a recognized standards body or in the case of interfaces specified for a particular

Licenses 117

programming language one that is widely used among developers working in thatlanguage

The ldquoSystem Librariesrdquo of an executable work include anything other than the work asa whole that (a) is included in the normal form of packaging a Major Component butwhich is not part of that Major Component and (b) serves only to enable use of thework with that Major Component or to implement a Standard Interface for which animplementation is available to the public in source code form A ldquoMajor Componentrdquoin this context means a major essential component (kernel window system and soon) of the specific operating system (if any) on which the executable work runs or acompiler used to produce the work or an object code interpreter used to run it

The ldquoCorresponding Sourcerdquo for a work in object code form means all the source codeneeded to generate install and (for an executable work) run the object code and tomodify the work including scripts to control those activities However it does notinclude the workrsquos System Libraries or general-purpose tools or generally availablefree programs which are used unmodified in performing those activities but which arenot part of the work For example Corresponding Source includes interface definitionfiles associated with source files for the work and the source code for shared librariesand dynamically linked subprograms that the work is specifically designed to requiresuch as by intimate data communication or control flow between those subprogramsand other parts of the work

The Corresponding Source need not include anything that users can regenerate auto-matically from other parts of the Corresponding Source

The Corresponding Source for a work in source code form is that same work

2 Basic Permissions

All rights granted under this License are granted for the term of copyright on theProgram and are irrevocable provided the stated conditions are met This License ex-plicitly affirms your unlimited permission to run the unmodified Program The outputfrom running a covered work is covered by this License only if the output given itscontent constitutes a covered work This License acknowledges your rights of fair useor other equivalent as provided by copyright law

You may make run and propagate covered works that you do not convey withoutconditions so long as your license otherwise remains in force You may convey coveredworks to others for the sole purpose of having them make modifications exclusivelyfor you or provide you with facilities for running those works provided that youcomply with the terms of this License in conveying all material for which you do notcontrol copyright Those thus making or running the covered works for you must doso exclusively on your behalf under your direction and control on terms that prohibitthem from making any copies of your copyrighted material outside their relationshipwith you

Conveying under any other circumstances is permitted solely under the conditionsstated below Sublicensing is not allowed section 10 makes it unnecessary

3 Protecting Usersrsquo Legal Rights From Anti-Circumvention Law

No covered work shall be deemed part of an effective technological measure underany applicable law fulfilling obligations under article 11 of the WIPO copyright treaty

118 OpenSS7 SS7 Stack

adopted on 20 December 1996 or similar laws prohibiting or restricting circumventionof such measures

When you convey a covered work you waive any legal power to forbid circumvention oftechnological measures to the extent such circumvention is effected by exercising rightsunder this License with respect to the covered work and you disclaim any intentionto limit operation or modification of the work as a means of enforcing against theworkrsquos users your or third partiesrsquo legal rights to forbid circumvention of technologicalmeasures

4 Conveying Verbatim Copies

You may convey verbatim copies of the Programrsquos source code as you receive it in anymedium provided that you conspicuously and appropriately publish on each copy anappropriate copyright notice keep intact all notices stating that this License and anynon-permissive terms added in accord with section 7 apply to the code keep intact allnotices of the absence of any warranty and give all recipients a copy of this Licensealong with the Program

You may charge any price or no price for each copy that you convey and you may offersupport or warranty protection for a fee

5 Conveying Modified Source Versions

You may convey a work based on the Program or the modifications to produce it fromthe Program in the form of source code under the terms of section 4 provided thatyou also meet all of these conditions

a The work must carry prominent notices stating that you modified it and giving arelevant date

b The work must carry prominent notices stating that it is released under this Li-cense and any conditions added under section 7 This requirement modifies therequirement in section 4 to ldquokeep intact all noticesrdquo

c You must license the entire work as a whole under this License to anyone whocomes into possession of a copy This License will therefore apply along with anyapplicable section 7 additional terms to the whole of the work and all its partsregardless of how they are packaged This License gives no permission to licensethe work in any other way but it does not invalidate such permission if you haveseparately received it

d If the work has interactive user interfaces each must display Appropriate LegalNotices however if the Program has interactive interfaces that do not displayAppropriate Legal Notices your work need not make them do so

A compilation of a covered work with other separate and independent works whichare not by their nature extensions of the covered work and which are not combinedwith it such as to form a larger program in or on a volume of a storage or distributionmedium is called an ldquoaggregaterdquo if the compilation and its resulting copyright arenot used to limit the access or legal rights of the compilationrsquos users beyond what theindividual works permit Inclusion of a covered work in an aggregate does not causethis License to apply to the other parts of the aggregate

6 Conveying Non-Source Forms

Licenses 119

You may convey a covered work in object code form under the terms of sections 4 and5 provided that you also convey the machine-readable Corresponding Source underthe terms of this License in one of these waysa Convey the object code in or embodied in a physical product (including a phys-

ical distribution medium) accompanied by the Corresponding Source fixed on adurable physical medium customarily used for software interchange

b Convey the object code in or embodied in a physical product (including a physi-cal distribution medium) accompanied by a written offer valid for at least threeyears and valid for as long as you offer spare parts or customer support for thatproduct model to give anyone who possesses the object code either (1) a copy ofthe Corresponding Source for all the software in the product that is covered by thisLicense on a durable physical medium customarily used for software interchangefor a price no more than your reasonable cost of physically performing this con-veying of source or (2) access to copy the Corresponding Source from a networkserver at no charge

c Convey individual copies of the object code with a copy of the written offer toprovide the Corresponding Source This alternative is allowed only occasionallyand noncommercially and only if you received the object code with such an offerin accord with subsection 6b

d Convey the object code by offering access from a designated place (gratis or fora charge) and offer equivalent access to the Corresponding Source in the sameway through the same place at no further charge You need not require recipientsto copy the Corresponding Source along with the object code If the place tocopy the object code is a network server the Corresponding Source may be ona different server (operated by you or a third party) that supports equivalentcopying facilities provided you maintain clear directions next to the object codesaying where to find the Corresponding Source Regardless of what server hoststhe Corresponding Source you remain obligated to ensure that it is available foras long as needed to satisfy these requirements

e Convey the object code using peer-to-peer transmission provided you inform otherpeers where the object code and Corresponding Source of the work are being offeredto the general public at no charge under subsection 6d

A separable portion of the object code whose source code is excluded from the Cor-responding Source as a System Library need not be included in conveying the objectcode workA ldquoUser Productrdquo is either (1) a ldquoconsumer productrdquo which means any tangible per-sonal property which is normally used for personal family or household purposes or(2) anything designed or sold for incorporation into a dwelling In determining whethera product is a consumer product doubtful cases shall be resolved in favor of coverageFor a particular product received by a particular user ldquonormally usedrdquo refers to atypical or common use of that class of product regardless of the status of the par-ticular user or of the way in which the particular user actually uses or expects or isexpected to use the product A product is a consumer product regardless of whetherthe product has substantial commercial industrial or non-consumer uses unless suchuses represent the only significant mode of use of the product

120 OpenSS7 SS7 Stack

ldquoInstallation Informationrdquo for a User Product means any methods procedures autho-rization keys or other information required to install and execute modified versions of acovered work in that User Product from a modified version of its Corresponding SourceThe information must suffice to ensure that the continued functioning of the modifiedobject code is in no case prevented or interfered with solely because modification hasbeen madeIf you convey an object code work under this section in or with or specifically foruse in a User Product and the conveying occurs as part of a transaction in whichthe right of possession and use of the User Product is transferred to the recipient inperpetuity or for a fixed term (regardless of how the transaction is characterized)the Corresponding Source conveyed under this section must be accompanied by theInstallation Information But this requirement does not apply if neither you nor anythird party retains the ability to install modified object code on the User Product (forexample the work has been installed in ROM)The requirement to provide Installation Information does not include a requirementto continue to provide support service warranty or updates for a work that has beenmodified or installed by the recipient or for the User Product in which it has beenmodified or installed Access to a network may be denied when the modification itselfmaterially and adversely affects the operation of the network or violates the rules andprotocols for communication across the networkCorresponding Source conveyed and Installation Information provided in accord withthis section must be in a format that is publicly documented (and with an implementa-tion available to the public in source code form) and must require no special passwordor key for unpacking reading or copying

7 Additional TermsldquoAdditional permissionsrdquo are terms that supplement the terms of this License by mak-ing exceptions from one or more of its conditions Additional permissions that areapplicable to the entire Program shall be treated as though they were included in thisLicense to the extent that they are valid under applicable law If additional permis-sions apply only to part of the Program that part may be used separately under thosepermissions but the entire Program remains governed by this License without regardto the additional permissionsWhen you convey a copy of a covered work you may at your option remove anyadditional permissions from that copy or from any part of it (Additional permissionsmay be written to require their own removal in certain cases when you modify thework) You may place additional permissions on material added by you to a coveredwork for which you have or can give appropriate copyright permissionNotwithstanding any other provision of this License for material you add to a coveredwork you may (if authorized by the copyright holders of that material) supplementthe terms of this License with termsa Disclaiming warranty or limiting liability differently from the terms of sections 15

and 16 of this License orb Requiring preservation of specified reasonable legal notices or author attributions

in that material or in the Appropriate Legal Notices displayed by works containingit or

Licenses 121

c Prohibiting misrepresentation of the origin of that material or requiring that mod-ified versions of such material be marked in reasonable ways as different from theoriginal version or

d Limiting the use for publicity purposes of names of licensors or authors of thematerial or

e Declining to grant rights under trademark law for use of some trade names trade-marks or service marks or

f Requiring indemnification of licensors and authors of that material by anyone whoconveys the material (or modified versions of it) with contractual assumptionsof liability to the recipient for any liability that these contractual assumptionsdirectly impose on those licensors and authors

All other non-permissive additional terms are considered ldquofurther restrictionsrdquo withinthe meaning of section 10 If the Program as you received it or any part of it con-tains a notice stating that it is governed by this License along with a term that is afurther restriction you may remove that term If a license document contains a furtherrestriction but permits relicensing or conveying under this License you may add to acovered work material governed by the terms of that license document provided thatthe further restriction does not survive such relicensing or conveying

If you add terms to a covered work in accord with this section you must place in therelevant source files a statement of the additional terms that apply to those files or anotice indicating where to find the applicable terms

Additional terms permissive or non-permissive may be stated in the form of a sep-arately written license or stated as exceptions the above requirements apply eitherway

8 Termination

You may not propagate or modify a covered work except as expressly provided un-der this License Any attempt otherwise to propagate or modify it is void and willautomatically terminate your rights under this License (including any patent licensesgranted under the third paragraph of section 11)

However if you cease all violation of this License then your license from a particularcopyright holder is reinstated (a) provisionally unless and until the copyright holderexplicitly and finally terminates your license and (b) permanently if the copyrightholder fails to notify you of the violation by some reasonable means prior to 60 daysafter the cessation

Moreover your license from a particular copyright holder is reinstated permanently ifthe copyright holder notifies you of the violation by some reasonable means this is thefirst time you have received notice of violation of this License (for any work) from thatcopyright holder and you cure the violation prior to 30 days after your receipt of thenotice

Termination of your rights under this section does not terminate the licenses of partieswho have received copies or rights from you under this License If your rights havebeen terminated and not permanently reinstated you do not qualify to receive newlicenses for the same material under section 10

122 OpenSS7 SS7 Stack

9 Acceptance Not Required for Having CopiesYou are not required to accept this License in order to receive or run a copy of theProgram Ancillary propagation of a covered work occurring solely as a consequence ofusing peer-to-peer transmission to receive a copy likewise does not require acceptanceHowever nothing other than this License grants you permission to propagate or modifyany covered work These actions infringe copyright if you do not accept this LicenseTherefore by modifying or propagating a covered work you indicate your acceptanceof this License to do so

10 Automatic Licensing of Downstream RecipientsEach time you convey a covered work the recipient automatically receives a licensefrom the original licensors to run modify and propagate that work subject to thisLicense You are not responsible for enforcing compliance by third parties with thisLicenseAn ldquoentity transactionrdquo is a transaction transferring control of an organization orsubstantially all assets of one or subdividing an organization or merging organizationsIf propagation of a covered work results from an entity transaction each party to thattransaction who receives a copy of the work also receives whatever licenses to the workthe partyrsquos predecessor in interest had or could give under the previous paragraph plusa right to possession of the Corresponding Source of the work from the predecessor ininterest if the predecessor has it or can get it with reasonable effortsYou may not impose any further restrictions on the exercise of the rights granted oraffirmed under this License For example you may not impose a license fee royalty orother charge for exercise of rights granted under this License and you may not initiatelitigation (including a cross-claim or counterclaim in a lawsuit) alleging that any patentclaim is infringed by making using selling offering for sale or importing the Programor any portion of it

11 PatentsA ldquocontributorrdquo is a copyright holder who authorizes use under this License of theProgram or a work on which the Program is based The work thus licensed is calledthe contributorrsquos ldquocontributor versionrdquoA contributorrsquos ldquoessential patent claimsrdquo are all patent claims owned or controlled bythe contributor whether already acquired or hereafter acquired that would be infringedby some manner permitted by this License of making using or selling its contributorversion but do not include claims that would be infringed only as a consequence offurther modification of the contributor version For purposes of this definition ldquocon-trolrdquo includes the right to grant patent sublicenses in a manner consistent with therequirements of this LicenseEach contributor grants you a non-exclusive worldwide royalty-free patent licenseunder the contributorrsquos essential patent claims to make use sell offer for sale importand otherwise run modify and propagate the contents of its contributor versionIn the following three paragraphs a ldquopatent licenserdquo is any express agreement or com-mitment however denominated not to enforce a patent (such as an express permissionto practice a patent or covenant not to sue for patent infringement) To ldquograntrdquo sucha patent license to a party means to make such an agreement or commitment not toenforce a patent against the party

Licenses 123

If you convey a covered work knowingly relying on a patent license and the Corre-sponding Source of the work is not available for anyone to copy free of charge and underthe terms of this License through a publicly available network server or other readilyaccessible means then you must either (1) cause the Corresponding Source to be soavailable or (2) arrange to deprive yourself of the benefit of the patent license for thisparticular work or (3) arrange in a manner consistent with the requirements of thisLicense to extend the patent license to downstream recipients ldquoKnowingly relyingrdquomeans you have actual knowledge that but for the patent license your conveying thecovered work in a country or your recipientrsquos use of the covered work in a countrywould infringe one or more identifiable patents in that country that you have reasonto believe are valid

If pursuant to or in connection with a single transaction or arrangement you conveyor propagate by procuring conveyance of a covered work and grant a patent licenseto some of the parties receiving the covered work authorizing them to use propagatemodify or convey a specific copy of the covered work then the patent license you grantis automatically extended to all recipients of the covered work and works based on it

A patent license is ldquodiscriminatoryrdquo if it does not include within the scope of its cover-age prohibits the exercise of or is conditioned on the non-exercise of one or more of therights that are specifically granted under this License You may not convey a coveredwork if you are a party to an arrangement with a third party that is in the business ofdistributing software under which you make payment to the third party based on theextent of your activity of conveying the work and under which the third party grantsto any of the parties who would receive the covered work from you a discriminatorypatent license (a) in connection with copies of the covered work conveyed by you (orcopies made from those copies) or (b) primarily for and in connection with specificproducts or compilations that contain the covered work unless you entered into thatarrangement or that patent license was granted prior to 28 March 2007

Nothing in this License shall be construed as excluding or limiting any implied license orother defenses to infringement that may otherwise be available to you under applicablepatent law

12 No Surrender of Othersrsquo Freedom

If conditions are imposed on you (whether by court order agreement or otherwise) thatcontradict the conditions of this License they do not excuse you from the conditionsof this License If you cannot convey a covered work so as to satisfy simultaneouslyyour obligations under this License and any other pertinent obligations then as aconsequence you may not convey it at all For example if you agree to terms thatobligate you to collect a royalty for further conveying from those to whom you conveythe Program the only way you could satisfy both those terms and this License wouldbe to refrain entirely from conveying the Program

13 Use with the GNU Affero General Public License

Notwithstanding any other provision of this License you have permission to link orcombine any covered work with a work licensed under version 3 of the GNU AfferoGeneral Public License into a single combined work and to convey the resulting workThe terms of this License will continue to apply to the part which is the covered work

124 OpenSS7 SS7 Stack

but the special requirements of the GNU Affero General Public License section 13concerning interaction through a network will apply to the combination as such

14 Revised Versions of this LicenseThe Free Software Foundation may publish revised andor new versions of the GNUGeneral Public License from time to time Such new versions will be similar in spiritto the present version but may differ in detail to address new problems or concernsEach version is given a distinguishing version number If the Program specifies thata certain numbered version of the GNU General Public License ldquoor any later versionrdquoapplies to it you have the option of following the terms and conditions either of thatnumbered version or of any later version published by the Free Software FoundationIf the Program does not specify a version number of the GNU General Public Licenseyou may choose any version ever published by the Free Software FoundationIf the Program specifies that a proxy can decide which future versions of the GNUGeneral Public License can be used that proxyrsquos public statement of acceptance of aversion permanently authorizes you to choose that version for the ProgramLater license versions may give you additional or different permissions However noadditional obligations are imposed on any author or copyright holder as a result of yourchoosing to follow a later version

15 Disclaimer of WarrantyTHERE IS NO WARRANTY FOR THE PROGRAM TO THE EXTENT PER-MITTED BY APPLICABLE LAW EXCEPT WHEN OTHERWISE STATED INWRITING THE COPYRIGHT HOLDERS ANDOR OTHER PARTIES PROVIDETHE PROGRAM ldquoAS ISrdquo WITHOUT WARRANTY OF ANY KIND EITHER EX-PRESSED OR IMPLIED INCLUDING BUT NOT LIMITED TO THE IMPLIEDWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULARPURPOSE THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCEOF THE PROGRAM IS WITH YOU SHOULD THE PROGRAM PROVE DEFEC-TIVE YOU ASSUME THE COST OF ALL NECESSARY SERVICING REPAIR ORCORRECTION

16 Limitation of LiabilityIN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO INWRITING WILL ANY COPYRIGHT HOLDER OR ANY OTHER PARTY WHOMODIFIES ANDOR CONVEYS THE PROGRAM AS PERMITTED ABOVE BELIABLE TO YOU FOR DAMAGES INCLUDING ANY GENERAL SPECIAL IN-CIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE ORINABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TOLOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUS-TAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAMTO OPERATE WITH ANY OTHER PROGRAMS) EVEN IF SUCH HOLDER OROTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAM-AGES

17 Interpretation of Sections 15 and 16If the disclaimer of warranty and limitation of liability provided above cannot be givenlocal legal effect according to their terms reviewing courts shall apply local law thatmost closely approximates an absolute waiver of all civil liability in connection with

Licenses 125

the Program unless a warranty or assumption of liability accompanies a copy of theProgram in return for a fee

END OF TERMS AND CONDITIONS

126 OpenSS7 SS7 Stack

How to Apply These Terms to Your New Programs

If you develop a new program and you want it to be of the greatest possible use to the publicthe best way to achieve this is to make it free software which everyone can redistribute andchange under these termsTo do so attach the following notices to the program It is safest to attach them to thestart of each source file to most effectively state the exclusion of warranty and each fileshould have at least the ldquocopyrightrdquo line and a pointer to where the full notice is found

one line to give the programrsquos name and a brief idea of what it does

Copyright (C) year name of author

This program is free software you can redistribute it andor modify

it under the terms of the GNU General Public License as published by

the Free Software Foundation either version 3 of the License or (at

your option) any later version

This program is distributed in the hope that it will be useful but

WITHOUT ANY WARRANTY without even the implied warranty of

MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE See the GNU

General Public License for more details

You should have received a copy of the GNU General Public License

along with this program If not see httpwwwgnuorglicenses

Also add information on how to contact you by electronic and paper mailIf the program does terminal interaction make it output a short notice like this when itstarts in an interactive mode

program Copyright (C) year name of author

This program comes with ABSOLUTELY NO WARRANTY for details type lsquoshow wrsquo

This is free software and you are welcome to redistribute it

under certain conditions type lsquoshow crsquo for details

The hypothetical commands lsquoshow wrsquo and lsquoshow crsquo should show the appropriate parts of theGeneral Public License Of course your programrsquos commands might be different for a GUIinterface you would use an ldquoabout boxrdquoYou should also get your employer (if you work as a programmer) or school if any to signa ldquocopyright disclaimerrdquo for the program if necessary For more information on this andhow to apply and follow the GNU GPL see httpwwwgnuorglicensesThe GNU General Public License does not permit incorporating your program into propri-etary programs If your program is a subroutine library you may consider it more usefulto permit linking proprietary applications with the library If this is what you want to douse the GNU Lesser General Public License instead of this License But first please readhttpwwwgnuorgphilosophywhy-not-lgplhtml

Licenses 127

GNU Lesser General Public License

GNU LESSER GENERAL PUBLIC LICENSEVersion 3 29 June 2007

Copyright ccopy 2007 Free Software Foundation Inc httpfsforg

Everyone is permitted to copy and distribute verbatim copies of thislicense document but changing it is not allowed

Terms and Conditions

This version of the GNU Lesser General Public License incorporates the terms and con-ditions of version 3 of the GNU General Public License supplemented by the additionalpermissions listed below0 Additional Definitions

As used herein ldquothis Licenserdquo refers to version 3 of the GNU Lesser General PublicLicense and the ldquoGNU GPLrdquo refers to version 3 of the GNU General Public LicenseldquoThe Libraryrdquo refers to a covered work governed by this License other than an Appli-cation or a Combined Work as defined belowAn ldquoApplicationrdquo is any work that makes use of an interface provided by the Librarybut which is not otherwise based on the Library Defining a subclass of a class definedby the Library is deemed a mode of using an interface provided by the LibraryA ldquoCombined Workrdquo is a work produced by combining or linking an Application withthe Library The particular version of the Library with which the Combined Work wasmade is also called the ldquoLinked VersionrdquoThe ldquoMinimal Corresponding Sourcerdquo for a Combined Work means the CorrespondingSource for the Combined Work excluding any source code for portions of the CombinedWork that considered in isolation are based on the Application and not on the LinkedVersionThe ldquoCorresponding Application Coderdquo for a Combined Work means the object codeandor source code for the Application including any data and utility programs neededfor reproducing the Combined Work from the Application but excluding the SystemLibraries of the Combined Work

1 Exception to Section 3 of the GNU GPLYou may convey a covered work under sections 3 and 4 of this License without beingbound by section 3 of the GNU GPL

2 Conveying Modified VersionsIf you modify a copy of the Library and in your modifications a facility refers to afunction or data to be supplied by an Application that uses the facility (other than asan argument passed when the facility is invoked) then you may convey a copy of themodified versiona under this License provided that you make a good faith effort to ensure that in

the event an Application does not supply the function or data the facility stilloperates and performs whatever part of its purpose remains meaningful or

128 OpenSS7 SS7 Stack

b under the GNU GPL with none of the additional permissions of this Licenseapplicable to that copy

3 Object Code Incorporating Material from Library Header FilesThe object code form of an Application may incorporate material from a header file thatis part of the Library You may convey such object code under terms of your choiceprovided that if the incorporated material is not limited to numerical parameters datastructure layouts and accessors or small macros inline functions and templates (tenor fewer lines in length) you do both of the followinga Give prominent notice with each copy of the object code that the Library is used

in it and that the Library and its use are covered by this Licenseb Accompany the object code with a copy of the GNU GPL and this license docu-

ment4 Combined Works

You may convey a Combined Work under terms of your choice that taken togethereffectively do not restrict modification of the portions of the Library contained in theCombined Work and reverse engineering for debugging such modifications if you alsodo each of the followinga Give prominent notice with each copy of the Combined Work that the Library is

used in it and that the Library and its use are covered by this Licenseb Accompany the Combined Work with a copy of the GNU GPL and this license

documentc For a Combined Work that displays copyright notices during execution include

the copyright notice for the Library among these notices as well as a referencedirecting the user to the copies of the GNU GPL and this license document

d Do one of the following0 Convey the Minimal Corresponding Source under the terms of this License

and the Corresponding Application Code in a form suitable for and underterms that permit the user to recombine or relink the Application with a mod-ified version of the Linked Version to produce a modified Combined Work inthe manner specified by section 6 of the GNU GPL for conveying Correspond-ing Source

1 Use a suitable shared library mechanism for linking with the Library Asuitable mechanism is one that (a) uses at run time a copy of the Libraryalready present on the userrsquos computer system and (b) will operate properlywith a modified version of the Library that is interface-compatible with theLinked Version

e Provide Installation Information but only if you would otherwise be required toprovide such information under section 6 of the GNU GPL and only to the extentthat such information is necessary to install and execute a modified version ofthe Combined Work produced by recombining or relinking the Application witha modified version of the Linked Version (If you use option 4d0 the InstallationInformation must accompany the Minimal Corresponding Source and Correspond-ing Application Code If you use option 4d1 you must provide the InstallationInformation in the manner specified by section 6 of the GNU GPL for conveyingCorresponding Source)

Licenses 129

5 Combined LibrariesYou may place library facilities that are a work based on the Library side by side ina single library together with other library facilities that are not Applications and arenot covered by this License and convey such a combined library under terms of yourchoice if you do both of the followinga Accompany the combined library with a copy of the same work based on the

Library uncombined with any other library facilities conveyed under the terms ofthis License

b Give prominent notice with the combined library that part of it is a work basedon the Library and explaining where to find the accompanying uncombined formof the same work

6 Revised Versions of the GNU Lesser General Public LicenseThe Free Software Foundation may publish revised andor new versions of the GNULesser General Public License from time to time Such new versions will be similarin spirit to the present version but may differ in detail to address new problems orconcernsEach version is given a distinguishing version number If the Library as you receivedit specifies that a certain numbered version of the GNU Lesser General Public Licenseldquoor any later versionrdquo applies to it you have the option of following the terms andconditions either of that published version or of any later version published by theFree Software Foundation If the Library as you received it does not specify a versionnumber of the GNU Lesser General Public License you may choose any version of theGNU Lesser General Public License ever published by the Free Software FoundationIf the Library as you received it specifies that a proxy can decide whether future versionsof the GNU Lesser General Public License shall apply that proxyrsquos public statementof acceptance of any version is permanent authorization for you to choose that versionfor the Library

END OF TERMS AND CONDITIONS

130 OpenSS7 SS7 Stack

GNU Free Documentation License

GNU FREE DOCUMENTATION LICENSEVersion 11 March 2000

Copyright ccopy 2000 Free Software Foundation Inc59 Temple Place Suite 330 Boston MA 02111-1307 USA

Everyone is permitted to copy and distribute verbatim copiesof this license document but changing it is not allowed

Preamble

The purpose of this License is to make a manual textbook or other written document freein the sense of freedom to assure everyone the effective freedom to copy and redistributeit with or without modifying it either commercially or noncommercially Secondarily thisLicense preserves for the author and publisher a way to get credit for their work while notbeing considered responsible for modifications made by others

This License is a kind of ldquocopyleftrdquo which means that derivative works of the documentmust themselves be free in the same sense It complements the GNU General Public Licensewhich is a copyleft license designed for free software

We have designed this License in order to use it for manuals for free software because freesoftware needs free documentation a free program should come with manuals providing thesame freedoms that the software does But this License is not limited to software manualsit can be used for any textual work regardless of subject matter or whether it is publishedas a printed book We recommend this License principally for works whose purpose isinstruction or reference

Terms and Conditions for Copying Distribution and Modification

1 APPLICABILITY AND DEFINITIONS

This License applies to any manual or other work that contains a notice placed bythe copyright holder saying it can be distributed under the terms of this License TheldquoDocumentrdquo below refers to any such manual or work Any member of the public isa licensee and is addressed as ldquoyourdquo

A ldquoModified Versionrdquo of the Document means any work containing the Document ora portion of it either copied verbatim or with modifications andor translated intoanother language

A ldquoSecondary Sectionrdquo is a named appendix or a front-matter section of the Documentthat deals exclusively with the relationship of the publishers or authors of the Documentto the Documentrsquos overall subject (or to related matters) and contains nothing thatcould fall directly within that overall subject (For example if the Document is in part atextbook of mathematics a Secondary Section may not explain any mathematics) Therelationship could be a matter of historical connection with the subject or with relatedmatters or of legal commercial philosophical ethical or political position regardingthem

Licenses 131

The ldquoInvariant Sectionsrdquo are certain Secondary Sections whose titles are designated asbeing those of Invariant Sections in the notice that says that the Document is releasedunder this LicenseThe ldquoCover Textsrdquo are certain short passages of text that are listed as Front-CoverTexts or Back-Cover Texts in the notice that says that the Document is released underthis LicenseA ldquoTransparentrdquo copy of the Document means a machine-readable copy representedin a format whose specification is available to the general public whose contents canbe viewed and edited directly and straightforwardly with generic text editors or (forimages composed of pixels) generic paint programs or (for drawings) some widely avail-able drawing editor and that is suitable for input to text formatters or for automatictranslation to a variety of formats suitable for input to text formatters A copy madein an otherwise Transparent file format whose markup has been designed to thwart ordiscourage subsequent modification by readers is not Transparent A copy that is notldquoTransparentrdquo is called ldquoOpaquerdquoExamples of suitable formats for Transparent copies include plain ascii withoutmarkup Texinfo input format LaTEX input format SGML or XML using apublicly available DTD and standard-conforming simple HTML designed for humanmodification Opaque formats include PostScript PDF proprietary formats that canbe read and edited only by proprietary word processors SGML or XML for which theDTD andor processing tools are not generally available and the machine-generatedHTML produced by some word processors for output purposes onlyThe ldquoTitle Pagerdquo means for a printed book the title page itself plus such followingpages as are needed to hold legibly the material this License requires to appear in thetitle page For works in formats which do not have any title page as such ldquoTitle Pagerdquomeans the text near the most prominent appearance of the workrsquos title preceding thebeginning of the body of the text

2 VERBATIM COPYINGYou may copy and distribute the Document in any medium either commercially ornoncommercially provided that this License the copyright notices and the licensenotice saying this License applies to the Document are reproduced in all copies andthat you add no other conditions whatsoever to those of this License You may not usetechnical measures to obstruct or control the reading or further copying of the copiesyou make or distribute However you may accept compensation in exchange for copiesIf you distribute a large enough number of copies you must also follow the conditionsin section 3You may also lend copies under the same conditions stated above and you may publiclydisplay copies

3 COPYING IN QUANTITYIf you publish printed copies of the Document numbering more than 100 and theDocumentrsquos license notice requires Cover Texts you must enclose the copies in coversthat carry clearly and legibly all these Cover Texts Front-Cover Texts on the frontcover and Back-Cover Texts on the back cover Both covers must also clearly andlegibly identify you as the publisher of these copies The front cover must present thefull title with all words of the title equally prominent and visible You may add other

132 OpenSS7 SS7 Stack

material on the covers in addition Copying with changes limited to the covers as longas they preserve the title of the Document and satisfy these conditions can be treatedas verbatim copying in other respectsIf the required texts for either cover are too voluminous to fit legibly you should putthe first ones listed (as many as fit reasonably) on the actual cover and continue therest onto adjacent pagesIf you publish or distribute Opaque copies of the Document numbering more than 100you must either include a machine-readable Transparent copy along with each Opaquecopy or state in or with each Opaque copy a publicly-accessible computer-networklocation containing a complete Transparent copy of the Document free of added ma-terial which the general network-using public has access to download anonymously atno charge using public-standard network protocols If you use the latter option youmust take reasonably prudent steps when you begin distribution of Opaque copiesin quantity to ensure that this Transparent copy will remain thus accessible at thestated location until at least one year after the last time you distribute an Opaquecopy (directly or through your agents or retailers) of that edition to the publicIt is requested but not required that you contact the authors of the Document wellbefore redistributing any large number of copies to give them a chance to provide youwith an updated version of the Document

4 MODIFICATIONSYou may copy and distribute a Modified Version of the Document under the conditionsof sections 2 and 3 above provided that you release the Modified Version under preciselythis License with the Modified Version filling the role of the Document thus licensingdistribution and modification of the Modified Version to whoever possesses a copy ofit In addition you must do these things in the Modified VersionA Use in the Title Page (and on the covers if any) a title distinct from that of the

Document and from those of previous versions (which should if there were anybe listed in the History section of the Document) You may use the same title asa previous version if the original publisher of that version gives permission

B List on the Title Page as authors one or more persons or entities responsible forauthorship of the modifications in the Modified Version together with at least fiveof the principal authors of the Document (all of its principal authors if it has lessthan five)

C State on the Title page the name of the publisher of the Modified Version as thepublisher

D Preserve all the copyright notices of the DocumentE Add an appropriate copyright notice for your modifications adjacent to the other

copyright noticesF Include immediately after the copyright notices a license notice giving the public

permission to use the Modified Version under the terms of this License in the formshown in the Addendum below

G Preserve in that license notice the full lists of Invariant Sections and required CoverTexts given in the Documentrsquos license notice

H Include an unaltered copy of this License

Licenses 133

I Preserve the section entitled ldquoHistoryrdquo and its title and add to it an item statingat least the title year new authors and publisher of the Modified Version asgiven on the Title Page If there is no section entitled ldquoHistoryrdquo in the Documentcreate one stating the title year authors and publisher of the Document as givenon its Title Page then add an item describing the Modified Version as stated inthe previous sentence

J Preserve the network location if any given in the Document for public access toa Transparent copy of the Document and likewise the network locations given inthe Document for previous versions it was based on These may be placed in theldquoHistoryrdquo section You may omit a network location for a work that was publishedat least four years before the Document itself or if the original publisher of theversion it refers to gives permission

K In any section entitled ldquoAcknowledgmentsrdquo or ldquoDedicationsrdquo preserve the sec-tionrsquos title and preserve in the section all the substance and tone of each of thecontributor acknowledgments andor dedications given therein

L Preserve all the Invariant Sections of the Document unaltered in their text andin their titles Section numbers or the equivalent are not considered part of thesection titles

M Delete any section entitled ldquoEndorsementsrdquo Such a section may not be includedin the Modified Version

N Do not retitle any existing section as ldquoEndorsementsrdquo or to conflict in title withany Invariant Section

If the Modified Version includes new front-matter sections or appendices that qualifyas Secondary Sections and contain no material copied from the Document you may atyour option designate some or all of these sections as invariant To do this add theirtitles to the list of Invariant Sections in the Modified Versionrsquos license notice Thesetitles must be distinct from any other section titlesYou may add a section entitled ldquoEndorsementsrdquo provided it contains nothing butendorsements of your Modified Version by various partiesmdashfor example statements ofpeer review or that the text has been approved by an organization as the authoritativedefinition of a standardYou may add a passage of up to five words as a Front-Cover Text and a passage of upto 25 words as a Back-Cover Text to the end of the list of Cover Texts in the ModifiedVersion Only one passage of Front-Cover Text and one of Back-Cover Text may beadded by (or through arrangements made by) any one entity If the Document alreadyincludes a cover text for the same cover previously added by you or by arrangementmade by the same entity you are acting on behalf of you may not add another butyou may replace the old one on explicit permission from the previous publisher thatadded the old oneThe author(s) and publisher(s) of the Document do not by this License give permissionto use their names for publicity for or to assert or imply endorsement of any ModifiedVersion

5 COMBINING DOCUMENTSYou may combine the Document with other documents released under this Licenseunder the terms defined in section 4 above for modified versions provided that you

134 OpenSS7 SS7 Stack

include in the combination all of the Invariant Sections of all of the original documentsunmodified and list them all as Invariant Sections of your combined work in its licensenoticeThe combined work need only contain one copy of this License and multiple identicalInvariant Sections may be replaced with a single copy If there are multiple InvariantSections with the same name but different contents make the title of each such sectionunique by adding at the end of it in parentheses the name of the original author orpublisher of that section if known or else a unique number Make the same adjustmentto the section titles in the list of Invariant Sections in the license notice of the combinedworkIn the combination you must combine any sections entitled ldquoHistoryrdquo in the variousoriginal documents forming one section entitled ldquoHistoryrdquo likewise combine any sec-tions entitled ldquoAcknowledgmentsrdquo and any sections entitled ldquoDedicationsrdquo You mustdelete all sections entitled ldquoEndorsementsrdquo

6 COLLECTIONS OF DOCUMENTSYou may make a collection consisting of the Document and other documents releasedunder this License and replace the individual copies of this License in the variousdocuments with a single copy that is included in the collection provided that youfollow the rules of this License for verbatim copying of each of the documents in allother respectsYou may extract a single document from such a collection and distribute it individu-ally under this License provided you insert a copy of this License into the extracteddocument and follow this License in all other respects regarding verbatim copying ofthat document

7 AGGREGATION WITH INDEPENDENT WORKSA compilation of the Document or its derivatives with other separate and independentdocuments or works in or on a volume of a storage or distribution medium does notas a whole count as a Modified Version of the Document provided no compilationcopyright is claimed for the compilation Such a compilation is called an ldquoaggregaterdquoand this License does not apply to the other self-contained works thus compiled withthe Document on account of their being thus compiled if they are not themselvesderivative works of the DocumentIf the Cover Text requirement of section 3 is applicable to these copies of the Documentthen if the Document is less than one quarter of the entire aggregate the DocumentrsquosCover Texts may be placed on covers that surround only the Document within theaggregate Otherwise they must appear on covers around the whole aggregate

8 TRANSLATIONTranslation is considered a kind of modification so you may distribute translationsof the Document under the terms of section 4 Replacing Invariant Sections withtranslations requires special permission from their copyright holders but you mayinclude translations of some or all Invariant Sections in addition to the original versionsof these Invariant Sections You may include a translation of this License provided thatyou also include the original English version of this License In case of a disagreementbetween the translation and the original English version of this License the originalEnglish version will prevail

Licenses 135

9 TERMINATIONYou may not copy modify sublicense or distribute the Document except as expresslyprovided for under this License Any other attempt to copy modify sublicense ordistribute the Document is void and will automatically terminate your rights underthis License However parties who have received copies or rights from you under thisLicense will not have their licenses terminated so long as such parties remain in fullcompliance

10 FUTURE REVISIONS OF THIS LICENSEThe Free Software Foundation may publish new revised versions of the GNU FreeDocumentation License from time to time Such new versions will be similar in spiritto the present version but may differ in detail to address new problems or concernsSee httpwwwgnuorgcopyleftEach version of the License is given a distinguishing version number If the Documentspecifies that a particular numbered version of this License ldquoor any later versionrdquoapplies to it you have the option of following the terms and conditions either of thatspecified version or of any later version that has been published (not as a draft) bythe Free Software Foundation If the Document does not specify a version number ofthis License you may choose any version ever published (not as a draft) by the FreeSoftware Foundation

END OF TERMS AND CONDITIONS

136 OpenSS7 SS7 Stack

How to use this License for your documents

To use this License in a document you have written include a copy of the License in thedocument and put the following copyright and license notices just after the title page

Copyright (C) year your name

Permission is granted to copy distribute andor modify this document

under the terms of the GNU Free Documentation License Version 11

or any later version published by the Free Software Foundation

with the Invariant Sections being list their titles with the

Front-Cover Texts being list and with the Back-Cover Texts being list

A copy of the license is included in the section entitled lsquolsquoGNU

Free Documentation Licensersquorsquo

If you have no Invariant Sections write ldquowith no Invariant Sectionsrdquo instead of saying whichones are invariant If you have no Front-Cover Texts write ldquono Front-Cover Textsrdquo insteadof ldquoFront-Cover Texts being listrdquo likewise for Back-Cover TextsIf your document contains nontrivial examples of program code we recommend releasingthese examples in parallel under your choice of free software license such as the GNUGeneral Public License to permit their use in free software

Indices 137

Indices

Index of Concepts

Aapplications 19apt 48 51Architectures 36authors 5

Bbinary debs 54 63 80binary rpms 51 62 79 80bug reports automatic generation 99bug reports generating 98bug reports stand along generation 100bugs 43bugs history 44bugs known 44bugs reporting 97building 77building source dscs 78building source srpm 77building tar ball 78

Ccheckout cvs 59compatibility 34configuration 61configure environment variables 74configure options 67configuring binary debs 63configuring binary rpms 62configuring source dscs 67configuring source srpm 63configuring tar ball 67conformance 31contributors 5conventions 16credits 4cvs 59

Ddefinitions 16device 28device drivers 28downloading 49downloading apt 51downloading binary rpms 51downloading debian debs 54downloading debian dscs 57downloading source srpm 57

downloading tar ball 58downloading yum 49drivers 28

Ggenerating bug reports 98 100generating bug reports automatically 99generating problem reports 98generating problem reports automatically 99generating problem reports stand alone 100GNULinux Distributions 34

Hhistory 46history bugs 44

Iindices 137installation 47installing 79installing binary debs 80installing binary rpms 79installing tar ball 80introduction 15

KKernel 36known bugs 44known problems 101

Llicense AGPL 104license FDL 130license GNU Affero General Public License 104license GNU Free Documentation License 130license GNU General Public License 115license GPL 115license Lesser General Public License 127license LGPL 127licenses 103licensing 1Linux Fast-STREAMS 37Linux STREAMS 37loading 81

138 OpenSS7 SS7 Stack

Mmaintainer 5manual abstract 1manual audience 1manual disclaimer 4manual intent 1manual notice 1manual objective 1manual revisions 2maturity 42

Oobjective 17organization 15overview 15

Ppost-installation checks 96pre-installation checks 93prerequisites 33problem reports 97problems known 101

Qquick start guide 9

Rreference 19release notes 37release strss7-09a-1 42release strss7-09a-2 41release strss7-09a-3 41release strss7-09a-4 41release strss7-09a5 40release strss7-09a6 39release strss7-09a7 38release strss7-09a8 37releases 33removing 80removing binary debs 80removing binary rpms 80removing source dscs 81removing source srpm 81

removing tar ball 81reporting bugs 97repositories 47repositories apt 48repositories yum 47

Sschedule 45source dscs 57 67 78 81source rpms 57 63 77 81sponsors 4ss7 protocol stack 20strss7-dev-09a8-172i686rpm 62strss7-devel-09a8-172i686rpm 62strss7-doc-09a8-172i686rpm 62strss7-LiS-core-2420-287-09a8-172i686rpm

62strss7-LiS-info-2420-287-09a8-172i686rpm

62strss7-LiS-lib-09a8-172i686rpm 62strss7-LiS-util-09a8-172i686rpm 63strss7-source-09a8-172i686rpm 63strss7-streams-core-2420-287-09a8-172i686-

rpm 62strss7-streams-info-2420-287-09a8-172i686-

rpm 62strss7-streams-lib-09a8-172i686rpm 62strss7-streams-util-09a8-172i686rpm 63

Ttar ball 58 67 78 80 81test suites 93test suites running 97troubleshooting 93

Wweb resources 6

Xx400p t400p t100p e400p e100p te405p te410p 29

Yyum 47 49

Indices 139

Index of Data Types

Aapt-get(8) 38

Y

yum(8) 38

140 OpenSS7 SS7 Stack

Index of Functions and Macros

(Index is nonexistent)

Indices 141

Index of Variables and Constants

AAUTOM4TE 77AUTOTEST 77

BBZIP2 75BZIP2_CMD 75

CCHKCONFIG 75

DDEB_BUILD_ARCH 75DEB_BUILD_GNU_CPU 76DEB_BUILD_GNU_SYSTEM 76DEB_BUILD_GNU_TYPE 76DEB_HOST_ARCH 76DEB_HOST_GNU_CPU 76DEB_HOST_GNU_SYSTEM 76DEB_HOST_GNU_TYPE 76DEPMOD 76DESTDIR 76DPKG 75DPKG_BUILDPACKAGE 75DPKG_SOURCE 75

GGENKSYMS 77GNUPGHOME 74GNUPGUSER 74GPG 74GPGPASSWD 74GZIP 75GZIP_CMD 75

IIRQF_DISABLED 37IRQF_SHARED 37

KKGENKSYMS 77

LLDCONFIG 76LSMOD 76LSOF 76

MMAKEWHATIS 75MODPOST_CACHE 77MODPROBE 76MODULE_VERSION 38

NNM 77

OOBJDUMP 77

PPACKAGE_KVERSION 64PIC 75

RREFER 74RPM 75RPMBUILD 75

SSA_INTERRUPT 37SA_SHIRQ 37SOELIM 74

TTBL 74

142 OpenSS7 SS7 Stack

Index of Files and Programs

libmodules2420-287streams 82

Indices 143

Index of Configuration Options

332bit-libs 68

Aarch 69autotest 68

Bbase-major 74

Cchecks 65 68compress-manpages 68cooked-manpages 65 71

Ddeb-epoch 72deb-release 72deb-topdir 72devel 66 69devfs 70docs 66 69

Ggpg-home 71gpg-user 70

Iindep 69initscripts 68

Kk-archdir 73k-build 72k-config 73

k-debug 65 70k-inline 66 70k-linkage 72k-machdir 73k-modules 72k-modversions 66 70k-optimize 65 73k-release 64 72k-safe 66 70k-sysmap 73k-test 65 70

Llfs 67 74lis 67 73

Mmodules 67 69

Ppkg-distdir 71pkg-epoch 71pkg-release 71public 65 68

Rrpm-epoch 71rpm-extra 71rpm-release 71rpm-topdir 71

Sstrconf-master 74

Ttools 66 69

144 OpenSS7 SS7 Stack

Index of Makefile Targets

Aall 82 83

Ccheck 83check-clean 86checklog 88clean 85compilelog 88csig 92

Ddebs 91dist 85distlog 88distcheck 85distchecklog 88distclean 85doxy 92dsc 91

Fforced-release 87forced-release-sign 87

Iinstall 82 83install-mans 86install-strip 82 83installlog 88installcheck 84installchecklog 88

Mmaintainer-clean 86

mans 86mostlyclean 85

Ppr 89 99

Rrebuild 91rebuildlog 88release 87release-archives 89release-clean 87release-clean-archives 90release-sign 87release-sign-archives 90release-signlog 89releaselog 88remove 84removelog 88resign 91resignlog 88retest 84rpms 90

Ssend-pr 89sign 90sigs 91srpm 90srpm-sign 90srpmlog 88

Uuninstall 84uninstall-mans 86uninstalllog 88

Indices 145

Index of Authors

Bidulock Brian 5

146 OpenSS7 SS7 Stack

Index of Manual Pages Referenced

Aapt(8) 9 47 51autoconf(1) 9 52 55 58 60 61 67 79 84autom4te(1) 77automake(1) 60 65 66 67 69 70 80 81 83

84 85 86 87 88autoreconf(1) 83

Bbzip2(1) 75

Cchkconfig(8) 75cvs(1) 9 59

Ddepmod(8) 76devfsd(1) 66devfsd(8) 70doxygen(1) 92dpkg(1) 47 49 58 61 69 71 75 84dpkg(8) 80 81dpkg-buildpackage(1) 75dpkg-source(1) 75

Eethereal(1) 46

Ggcc(1) 11genksyms(8) 60 77gettext(1) 67git(1) 9gpg(1) 70grefer(1) 60 65 71groff(1) 60 65 71gzip(1) 75

Iinit_install(8) 75init_remove(8) 75

Lldconfig(8) 76libtool(1) 67lsmod(8) 76lsof(1) 76

Mmake(1) 61 68makewhatis(8) 75modpost(1) 77modprobe(8) 76

Nnm(1) 77

Oobjdump(1) 77

Ppcap(3) 46pic(1) 65 71 75

Rrefer(1) 65 71 74rpm(1) 47 49 51 58 61 69 71 75 77 79 80

84 87 90rpm(8) 63 79rpmbuild(1) 64 75

Ssoelim(1) 65 71 74STREAMS(9) 1

Ttar(1) 58 85tbl(1) 65 71 74tee(1) 87texinfo(1) 66 69

Wwget(1) 47 58wireshark(1) 46

Yyast(8) 47yum(8) 9 47 49 51

Zzypper(8) 47 49

  • Preface
    • Notice
    • Abstract
      • Objective
      • Intent
      • Audience
        • Revisions
          • Version Control
          • ISO 9000 Compliance
            • Disclaimer
              • US Government Restricted Rights
                • Acknowledgements
                  • Sponsors
                  • Contributors
                    • Authors
                    • Maintainer
                    • Web Resources
                      • Quick Start Guide
                        • OpenSS7 SS7 Stack
                          • Release
                          • Prerequisites
                          • Installation
                          • Brief Installation Instructions
                          • Detailed Installation Instructions
                              • Introduction
                                • Overview
                                • Organization of this Manual
                                • Conventions and Definitions
                                  • Objective
                                  • Reference
                                    • Applications
                                    • SS7 Protocol Stack
                                      • Signalling Data Link (SDL)
                                      • Signalling Data Terminal (SDT)
                                      • Signalling Link (SL)
                                      • Message Transfer Part (MTP)
                                      • Signalling Connection Control Part (SCCP)
                                      • Transaction Capabilities Application Part (TCAP)
                                      • Base Station System Application Part (BSSAP)
                                        • Device Drivers
                                          • Digium Drivers
                                          • SeaLevel ACB56 Drivers
                                              • Conformance
                                              • Releases
                                                • Prerequisites
                                                • Compatibility
                                                  • GNULinux Distributions
                                                  • Kernel
                                                  • Architectures
                                                  • Linux STREAMS
                                                  • Linux Fast-STREAMS
                                                    • Release Notes
                                                      • Major changes for release strss7-09a8
                                                      • Major changes for release strss7-09a7
                                                      • Major changes for release strss7-09a6
                                                      • Major changes for release strss7-09a5
                                                      • Major changes for release strss7-09a-4
                                                      • Major changes for release strss7-09a-3
                                                      • Major changes for release strss7-09a-2
                                                      • Initial release strss7-09a-1
                                                        • Maturity
                                                          • Pre-Alpha Releases
                                                          • Alpha Releases
                                                          • Beta Releases
                                                          • Gamma Releases
                                                          • Production Releases
                                                          • Unstable Releases
                                                            • Bugs
                                                              • Defect Notices
                                                              • Known Defects
                                                              • Defect History
                                                                • Schedule
                                                                • History
                                                                  • Installation
                                                                    • Repositories
                                                                      • Repositories for YUM
                                                                      • Repositories for APT
                                                                        • Downloading
                                                                          • Downloading with YUM
                                                                          • Downloading with APT
                                                                          • Downloading the Binary RPM
                                                                          • Downloading the Debian DEB
                                                                          • Downloading the Source RPM
                                                                          • Downloading the Debian DSC
                                                                          • Downloading the Tar Ball
                                                                          • Downloading from CVS
                                                                            • Configuration
                                                                              • Configuring the Binary RPM
                                                                              • Configuring the Debian DEB
                                                                              • Configuring the Source RPM
                                                                              • Configuring the Debian DSC
                                                                              • Configuring the Tar Ball
                                                                                • Configure Options
                                                                                • Environment Variables
                                                                                • Build
                                                                                    • Building
                                                                                      • Building from the Source RPM
                                                                                      • Building from the Debian DSC
                                                                                      • Building from the Tar Ball
                                                                                        • Native Build
                                                                                        • Cross-Build
                                                                                            • Installing
                                                                                              • Installing the Binary RPM
                                                                                              • Installing the Debian DEB
                                                                                              • Installing the Tar Ball
                                                                                                • Removing
                                                                                                  • Removing the Binary RPM
                                                                                                  • Removing the Debian DEB
                                                                                                  • Removing the Source RPM
                                                                                                  • Removing the Debian DSC
                                                                                                  • Removing the Tar Ball
                                                                                                    • Loading
                                                                                                      • Normal Module Loading
                                                                                                        • Linux Fast-STREAMS Module Loading
                                                                                                        • Linux STREAMS Module Loading
                                                                                                            • Maintenance
                                                                                                              • Makefile Targets
                                                                                                                • User Targets
                                                                                                                • Maintainer Targets
                                                                                                                • Clean Targets
                                                                                                                • Manual Page Targets
                                                                                                                • Release Targets
                                                                                                                • Logging Targets
                                                                                                                • Problem Report Targets
                                                                                                                • Release Archive Targets
                                                                                                                • RPM Build Targets
                                                                                                                • Debian Build Targets
                                                                                                                • Documentation Targets
                                                                                                                  • Troubleshooting
                                                                                                                    • Test Suites
                                                                                                                      • Pre-installation Checks
                                                                                                                        • Pre-Installation System Checks
                                                                                                                        • Pre-Installation Maintenance Checks
                                                                                                                        • Specific Pre-Installation Checks
                                                                                                                          • Post-installation Checks
                                                                                                                            • Running Test Suites
                                                                                                                                • Problem Reports
                                                                                                                                  • Problem Report Guidelines
                                                                                                                                  • Generating Problem Reports
                                                                                                                                  • Automatic Problem Reports
                                                                                                                                  • Stand Alone Problem Reports
                                                                                                                                    • Known Problems
                                                                                                                                      • Licenses
                                                                                                                                        • GNU Affero General Public License
                                                                                                                                          • Preamble
                                                                                                                                          • How to Apply These Terms to Your New Programs
                                                                                                                                            • GNU General Public License
                                                                                                                                              • Preamble
                                                                                                                                              • How to Apply These Terms to Your New Programs
                                                                                                                                                • GNU Lesser General Public License
                                                                                                                                                  • Terms and Conditions
                                                                                                                                                    • GNU Free Documentation License
                                                                                                                                                      • Preamble
                                                                                                                                                      • Terms and Conditions for Copying Distribution and Modification
                                                                                                                                                      • How to use this License for your documents
                                                                                                                                                          • Indices
                                                                                                                                                            • Index of Concepts
                                                                                                                                                            • Index of Data Types
                                                                                                                                                            • Index of Functions and Macros
                                                                                                                                                            • Index of Variables and Constants
                                                                                                                                                            • Index of Files and Programs
                                                                                                                                                            • Index of Configuration Options
                                                                                                                                                            • Index of Makefile Targets
                                                                                                                                                            • Index of Authors
                                                                                                                                                            • Index of Manual Pages Referenced
Page 6: OpenSS7 SS7 Stack Installation and Reference Manual · 2008. 10. 31. · vi OpenSS7 SS7 Stack 6.8.1.5 Release Targets:::::86 6.8.1.6 Logging Targets::::: 87 6.8.1.7 Problem Report

v

6 Installation 4761 Repositories 47

611 Repositories for YUM 47612 Repositories for APT 48

62 Downloading 49621 Downloading with YUM 49622 Downloading with APT 51623 Downloading the Binary RPM 51624 Downloading the Debian DEB 54625 Downloading the Source RPM 57626 Downloading the Debian DSC 57627 Downloading the Tar Ball 58628 Downloading from CVS 59

63 Configuration 61631 Configuring the Binary RPM 62632 Configuring the Debian DEB 63633 Configuring the Source RPM 63634 Configuring the Debian DSC 67635 Configuring the Tar Ball 67

6351 Configure Options 676352 Environment Variables 746353 Build 77

64 Building 77641 Building from the Source RPM 77642 Building from the Debian DSC 78643 Building from the Tar Ball 78

6431 Native Build 796432 Cross-Build 79

65 Installing 79651 Installing the Binary RPM 79652 Installing the Debian DEB 80653 Installing the Tar Ball 80

66 Removing 80661 Removing the Binary RPM 80662 Removing the Debian DEB 80663 Removing the Source RPM 81664 Removing the Debian DSC 81665 Removing the Tar Ball 81

67 Loading 81671 Normal Module Loading 81

6711 Linux Fast-STREAMS Module Loading 826712 Linux STREAMS Module Loading 82

68 Maintenance 82681 Makefile Targets 83

6811 User Targets 836812 Maintainer Targets 856813 Clean Targets 856814 Manual Page Targets 86

vi OpenSS7 SS7 Stack

6815 Release Targets 866816 Logging Targets 876817 Problem Report Targets 896818 Release Archive Targets 896819 RPM Build Targets 9068110 Debian Build Targets 9168111 Documentation Targets 92

7 Troubleshooting 9371 Test Suites 93

711 Pre-installation Checks 937111 Pre-Installation System Checks 937112 Pre-Installation Maintenance Checks 947113 Specific Pre-Installation Checks 94

712 Post-installation Checks 967121 Running Test Suites 97

72 Problem Reports 97721 Problem Report Guidelines 98722 Generating Problem Reports 98723 Automatic Problem Reports 99724 Stand Alone Problem Reports 100

73 Known Problems 101

Licenses 103GNU Affero General Public License 104

Preamble 104How to Apply These Terms to Your New Programs 114

GNU General Public License 115Preamble 115How to Apply These Terms to Your New Programs 126

GNU Lesser General Public License 127Terms and Conditions 127

GNU Free Documentation License 130Preamble 130Terms and Conditions for Copying Distribution and Modification

130How to use this License for your documents 136

Indices 137Index of Concepts 137Index of Data Types 139Index of Functions and Macros 140Index of Variables and Constants 141Index of Files and Programs 142Index of Configuration Options 143Index of Makefile Targets 144Index of Authors 145Index of Manual Pages Referenced 146

Preface 1

Preface

Notice

This package is released and distributed under the AGPL (see [GNU Affero General PublicLicense] page 104) Please note however that there are different licensing terms for themanual pages and some of the documentation (derived from OpenGroup1 publications andother sources) Consult the permission notices contained in the documentation for moreinformationThis manual is released under the FDL (see [GNU Free Documentation License] page 130)with no sections invariant

Abstract

This manual provides a Installation and Reference Manual for OpenSS7 SS7 Stack

Objective

The objective of this manual is to provide a guide for the STREAMS programmer whendeveloping STREAMS modules drivers and application programs for OpenSS7 SS7 StackThis guide provides information to developers on the use of the STREAMS mechanism atuser and kernel levelsSTREAMS was incorporated in UNIX System V Release 3 to augment the character in-putoutput (IO) mechanism and to support development of communication servicesSTREAMS provides developers with integral functions a set of utility routines and facilitiesthat expedite software design and implementation

Intent

The intent of this manual is to act as an introductory guide to the STREAMS programmerIt is intended to be read alone and is not intended to replace or supplement the OpenSS7 SS7Stack manual pages For a reference for writing code the manual pages (see STREAMS(9))provide a better reference to the programmer Although this describes the features of theOpenSS7 SS7 Stack package OpenSS7 Corporation is under no obligation to provide anysoftware system or feature listed herein

Audience

This manual is intended for a highly technical audience The reader should already befamiliar with Linux kernel programming the Linux file system character devices driverinput and output interrupts software interrupt handling scheduling process contextsmultiprocessor locks etcThe guide is intended for network and systems programmers who use the STREAMSmechanism at user and kernel levels for Linux and UNIX system communication servicesReaders of the guide are expected to possess prior knowledge of the Linux and UNIX systemprogramming networking and data communication

1 Formerly XOpen and UNIX International

2 OpenSS7 SS7 Stack

Revisions

Take care that you are working with a current version of this manual you will not benotified of updates To ensure that you are working with a current version contact theAuthor or check The OpenSS7 Project website for a current versionA current version of this manual is normally distributed with the OpenSS7 SS7 Stackpackage strss7-09a82

Version Controlstrss7texiv

Revision 09227 2008-09-20 110426 brian

- added package patchlevel

Revision 09226 2008-08-03 060328 brian

- protected agains texinfo commands in log entries

Revision 09225 20080727 084858 brian

- no invariant sections more libtool ignores

Revision 09224 2008-04-29 071035 brian

- updating headers for release

Revision 09223 2008-04-25 115046 brian

- updates to AGPLv3

Revision 09222 20070815 051816 brian

- GPLv3 updates

Revision 09221 20070812 064407 brian

- updated licenses in manuals

Revision 09220 20070803 133451 brian

- manual updates put ss7 modules in public release

Revision 09219 20070228 063035 brian

- updates and corrections ifdef instead of if

Revision 09218 20061002 113129 brian

- changes to get master builds working for RPM and DEB

- added outside licenses to package documentation

- added LICENSE automated release file

- copy MANUAL to source directory

- add and remove devices in -dev debian subpackages

- get debian rules working better

- release library version files

- added notes to debian changelog

- corrections for cooked manual pages in spec files

- added release documentation to spec and rules files

- copyright header updates

- moved controlling tty checks in stream head

- missing some defines for LiS build in various source files

- added OSI headers to striso package

- added includes and manual page paths to acincludes for various packages

- added sunrpc uidlpi uinpi and uitpi licenses to documentation and release

files

2 httpwwwopenss7orgtarballsstrss7-09a8tarbz2

Preface 3

- moved pragma weak statements ahead of declarations

- changes for master build of RPMS and DEBS with LiS

Revision 09217 20060828 104655 brian

- correction

Revision 09216 20060828 103246 brian

- updated references

Revision 09215 20060827 122638 brian

- finalizing auto release files

Revision 09214 20060826 091650 brian

- better release file generation

Revision 09213 20060823 110028 brian

- added preface corrections and updates for release

Revision 09212 20060822 124409 brian

- documentation updates

Revision 09211 20060322 100200 brian

- added makefile target index

Revision 09210 20060303 120609 brian

- 3264-bit compatibility

Revision 0929 20050708 131556 brian

- updates to documentation

Revision 0928 20050624 133859 brian

- added troubleshooting section to manuals

Revision 0927 20050514 083346 brian

- copyright header correction

Revision 0926 20050412 092906 brian

- corrections

Revision 0925 20050411 204840 brian

- documentation updates and corrections

Revision 0924 20050315 005650 brian

- Updated version numbering in texinfo files

Revision 0923 20050315 005147 brian

- Updated version numbering in texinfo files

Revision 0922 20050217 200011 brian

- Fixes for texi documentation

Revision 0921 20050126 082418 brian

- Changed name of texinfo file

Revision 09 20050126 082418 brian

file strss7texi was initially added on branch OpenSS7-0_9_2

4 OpenSS7 SS7 Stack

ISO 9000 Compliance

Only the TEX texinfo or roff source for this manual is controlled An opaque (printedpostscript or portable document format) version of this manual is an UNCONTROLLEDVERSION

Disclaimer

OpenSS7 Corporation disclaims all warranties with regard to this documentation includingall implied warranties of merchantability fitness for a particular purpose non-infringementor title that the contents of the manual are suitable for any purpose or that the implemen-tation of such contents will not infringe on any third party patents copyrights trademarksor other rights In no event shall OpenSS7 Corporation be liable for any direct indirectspecial or consequential damages or any damages whatsoever resulting from loss of usedata or profits whether in an action of contract negligence or other tortious action arisingout of or in connection with any use of this manual or the performance or implementationof the contents thereof

OpenSS7 Corporation reserves the right to revise this software and documentation for anyreason including but not limited to conformity with standards promulgated by variousagencies utilization of advances in the state of the technical arts or the reflection of changesin the design of any techniques or procedures embodied described or referred to hereinOpenSS7 Corporation is under no obligation to provide any feature listed herein

US Government Restricted Rights

If you are licensing this Software on behalf of the US Government (Government) thefollowing provisions apply to you If the Software is supplied by the Department of Defense(DoD) it is classified as Commercial Computer Software under paragraph 252227-7014of the DoD Supplement to the Federal Acquisition Regulations (DFARS) (or any successorregulations) and the Government is acquiring only the license rights granted herein (thelicense rights customarily provided to non-Government users) If the Software is suppliedto any unit or agency of the Government other than DoD it is classified as RestrictedComputer Software and the Governmentrsquos rights in the Software are defined in paragraph52227-19 of the Federal Acquisition Regulations (FAR) (or any successor regulations) orin the cases of NASA in paragraph 1852227-86 of the NASA Supplement to the FAR (orany successor regulations)

Acknowledgements

As with most open source projects this project would not have been possible withoutthe valiant efforts and productive software of the Free Software Foundation and the LinuxKernel Community

Sponsors

Funding for completion of the OpenSS7 OpenSS7 SS7 Stack package was provided in partby

bull OpenSS7 Corporation

Additional funding for The OpenSS7 Project was provided by

Preface 5

bull OpenSS7 Corporationbull Lockheed Martin Cobull Motorolabull HOB Internationalbull Comverse Ltdbull Sonus Networks Incbull France Telecombull SS8 Networks Incbull Nortel Networksbull Verisignbull eServGlobal (NZ) Pty Ltdbull NetCentrex S Abull SysMaster Corporationbull GeoLink SAbull AirNet Communicationsbull TECOREbull Tumsan Oybull Vodare Ltdbull Excel Telecommunications

Contributors

The primary contributor to the OpenSS7 OpenSS7 SS7 Stack package is Brian F G Bidu-lock The following is a list of significant contributors to The OpenSS7 Project

minus Per Berquistminus John Boydminus Chuck Wintersminus Peter Courtneyminus Tom Chandlerminus Gurol Ackmanminus Kutluk Testiciogluminus John Wenkerminus Others

Authors

The authors of the OpenSS7 OpenSS7 SS7 Stack package includeminus Brian Bidulock

See [Index of Authors] page 145 for a complete listing and cross-index of authors to sectionsof this manual

Maintainer

The maintainer of the OpenSS7 OpenSS7 SS7 Stack package isminus Brian Bidulock

Please send bug reports to bugsopenss7org using the lsquosend-prrsquo script included in thepackage only after reading the lsquoBUGSrsquo file in the release or See Section 72 [Problem Re-ports] page 97

6 OpenSS7 SS7 Stack

Web Resources

The OpenSS7 Project provides a website dedicated to the software packages released by theOpenSS7 Project

Bug Reports

Please send bug reports to bugsopenss7org using the lsquosend-prrsquo script included inthe OpenSS7 SS7 Stack package only after reading the lsquoBUGSrsquo file in the release or SeeSection 72 [Problem Reports] page 97 You can access the OpenSS7 GNATS databasedirectly via the web however the preferred method for sending new bug reports is viamail with the lsquosend-prrsquo script

Mailing Lists

The OpenSS7 Project provides a number of general discussion Mailing Lists for discussionconcerning the OpenSS7 OpenSS7 SS7 Stack package as well as other packages released byThe OpenSS7 ProjectThese are mailman mailing lists and so have convenient web interfaces for subscribers tocontrol their settings See httpwwwopenss7orgmailinglisthtmlThe mailing lists are as follows

lsquoopenss7rsquo The lsquoopenss7rsquo mailing list is for general enquiries information exchange andannouncements regarding the OpenSS7 Project This is our original mailinglist and takes the highest amount of traffic

lsquoopenss7-announcersquoThe lsquoopenss7-announcersquo mailing list is for announcements related to theOpenSS7 Project This list will accept announcements posted by subscribersSubscribe to this list if you are interested in announcements from theOpenSS7 Project subscribers and sponsors related to the OpenSS7 Projector STREAMS SS7 SIGTRAN or SCTP in general

lsquoopenss7-cvsrsquoThe lsquoopenss7-cvsrsquo mailing list is for automatic CVS log reporting You mustget permission of the owner to subscribe to this list Subscribers are not allowedto post to this list this is merely for distributing notification of changes to theCVS repositoryh

lsquoopenss7-developrsquoThe lsquoopenss7-developrsquo mailing list is for email exchange related to the de-velopment projects under the OpenSS7 Project This includes developmentrequests proposals requests for comment or proposal Subscribe to this listif you are interested in ongoing development details regarding the OpenSS7Project

lsquoopenss7-testrsquoThe lsquoopenss7-testrsquo mailing list is for email exchange related to the testingof code under the OpenSS7 Project This specifically relates to conformancetesting verification testing interoperability testing and beta testing Subscribeto this list if you are interested in participating in and receiving ongoing detailsof test activities under the OpenSS7 Project

Preface 7

lsquoopenss7-bugsrsquoThe lsquoopenss7-bugsrsquo mailing list is specifically tailored to bug tracking Themailing list takes a feed from the OpenSS7 GNATS bug tracking system andaccepts posting of responses to bug reports tracking and resolution Subscribeto this list if you are interested in receiving detailed OpenSS7 release code bugtracking information This list is not archived for historical information onproblem reports see our GNATS databases

lsquoopenss7-updatesrsquoThe lsquoopenss7-updatesrsquo mailing list provides updates on OpenSS7 Project codereleases and ongoing activities Subscribers are not allowed to post to this listthis list is for official OpenSS7 Project announcements only Subscribe to thislist if you are interested in receiving updates concerning official releases andactivities of the OpenSS7 Project

lsquoopenss7-streamsrsquoThe lsquoopenss7-streamsrsquo mailing list is for email exchange related to theSTREAMS development projects under the OpenSS7 Project This includesdevelopment requests proposals requests for comment or proposal Subscribeto this list if you are interested in ongoing development details regarding theOpenSS7 Project STREAMS components

lsquolinux-streamsrsquoThe lsquolinux-streamsrsquo mailing list is for mail exchange related to LinuxFast-STREAMS or Linux STREAMS This includes patches developmentrequests proposals requests for comment or proposal Subscribe to this list ifyou are interested in ongoing development details regarding the STREAMSfor Linux components This is the the new (September 2006) home of thelsquolinux-streamsrsquo list formerly of gsycesceturjces

Spam

To avoid spam being sent to the members of the OpenSS7 mailing list(s) we have blockedmail from non-subscribers Please subscribe to the mailing list before attempting to postto them (Attempts to post when not subscribed get bounced)As an additional measure against spam subscriber lists for all OpenSS7 mailing lists arenot accessible to non-subscribers for most lists subscriber lists are only accessible to thelist administrator This keeps your mailing address from being picked off our website bybulk mailers

Acceptable Use Policy

It is acceptable to post professional and courteous messages regarding the OpenSS7 packageor any general information or questions concerning STREAMS SS7 SIGTRAN SCTP ortelecommunications applications in general

Large Attachments

The mailing list is blocked from messages of greater than 40k If you have attachments(patches test programs etc) and you mail them to the list it will bounce to the listadministrator If you are interested in making your patches test programs test results or

8 OpenSS7 SS7 Stack

other large attachments available to the members of the mailing list state in the messagethat you would like them posted and the list administrator will place them in the mailarchives

Quick Start Guide 9

Quick Start Guide

OpenSS7 SS7 Stack

Package strss7-09a8 was released under AGPLv3 2008-10-31

The OpenSS7 SS7 Stack package includes a wide array of kernel modules SVR 42STREAMS drivers modules libraries utilities test programs daemons and developmentenvironment for the development and execution of Signalling System Number 7 (SS7)Signalling Transport (SIGTRAN) Integrated Services Digital Network (ISDN) and Voiceover IP (VoIP) protocol stack components and applications for the Linux Fast-STREAMSenvironment

However the current package has had ISDN components moved to the lsquostrisdnrsquo packageSIGTRAN components moved to the lsquosigtranrsquo package and VoIP components moved tothe lsquostrvoiprsquo package Only SS7 components remain in the lsquostrss7rsquo package

This distribution is only currently applicable to Linux 24 and 26 kernels and was tar-geted at ix86 x86_64 ppc and ppc64 architectures but should build and install for otherarchitectures as well

Release

This is the strss7-09a8 package released 2008-10-31 This lsquo09a8rsquo release and thelatest version can be obtained from the download area of The OpenSS7 Project websiteusing a command such as

$gt wget httpwwwopenss7orgtarballsstrss7-09a8tarbz2

The release is available as an autoconf(1) tarball lsquosrcrpmrsquo or lsquodscrsquo as a set of binarylsquorpmrsquos or lsquodebrsquos or as a yum(8) or apt(8) repository See the download page for theautoconf(1) tarballs lsquosrcrpmrsquos lsquodscrsquos or repository access instructions See the strss7package page for tarballs source and binary packages

Please see the lsquoNEWSrsquo file for release notes and history of user visible changes for the currentversion and the lsquoChangeLogrsquo file for a more detailed history of implementation changesThe lsquoTODOrsquo file lists features not yet implemented and other outstanding items

Please see the lsquoINSTALLrsquo lsquoINSTALL-strss7rsquo and lsquoREADME-makersquo files (or see Chapter 6[Installation] page 47) for installation instructions

When working from cvs(1) or git(1) please see the lsquoREADME-cvsrsquo file (or see Section 628[Downloading from CVS] page 59) An abbreviated installation procedure that works formost applications appears below

This release of the package is published strictly under Version 3 of the GNU Affero PublicLicense which can be found in the file lsquoCOPYINGrsquo Package specific licensing terms (if any)can be found in the file lsquoLICENSESrsquo Please respect these licensing arrangements If youare interested in different licensing terms please contact the copyright holder or OpenSS7Corporation ltsalesopenss7comgt

See lsquoREADME-alpharsquo (if it exists) for alpha release information

10 OpenSS7 SS7 Stack

Prerequisites

The quickest and easiest way to ensure that all prerequisites are met is to download andinstall this package from within the OpenSS7 Master Package openss7-092G insteadof separatelyPrerequisites for the OpenSS7 SS7 Stack package are as follows1 Linux distribution somewhat Linux Standards Base compliant with a 24 or 26 kernel

and the appropriate tool chain for compiling out-of-tree kernel modules Most recentLinux distributions are usable out of the box but some development packages must beinstalled For more information see Section 52 [Compatibility] page 34

minus A fairly LSB compliant GNULinux distribution1

minus Linux 24 kernel (2410 - 2427) orminus Linux 26 kernel (263 - 2626)minus glibc2 or betterminus GNU groff (for man pages)2

minus GNU texinfo (for info files)minus GNU bison and flex (for config programs)minus net-snmp (for SNMP agents)3

(Note If you acquired strss7 a part of the OpenSS7 Master Package then the dependencieslisted below will already have been met by unpacking the master package)2 OpenSS7 Linux Fast-STREAMS streams-09244

3 OpenSS7 STREAMS Compatibility Modules strcompat-09274 OpenSS7 STREAMS XNS strxns-09275 OpenSS7 STREAMS XTITLI strxnet-092126 OpenSS7 STREAM Network Services Library strnsl-0924 (Optional)7 OpenSS7 STREAMS Sockets strsock-0924 (Optional)8 OpenSS7 STREAMS INET strinet-09279 OpenSS7 STREAMS SCTP strsctp-0929

10 OpenSS7 STREAMS Channels strchan-092411 OpenSS7 STREAMS X25 strx25-092112 OpenSS7 STREAMS ISO striso-092413 OpenSS7 STREAMS ISDN strisdn-0924

When configuring and building multiple OpenSS7 Project release packages place all of thesource packages (unpacked tarballs) at the same directory level and all build directories atthe same directory level (eg all source packages under lsquousrsrcrsquo)When installing packages that install as kernel modules it is necessary to have the correctkernel development package installed For the following distributions use the followingcommands

1 See Section 521 [GNULinux Distributions] page 34 for more information2 If you are using a Debian release please make sure to install the groff extension package (lsquogroff_extrsquo) as

it contains the refer or grefer commands necessary for including references in the manual pages3 A wide range of net-snmp releases are supported from UCD-SNMP 425 through net-snmp 544 Although at one time this package supported LiS LiS is now deprecated and unsupported

Quick Start Guide 11

Ubuntu $gt apt-get install linux-headersDebian $gt apt-get install kernel-headersFedora $gt yum install kernel-devel

You also need the same version of gcc(1) compiler with which the kernel was built If it isnot the default add lsquoCC=kgccrsquo on the line after lsquoconfigurersquo for example

$gt strss7-09a8configure CC=rsquogcc-34rsquo

Installation

The following commands will download configure build check install validate uninstalland remove the package

$gt wget httpwwwopenss7orgtarballsstrss7-09a8tarbz2$gt tar -xjvf strss7-09a8tarbz2$gt mkdir build$gt pushd build$gt strss7-09a8configure --enable-autotest$gt make$gt make check$gt sudo make install$gt sudo make installcheck$gt sudo make uninstall$gt popd$gt sudo rm -rf build$gt rm -rf strss7-09a8$gt rm -f strss7-09a8tarbz2

If you have problems try building with the logging targets instead If the make of a loggingtarget fails an automatic problem report will be generated that can be mailed to TheOpenSS7 Project5 Installation steps using the logging targets proceed as follows

$gt wget httpwwwopenss7orgtarballsstrss7-09a8tarbz2$gt tar -xjvf strss7-09a8tarbz2$gt mkdir build$gt pushd build$gt strss7-09a8configure --enable-autotest$gt make compilelog$gt make checklog$gt sudo make installlog$gt sudo make installchecklog$gt sudo make uninstalllog$gt popd$gt sudo rm -rf build$gt rm -rf strss7-09a8$gt rm -f strss7-09a8tarbz2

See lsquoREADME-makersquo for additional specialized make targets

5 Please see Section 72 [Problem Reports] page 97 or the file lsquoPROBLEMSrsquo in the release directory for moreinformation on filing a proper Problem Report

12 OpenSS7 SS7 Stack

For custom applications see the lsquoINSTALLrsquo and lsquoINSTALL-strss7rsquo files or the see Chapter 6[Installation] page 47 as listed below If you encounter troubles see Chapter 7 [Trou-bleshooting] page 93 before issuing a bug report

Brief Installation Instructions

The OpenSS7 SS7 Stack package is available from the downloads area of The OpenSS7Project website using a command such as

$gt wget httpwwwopenss7orgtarballsstrss7-09a8tarbz2

Unpack the tarball using a command such as$gt tar -xjvf strss7-09a8tarbz2

The tarball will unpack into the relative subdirectory named after the package name strss7-09a8The package builds using the GNU autoconf utilities and the lsquoconfigurersquo script To buildthe package we recommend using a separate lsquobuildrsquo directory as follows

$gt mkdir build$gt cd build$gt strss7-09a8configure

In general the package configures and builds without adding any special options to thelsquoconfigurersquo script For general options to the lsquoconfigurersquo script see the GNU lsquoINSTALLrsquofile in the distribution

$gt less strss7-09a8INSTALL

For specific options to the lsquoconfigurersquo script see the lsquoINSTALL-strss7rsquo file in the distri-bution or simply execute the configure script with the lsquo--helprsquo option like so

$gt strss7-09a8configure --help

After configuring the package the package can be compiled simply by issuing the lsquomakersquocommand

$gt make

Some specialized makefile targets exists see the lsquoREADME-makersquo file in the distribution orsimply invoke the lsquohelprsquo target like so

$gt make help | less

After successfully building the package the package can be checked by invoking the lsquocheckrsquomake target like so

$gt make check

After successfully checking the package the package can be installed by invoking thelsquoinstallrsquo make target (as root) like so

$gt sudo make install

The test suites that ship with the package can be invoked after the package has been installedby invoking the lsquoinstallcheckrsquo target This target can either be invoked as root or as anormal user like so

$gt make installcheck

(Note you must add the lsquo--enable-autotestrsquo flag to lsquoconfigurersquo above for the test suitesto be invoked with lsquomake installcheckrsquo)The package can be cleanly removed by invoking the lsquouninstallrsquo target (as root)

Quick Start Guide 13

$gt sudo make uninstall

Then the build directory and tarball can be simply removed$gt cd $gt rm -rf build$gt rm -rf strss7-09a8$gt rm -f strss7-09a8tarbz2

Detailed Installation Instructions

More detailed installation instructions can be found in the Chapter 6 [Installation] page 47contained in the distribution in lsquotextrsquo lsquoinforsquo lsquohtmlrsquo and lsquopdfrsquo formats

$gt cd strss7-09a8$gt less docmanualstrss7txt$gt lynx docmanualstrss7html$gt info docmanualstrss7info$gt xpdf docmanualstrss7pdf

The lsquotextrsquo version of the manual is always available in the lsquoMANUALrsquo file in the releaseThe current manual is also always available online from The OpenSS7 Project website at

$gt lynx httpwwwopenss7orgstrss7_manualhtml

Chapter 1 Introduction 15

1 Introduction

This manual documents the design implementation installation operation and future de-velopment schedule of the OpenSS7 SS7 Stack package

11 Overview

This manual documents the design implementation installation operation and future de-velopment of the OpenSS7 SS7 Stack packageThe OpenSS7 SS7 Stack package is an SS7 SIGTRAN ISDN VoIP package for Linux thatcan be used with Linux Fast-STREAMS1 or Linux STREAMS2 It includes developmenttools header files and manual pages forbull Communications Device Interface (CDI)bull Data Link Provider Interface (DLPI)bull Network Provider Interface (NPI)bull Transport Provider Interface (TPI)bull Signalling Data Link Interface (SDLI)bull Signalling Data Terminal Interface (SDTI)bull Message Transfer Part Interface (MTPI)bull Call Control Interface (CCI)bull Transaction Interface (TRI)bull Transaction Component Interface (TCI) andbull Mobile Application Part Interface (MAPI)

Also it provides STREAMS drivers and modules for SS7 SIGTRAN ISDN and VoIPincludingbull

The OpenSS7 SS7 Stack package is essential to the development and support of SS7 andISDN networking and call control modules and drivers and provides a fundamental set ofSS7 header files and manual pages for such developmentThe OpenSS7 SS7 Stack does not provide the STREAMS components See the manualsreferenced above

12 Organization of this Manual

This manual is organized (loosely) into several sections as followsChapter 1 [Introduction] page 15 This introductionChapter 2 [Objective] page 17 Objective of the packageChapter 3 [Reference] page 19 Contents of the packageChapter 4 [Conformance] page 31 Conformance of the packageChapter 5 [Releases] page 33 Releases of the packageChapter 6 [Installation] page 47 Installation of the packageChapter 7 [Troubleshooting] page 93 Troubleshooting of the package

1 See Section ldquoAbout This Manualrdquo in Linux Fast-STREAMS (LfS) Reference Manual2 See Section ldquoAbout This Manualrdquo in Linux STREAMS (LiS) Reference Manual

16 OpenSS7 SS7 Stack

13 Conventions and Definitions

This manual uses texinfo typographic conventions

Chapter 2 Objective 17

2 Objective

Chapter 3 Reference 19

3 Reference

31 Applications

20 OpenSS7 SS7 Stack

32 SS7 Protocol Stack

The SS7 Protocol Stack consists of a number of components

Chapter 3 Reference 21

321 Signalling Data Link (SDL)

22 OpenSS7 SS7 Stack

322 Signalling Data Terminal (SDT)

Chapter 3 Reference 23

323 Signalling Link (SL)

24 OpenSS7 SS7 Stack

324 Message Transfer Part (MTP)

Chapter 3 Reference 25

325 Signalling Connection Control Part (SCCP)

26 OpenSS7 SS7 Stack

326 Transaction Capabilities Application Part (TCAP)

Chapter 3 Reference 27

327 Base Station System Application Part (BSSAP)

28 OpenSS7 SS7 Stack

33 Device Drivers

Chapter 3 Reference 29

331 Digium Drivers

30 OpenSS7 SS7 Stack

332 SeaLevel ACB56 Drivers

Chapter 4 Conformance 31

4 Conformance

Chapter 5 Releases 33

5 Releases

This is the OpenSS7 Release of the OpenSS7 SS7 Stack tools drivers and modules usedwith the Linux Fast-STREAMS or Linux STREAMS1 SVR 42 STREAMS releasesThe purpose of providing a separate release of this package was to separate the OpenSS7SS7 Stack tools headers drivers and modules from the Linux STREAMS2 package for usewith both Linux STREAMS3 and Linux Fast-STREAMS in preparation for replacement ofthe former by the laterThe following sections provide information on OpenSS7 SS7 Stack releases as well as com-patibility information of OpenSS7 release to the original GCOM releases of these modulesand drivers as well as Linux kernel compatibility

51 Prerequisites

The quickest and easiest way to ensure that all prerequisites are met is to download andinstall this package from within the OpenSS7 Master Package openss7-092G insteadof separatelyPrerequisites for the OpenSS7 SS7 Stack package are as follows1 Linux distribution somewhat Linux Standards Base compliant with a 24 or 26 kernel

and the appropriate tool chain for compiling out-of-tree kernel modules Most recentLinux distributions are usable out of the box but some development packages must beinstalled For more information see Section 52 [Compatibility] page 34

minus A fairly LSB compliant GNULinux distribution4

minus Linux 24 kernel (2410 - 2427) orminus Linux 26 kernel (263 - 2626)minus glibc2 or betterminus GNU groff (for man pages)5

minus GNU texinfo (for info files)minus GNU bison and flex (for config programs)minus net-snmp (for SNMP agents)6

(Note If you acquired strss7 a part of the OpenSS7 Master Package then the dependencieslisted below will already have been met by unpacking the master package)2 OpenSS7 Linux Fast-STREAMS streams-09247

3 OpenSS7 STREAMS Compatibility Modules strcompat-09274 OpenSS7 STREAMS XNS strxns-09275 OpenSS7 STREAMS XTITLI strxnet-09212

1 Linux STREAMS is buggy unsupported and deprecated Do not use it2 Linux STREAMS is buggy unsupported and deprecated Do not use it3 Linux STREAMS is buggy unsupported and deprecated Do not use it4 See Section 521 [GNULinux Distributions] page 34 for more information5 If you are using a Debian release please make sure to install the groff extension package (lsquogroff_extrsquo) as

it contains the refer or grefer commands necessary for including references in the manual pages6 A wide range of net-snmp releases are supported from UCD-SNMP 425 through net-snmp 547 Although at one time this package supported LiS LiS is now deprecated and unsupported

34 OpenSS7 SS7 Stack

6 OpenSS7 STREAM Network Services Library strnsl-0924 (Optional)7 OpenSS7 STREAMS Sockets strsock-0924 (Optional)8 OpenSS7 STREAMS INET strinet-09279 OpenSS7 STREAMS SCTP strsctp-0929

10 OpenSS7 STREAMS Channels strchan-092411 OpenSS7 STREAMS X25 strx25-092112 OpenSS7 STREAMS ISO striso-092413 OpenSS7 STREAMS ISDN strisdn-0924

If you need to rebuild the package from sources with modifications you will need a largerGNU tool chain as described in See Section 628 [Downloading from CVS] page 59

52 Compatibility

This section discusses compatibility with major prerequisites

521 GNULinux Distributions

OpenSS7 SS7 Stack is compatible with the following Linux distributions8

bull CentOS Enterprise Linux 34 (centos34) TBDbull CentOS Enterprise Linux 40 (centos4) TBDbull CentOS Enterprise Linux 492 (centos49) TBDbull CentOS Enterprise Linux 50 (centos5)bull CentOS Enterprise Linux 51 (centos51)bull CentOS Enterprise Linux 52 (centos52)bull Debian 30r2 Woody (deb30) TBDbull Debian 31r0a Sarge (deb31) TBDbull Debian 40r1 Etch (deb40)bull Debian 40r2 Etch (deb40)bull Debian 40r3 Etch (deb40)bull Fedora Core 1 (FC1) TBDbull Fedora Core 2 (FC2) TBDbull Fedora Core 3 (FC3) TBDbull Fedora Core 4 (FC4) TBDbull Fedora Core 5 (FC5) TBDbull Fedora Core 6 (FC6) TBDbull Fedora 7 (FC7)bull Fedora 8 (FC8)bull Fedora 9 (FC9)bull Gentoo 20061 (untested) TBD

8 Items marked as lsquoTBDrsquo are scheduled to have support deprecated That is in a future release the distributionsmarked lsquoTBDrsquo will not longer be validated before release

Chapter 5 Releases 35

bull Gentoo 20071 (untested) TBDbull Lineox 4026 (LEL4) TBDbull Lineox 4053 (LEL4) TBDbull Mandrakelinux 92 (MDK92) TBDbull Mandrakelinux 100 (MDK100) TBDbull Mandrakelinux 101 (MDK101) TBDbull Mandriva Linux LE2005 (MDK102) TBDbull Mandriva Linux LE2006 (MDK103) TBDbull Mandriva One (untested)bull RedHat Linux 72 (RH7)bull RedHat Linux 73 (RH7)bull RedHat Linux 80 (RH8) TBDbull RedHat Linux 9 (RH9) TBDbull RedHat Enterprise Linux 30 (EL3) TBDbull RedHat Enterprise Linux 4 (EL4)bull RedHat Enterprise Linux 5 (EL5)bull SuSE 80 Professional (SuSE80) TBDbull SuSE 91 Personal (SuSE91) TBDbull SuSE 92 Professional (SuSE92) TBDbull SuSE OpenSuSE (SuSEOSS) TBDbull SuSE 100 (SuSE100) TBDbull SuSE 101 (SuSE101) TBDbull SuSE 102 (SuSE102) TBDbull SuSE 103 (SuSE103) TBDbull SuSE 110 (SuSE110)bull SLES 9 (SLES9) TBDbull SLES 9 SP2 (SLES9) TBDbull SLES 9 SP3 (SLES9) TBDbull SLES 10 (SLES10)bull Ubuntu 510 (ubu510) TBDbull Ubuntu 603 LTS (ubu603) TBDbull Ubuntu 610 (ubu610) TBDbull Ubuntu 704 (ubu704) TBDbull Ubuntu 710 (ubu710)bull Ubuntu 804 (ubu804)bull WhiteBox Enterprise Linux 30 (WBEL3) TBDbull WhiteBox Enterprise Linux 4 (WBEL4) TBD

When installing from the tarball (see Section 653 [Installing the Tar Ball] page 80) thisdistribution is probably compatible with a much broader array of distributions than thoselisted above These are the distributions against which the current maintainer creates andtests builds

36 OpenSS7 SS7 Stack

522 Kernel

The OpenSS7 SS7 Stack package compiles as a Linux kernel module It is not necessaryto patch the Linux kernel to build or use the package9 Nor do you have to recompile yourkernel to build or use the package OpenSS7 packages use autoconf scripts to adapt thepackage source to your existing kernel The package builds and runs nicely against produc-tion kernels from the distributions listed above Rather than relying on kernel versions theautoconf scripts interrogate the kernel for specific features and variants to better adaptto distribution production kernels that have had patches applied over the official kernelorgsources

The OpenSS7 SS7 Stack package is compatible with 24 kernel series after 2410 and hasbeen tested up to and including 2427 It has been tested from 263 up to and including2626 (with Fedora 9 openSUSE 110 and Ubuntu 804 patchsets) Please note that yourmileage may vary if you use a kernel more recent than 26264 it is difficult to anticipatechanges that kernel developers will make in the future Many kernels in the 26 seriesnow vary widely by release version and if you encounter problems try a kernel within thesupported series

UP validation testing for kernels is performed on all supported architectures SMP valida-tion testing was initially performed on UP machines as well as on an Intel 30GHz PentiumIV 630 with HyperThreading enabled (2x) Because HyperThreading is not as independentas multiple CPUs SMP validation testing was limited Current releases have been testedon dual 18GHz Xeon HP servers (2x) as well as dual quad-core SunFire (8x) servers

It should be noted that while the packages will configure build and install against XENkernels that problems running validation test suites against XEN kernels has been reportedXEN kernels are explicitly not supported This may change at some point in the future ifsomeone really requires running OpenSS7 under a XEN kernel

523 Architectures

The OpenSS7 SS7 Stack package compiles and installs on a wide range of architecturesAlthough it is believed that the package will work on all architectures supported by theLinux kernel being used validation testing has only been performed with the followingarchitectures

bull ix86

bull x86 64

bull ppc (MPC 860)

bull ppc64

32-bit compatibility validation testing is performed on all 64-bit architectures supporting32-bit compatibility If you would like to validate an OpenSS7 package on a specific machinearchitecture you are welcome to sponsor the project with a test machine

9 At a later date it is possible to move this package into the kernel however with continued resistance toSTREAMS from within the Linux developer community this is currently unlikely

Chapter 5 Releases 37

524 Linux STREAMS

The OpenSS7 SS7 Stack package is currently compatible with Linux STREAMS10 howeverto use the OpenSS7 SS7 Stack package with LiS requires use of the OpenSS7 release packagesof LiS The OpenSS7 SS7 Stack package is compatible with the OpenSS7 LiS-2187 releasethat is available from the The OpenSS7 Project Downloads Page But do not use LiS itis buggy unsupported and deprecated Use Linux Fast-STREAMS instead

525 Linux Fast-STREAMS

The OpenSS7 SS7 Stack package is currently compatible with Linux Fast-STREAMS (LfS)The OpenSS7 SS7 Stack package is compatible with the OpenSS7 streams-0924 releasethat is available from the The OpenSS7 Project Downloads Page

53 Release Notes

The sections that follow provide information on OpenSS7 releases of the OpenSS7 SS7 Stackpackage

Major changes for release strss7-09a8

The OpenSS7 SS7 Stack package contains a wide array of SS7 drivers and components forLinux Fast-STREAMS This is the public release package which has most of the componentsremoved Subscribers and sponsors of the OpenSS7 Project have access to the full array ofcomponents

This is the eighth release of the OpenSS7 SS7 Stack strss7 package that contains SS7(Signalling System No 7) signalling stack components for Linux Fast-STREAMS Thepackage contains the necessary header files manual pages and other documentation for SS7components in a separate autoconf tarball

The release includes maintenance support for recent distributions and tool chain but alsoincludes some performance and feature upgrades and inspection bug fixes It deprecatesprevious releases Please upgrade before reporting bugs on previous releases

This release is primarily a maintenance release

Major features since the last public release are as follows

- Minor documentation corrections- Kernel module license made explicit GPL v2 And then changed back to GPL- License upgrade to AGPL Version 3- Modifications to build under Fedora lsquo26225-49rsquo kernel These changes also sup-

port lsquo26229-91fc7rsquo kernel Use IRQF_DISABLED and IRQF_SHARED instead ofdeprecated SA_INTERRUPT and SA_SHIRQ Use pci_register_driver instead of pci_module_init

- Ability to strap out major documentation build and installation primarily for embeddedtargets

- Improvements to common build process for embedded and cross-compile targets- Modifications to build under Fedora lsquo2625-45fc9rsquo and lsquo26265-45fc9rsquo kernels

10 Linux STREAMS is buggy unsupported and deprecated Do not use it

38 OpenSS7 SS7 Stack

- Updated tool chain to lsquom4-1412rsquo lsquoautoconf-263rsquo and lsquotexinfo-413rsquo- Conversion of RPM spec files to common approach for major subpackages- Updated references database for manual pages and roff documents- Build system now builds yum(8) repositories for RPMs and apt-get(8) repositories

for DEBs Installation documentation has been updated to include details of repositoryinstall sourcesref

- Added MODULE_VERSION to all modules and drivers- Corrections for recent RHAS4 kernels defining irq handler t with 3 argument function

template- Added sdl-pmod and sdt-pmod STREAMS modules and manual pages These

two STREAMS modules simluate an SDT and SDL interface connection using aSTREAMS-based pipe for testing purposes

- Added MTPI specification texinfo (info html pdf) document- Added CNAM project document The CNAM projects provides a locally attached

TCAP CNAM database front-end that performs SS7 stack functions local to the switch-ing office and queries a back-end CNAM database using IP over the Internet

- Added SDLI SDTI and SLI specifications texinfo (info html pdf) document- Added manual pages for LMI and all LMI primitives- Added manual pages for SDLI and all SDLI primitives- Added manual pages for SDTI and all SDTI primitives- Added manual pages for SLI and all SLI primitives

This is a public beta release of the package it deprecates previous releases Please upgradeto the current release before reporting bugs Please see lsquoREADME-alpharsquo in the release orSection 54 [Maturity] page 42

As with other OpenSS7 releases this release configures compiles installs and builds RPMsand DEBs for a wide range of Linux 24 and 26 RPM- and DPKG-based distributions andcan be used on production kernels without patching or recompiling the kernel

This package is publicly released under the GNU Affero General Public License Version 3The release is available as an autoconf tarball SRPM DSC and set of binary RPMs andDEBs See the downloads page for the autoconf tarballs SRPMs and DSCs For tarballsSRPMs DSCs and binary RPMs and DEBs see the strss7 package page

See httpwwwopenss7orgcodefilesstrss7-09a8ChangeLog andhttpwwwopenss7orgcodefilesstrss7-09a8NEWS in the release formore information Also see the lsquostrss7pdfrsquo manual in the release (also in htmlhttpwwwopenss7orgstrss7_manualhtml)

For the news release see httpwwwopenss7orgrel20081029_5html

Major changes for release strss7-09a7

The OpenSS7 SS7 Stack package contains a wide array of SS7 drivers and components forLinux Fast-STREAMS This is the public release package which has most of the componentsremoved Subscribers and sponsors of the OpenSS7 Project have access to the full array ofcomponents

Chapter 5 Releases 39

This is the seventh release of the OpenSS7 SS7 Stack strss7 package that contains SS7(Signalling System No 7) signalling stack components for Linux Fast-STREAMS Thepackage contains the necessary header files manual pages and other documentation for SS7components in a separate autoconf tarball

This release is primarily to support recent compilers kernels and distributions

Major features since the last public release are as follows

- Support build on openSUSE 102

- Support build on Fedora 7 with 2621 kernel

- Support build on CentOS 50 (RHEL5)

- Support build on Ubuntu 704

- Updated to gettext 0161

- Changes to support build on 2620-12307fc5 and 2620-12933fc6 kernel

- Supports build on Fedora Core 6

- Support for recent distributions and tool chains

Major changes for release strss7-09a6

The OpenSS7 SS7 Stack package contains a wide array of SS7 drivers and components forLinux Fast-STREAMS This is the public release package which has most of the componentsremoved Subscribers and sponsors of the OpenSS7 Project have access to the full array ofcomponents

This is the sixth release of the OpenSS7 SS7 Stack strss7 package that contains SS7 (Sig-nalling System No 7) signalling stack components for Linux Fast-STREAMS The packagecontains the necessary header files manual pages and other documentation for SS7 compo-nents in a separate autoconf tarball

This release is primarily to support recent compilers kernels and distributions

Major features since the last public release are as follows

- Corrected support for the DS2152213522155221542135221555 chips present inolder V400P cards (See httpwwwopenss7orgcodefilesstrss7-09a8BUGSin the release for more information)

- Support for the DS2156 chip present in recent V401PE cards (Seehttpwwwopenss7orgcodefilesstrss7-09a8BUGS in the releasefor more information)

- Corrections for timer bugs in the X400P-SS7 driver (See httpwwwopenss7orgcodefilesstrss7-09a8BUGSin the release for more information)

- Improvements to the common build environment with better support for standalonepackage builds on 24 kernels

- Support for autoconf 261 automake 110 and gettext 016

- Support for Ubuntu 610 distribution and bug fixes for i386 kernels

- The package now looks for other subpackages with a version number as unpacked byseparate tarball

40 OpenSS7 SS7 Stack

Major changes for release strss7-09a5

The OpenSS7 SS7 Stack package contains a wide array of SS7 SIGTRAN ISDN and VoIPdrivers and components for Linux Fast-STREAMS This is the public release package whichhas most of the components removed Subscribers and sponsors of the OpenSS7 Projecthave access to the full array of components

This is the fifth release of the OpenSS7 SS7 Stack strss7 package that contains SS7 (Sig-nalling System No 7) SIGTRAN (SIGnalling TRANsport) ISDN (Integrated ServicesDigital Network) and VoIP (Void over Internet Protocol) signalling stack components forLinux Fast-STREAMS The package contains the necessary header files manual pages andother documentation for SS7SIGTRANISDNVoIP components in a separate autoconftarball

This release is primarily to support recent compilers kernels and distributions and toupgrade the X400P-SS7 driver with support for the Varion V401P (Tormenta III) cardsAlso this is the first release that has ISDN SIGTRAN and VoIP components moved toseparate packages (but will still build all components)

- The X400P-SS7 driver has been upgraded to support the Varion V401P (Tormenta III)card This driver passes all validation test suites and is production grade The driverstill supports the older cards Also an autoconf style validation test suite was addedand the lsquotest-x400prsquo test case executable upgraded

- Support for most recent 2618 kernels (including Fedora Core 5 with inode diet patch-set)

- The package will now build doxygen(1) html documentation with the rsquodoxyrsquo maketarget See rsquomake helprsquo or README-make in the distribution for more information

- Now builds 32-bit compatibility libraries and tests them against 64-bit kernel modulesand drivers The lsquomake installcheckrsquo target will now automatically test both 64-bitnative and 32-bit compatibility versions one after the other on 64-bit platforms

- Added versions to all library symbols

- Many documentation updates for all OpenSS7 packages Automated release file gener-ation making for vastly improved and timely text documentation present in the releasedirectory

- Dropped support for LiS

- Package will now support extended ranges of minor devices on 26 kernels under LinuxFast-STREAMS only

- Better detection of SUSE distributions release numbers and SLES distributions sup-port for additional SuSE distributions on ix86 as well as x86_64 Added distributionsupport includes SLES 9 SLES 9 SP2 SLES 9 SP3 SLES 10 SuSE 101

- Improved compiler flag generation and optimizations for recent gcc compilers and someidiosyncratic behaviour for some distributions (primarily SUSE)

- Optimized compilation is now available also for user level programs in addition to kernelprograms Added new lsquo--with-optimizersquo option to configure to accomplish this

- Automated release file generation making for vastly improved and timely text docu-mentation present in the release directory

Chapter 5 Releases 41

- Added --disable-devel configure option to suppress building and installing devel-opment environment This feature is for embedded or pure runtime targets that do notneed the development environment (static libraries manual pages documentation)

- Added send-pr script for automatic problem report generation

Major changes for release strss7-09a-4

This release is primarily to support additional compilers (gcc 402) architectures (x86 64SMP 32-bit compatibility) recent Linux distributions (EL4 SuSE 10 LE2006 OpenSuSE)and kernels (2615)

- Changes necessary for LP64 compatible builds Changes to support 32-bit ioctlcompatibility for LP64 architectures Binary compatibility should not have beendisrupted At the same time as the ioctl32 changes TRANSPARENT ioctl supportfor most of the IO controls for the ldl(4) driver has been added

- Changes to satisfy gcc 402 compiler

- Corrections for and testing of 64-bit clean compile and test runs on x86 64 architectureSome bug corrections resulting from gcc 402 compiler warnings

- Corrected build flags for Gentoo and 2615 kernels as reported on mailing list

- Initial corrections for and testing of SMP operation on Intel 630 Hyper-Threaded SMPon x86 64 This package should now run well on N-way Xeons even with Hyper-Threading enabled

- Corrections and validation of 32-bit compatibility over 64-bit on x86 64 Should applywell to other 64-bit architectures as well

This is a public alpha release of the package

Major changes for release strss7-09a-3

This is primarily a bug fixes release and corrections resulting from testing This isa major bug fix release The previous release was largely untested This release hasbeen verified (conformance test suite passes) for operation with Linux Fast-STREAMS(lsquostreams-07a4rsquo)

With this release version numbers were changed to reflect an upstream version only tobe consistent with other OpenSS7 package releases All RPM release numbers will belsquo-1$(PACKAGE_RPMEXTRA)rsquo and all Debian release numbers will be lsquo_0rsquo If you wish toapply patches and release the package please bump up the release number and apply asuitable release suffix for your organization We leave Debian release number lsquo_1rsquo reservedfor your use so you can still bundle the source in the lsquodscrsquo file

Major changes for this release include build against Linux 26 kernels and popular distri-butions based on the 26 kernel as well as wider distribution support The package alsosupports both lsquoLiS-2181rsquo as well as lsquostreams-07arsquo on both kernels

Not publicly released

Major changes for release strss7-09a-2

Not publicly released

42 OpenSS7 SS7 Stack

Initial release strss7-09a-1

Initial autoconfRPM packaging of the strss7 releaseNot publicly released

54 Maturity

The OpenSS7 Project adheres to the following release philosophybull pre-alpha releasebull alpha releasebull beta releasebull gamma releasebull production releasebull unstable release

541 Pre-Alpha Releases

Pre-alpha releases are releases that have received no testing whatsoever Code in the releaseis not even known to configure or compile The purpose of a pre-alpha release is to makecode and documentation available for inspection only and to solicit comments on the designapproach or other characteristics of the software packagePre-alpha release packages ship containing warnings recommending that the user not evenexecute the contained code

542 Alpha Releases

Alpha releases are releases that have received little to no testing or that have been testedand contains known bugs or defects that make the package unsuitable even for testing Thepurpose for an alpha release are the same as for the pre-alpha release with the additionalpurpose that it is an early release of partially functional code that has problems that anexternal developer might be willing to fix themselves and contribute back to the projectAlpha release packages ship containing warnings that executing the code can crash machinesand might possibly do damage to systems upon which it is executed

543 Beta Releases

Beta releases are releases that have received some testing but the testing to date is notexhaustive Beta release packages do not ship with known defects All known defectsare resolved before distribution however as exhaustive testing has not been performedunknown defects may exist The purpose for a beta release is to provide a baseline for otherorganizations to participate in the rigorous testing of the packageBeta release packages ship containing warnings that the package has not been exhaustivelytested and that the package may cause systems to crash Suitability of software in thiscategory for production use is not advised by the project however as always is at thediscretion of the user of the software

544 Gamma Releases

Gamma releases are releases that have received exhaustive testing within the project butexternal testing has been minimal Gamma release packages do not ship with known defects

Chapter 5 Releases 43

As exhaustive internal testing has been performed unknown defects should be few Pleaseremember that there is NO WARRANTY on public release packagesGamma release packages typically resolve problems in previous beta releases and mightnot have had full regression testing performed Suitability of software in this categoryfor production use is at the discretion of the user of the software The OpenSS7 Projectrecommends that the complete validation test suites provided with the package be performedand pass on target systems before considering production use

545 Production Releases

Production releases are releases that have received exhaustive testing within the projectand validated on specific distributions and architectures Production release packages donot ship with known defects Please remember that there is NO WARRANTY on publicrelease packagesProduction packages ship containing a list of validated distributions and architectures Fullregression testing of any maintenance changes is performed Suitability of software in thiscategory for production use on the specified target distributions and architectures is at thediscretion of the user It should not be necessary to preform validation tests on the set ofsupported target systems before considering production use

546 Unstable Releases

Unstable releases are releases that have received extensive testing within the project andvalidated on a a wide range of distributions and architectures however is has tested un-stable and found to be suffering from critical problems and issues that cannot be resolvedMaintenance of the package has proved impossible Unstable release packages ship withknown defects (and loud warnings) Suitability of software in this category for productionuse is at the discretion of the user of the software The OpenSS7 Project recommendsthat the problems and issues be closely examined before this software is used even in anon-production environment Each failing test scenario should be completely avoided bythe application OpenSS7 beta software is more stable that software in this category

55 Bugs

551 Defect Notices

OpenSS7 SS7 Stack has unknown defects This is an alpha release Some defects couldbe harmful No validation testing whatsoever has been performed by the OpenSS7 Projecton this software The software might fail to configure or compile on some systems TheOpenSS7 Project recommends that you do not use this software for purposes other thandeveloment or evaluation and then only with great care Use at your own risk Rememberthat there is NO WARRANTY11

This software is alpha software As such it can likely crash your kernel Installation of thesoftware can irreparably mangle your header files or Linux distribution in such a way asto make it unusable Crashes could lock your system and rebooting the system might notrepair the problem You can possibly lose all the data on your system Because this software

11 See sections Disclaimer of Warranty and Limitation of Liability under [GNU Affero General Public License]page 104

44 OpenSS7 SS7 Stack

can crash your kernel the resulting unstable system could destroy computer hardware orperipherals making them unusable You could void the warranty on any system on whichyou run this software YOU HAVE BEEN WARNED

552 Known Defects

With the exception of packages not originally created by the OpenSS7 Project the OpenSS7Project software does not ship with known bugs in any release stage except pre-alphaOpenSS7 SS7 Stack had no known bugs at the time of release

553 Defect History

This section contains historical bugs that were encountered during development and theirresolutions This list serves two purposes1 It captures bugs encountered between releases during development that could possibly

reoccur (and the Moon is made of blue cheese) It therefore provides a place for usersto look if they encounter a problem

2 It provides a low overhead bug list between releases for developers to use as a lsquoTODOrsquolist

Bugs

006 2008-08-17T034223+0000The xnet library was discovered to contain a thread-safety bug caused by newerbehaviour of pthread once() causing the library to core dump when used onrecent implementations of pthreads (nptl)The xnet library is no longer normally compiled as part of the lsquostrss7rsquo packagefixed in strss7-09a8

005 2007-07-21T171502-0600It was discovered that recent kernel on RHAS4 are defining irq handler t buthave the old 3 argument function template for irq handlers The detectionlogic assumed that if irq hander t existed that the newer 2 argument functiontemplate for irq handlers were in effect This caused builds to fail on theseRHAS4 kernelsfixed in strss7-09a8rc1A check was added to the configure script to test whether the irq handler t hasthe newer 2 argument template

004 2007-03-13T233637-0600 (x400p-ss75766)Older chips were not being recognized correctly either Reflected device tableand a few missing break statements was the causefixed in strss7-09a6

003 2007-03-13T024038-0600 (x400p-ss75766)It appears that V401PE cards were almost loading (configuring mappingdownloading firmware) but were failing to configure at the final stage of theprocess (matching device id to board type) The device id for the 2155 is sup-posed to be b4 regardless of E1 or T1 but I just guess that the card is reporting

Chapter 5 Releases 45

34 instead of b4 for E1 (it might be the firmware setting or unsetting the highbit as was done for the other devices) I changed the sl x400pc driver to printerror messages when loading if such mismatches occur and set the device idsto accept 0x3X as an E1 2155 device and 0bX as a T1J1 2155 device (eventhough they are all the same)As it turns out the V401PE cards have a DS2156 chip instead of a DS2155chip The only difference is the lack of Tx fixed gain control (register 0x7d)and the DS2156 supports a UTOPIA II bus that is not used on the V401PEI changed the driver to recognize the DS2156 and skip register 0x7d when itexists The DS2156 chip will work for both V401T (D33D) and V401E (D44D)cardsfixed in strss7-09a6

002 2007-03-08T210547-0700Timers were message up (using HZ instead of milliseconds) on the X400P driverThis did not affect architectures with 1000 HZ or 1024 HZ tick clocks but 100HZ systems objectfixed in strss7-09a6

001 2007-03-05T155814-0700For some reason the package was always building and installing the lsquolibxnetrsquotexinfo document which was keeping the RPM from installing after thelsquostrxnetrsquo package This was fixed in lsquodocmanualMakefileamrsquo with theaddition of a lsquoWITH_XNETrsquo conditionalfixed in strss7-09a6

56 Schedule

Current Plan

The current plan includes the public production release of SCCP ISUP and TCAP com-ponents MTP3 has not yet been publicly released and is not currently scheduled (Imple-menting the AS-side of M3UA is taking precedence) The first public production releases ofSCCP ISUP and TCAP are planned for the end of July 2007 This will be followed by laband limitied field trial testing with a lead customer in August and production deploymentin the lead customerrsquos network in 1Q2008 Expect that over the next 8 months releases ofthis package will include major new development and validation testing as well as includingSCCP ISUP and TCAP components that have nor heretofore been publicly released

Things to Do

There is a great long list of these but here is a crack at the first onesminus Compile entire (private) package against Linux Fast-STREAMSminus Convert test programs into conformance test suites under GNU autotest This should

be straight forward matterminus Start retesting SIGTRAN components against SCTP and Linux Fast-STREAMS start-

ing with M2PAminus Start retesting SS7 Device Drivers under Linux Fast-STREAMS starting with X400P

46 OpenSS7 SS7 Stack

minus Start retesting SS7 Stack components (MTP2 MTP3 SCCP ISUP TCAP) underLinux Fast-STREAMS

minus Package a public release It has been way too long since a public release of this packageThe package has almost a million lines of code in it most of which the public has neverseen

minus Complete the SL-MUX driver and utility programsminus Complete the libslpcap library (pcap(3)) for live capture of SS7 link SDUs using

ethereal(1) or wireshark(1)

57 History

For the latest developments with regard to history of changes please see the lsquoChangeLogrsquofile in the release package

Chapter 6 Installation 47

6 Installation

61 Repositories

The OpenSS7 SS7 Stack package release can be accessed from the repositories of TheOpenSS7 Project For rpm(1) based systems the package is available in a yum(8) reposi-tory based on lsquorepomdrsquo XML and may also be accessed using zypper(8) or yast(8) Fordpkg(1) based systems the package is available in a apt(8) repository

By far the easiest (most repeatable and manageable) form for installing and using OpenSS7packages is to install packages from the yum(8) or apt(8) repositories If your distributiondoes not support yum(8) zypper(8) yast(8) or apt(8) then it is still possible to installthe RPMs or DEBs from the repositories using rpm(1) dpkg(1) or by using wget(1) andthen installing them from RPM or DEB using rpm(1) or dpkg(1) locally

If binaries are not available for your distribution or specific kernel but your distributionsupports rpm(1) or dpkg(1) the next best method for installing and using OpenSS7 pack-ages is to download and rebuild the source RPMs or DSCs from the repository This canalso be performed with yum(8) zypper(8) yast(8) apt(8) or directly using wget(1)rpm(1) or dpkg(1)

If your architecture does not support rpm(1) or dpkg(1) at all or you have special needs(such as cross-compiling for embedded targets) the final resort method is to downloadconfigure build and install from tarball In this later case the easiest way to build andinstall OpenSS7 packages from tarball is to use the tarball for the OpenSS7 Master Packageopenss7-092G

611 Repositories for YUM

To install or upgrade from the OpenSS7 lsquorepomdrsquo repositories you will need a file inyour lsquoetcyumrepodrsquo directory This file can be obtained directly from the OpenSS7repository like so

$gt REPOS=httpwwwopenss7orgreposrpms$gt wget $REPOScentos52x86_64repodataopenss7repo$gt sudo cp -f openss7repo etcyumrepod$gt sudo yum makecache

This example assumes the the distribution is lsquocentosrsquo and the distribution releaseis lsquo52rsquo and the architecture requires is lsquox86_64rsquo Another example would belsquo$REPOSi686suse110i686repodataopenss7reporsquo for using yum(8) with SUSE

Once the repository is set up OpenSS7 includes a number of virtual package definitionsthat eas the installation and removal of kernel modules libraries and utilities Downloadingconfiguring building and installation for a single-kernel distribution is as easy as

$gt sudo yum install strss7

Removing the package is as easy as

$gt sudo yum remove strss7

If you have difficulty downloading the lsquoopenss7reporsquo file edit the following informationinto the file and place it into the lsquoetcyumrepodopenss7reporsquo file

48 OpenSS7 SS7 Stack

-| [openss7]-| enabled = 1-| name = OpenSS7 Repository-| baseurl = httpwwwopenss7orgreposrpmscentos52x86_64-| gpgcheck = 1-| gpgkey = httpwwwopenss7orgpubkeyasc

Note that it is also possible to point to these repositories as an additional installation sourcewhen installing CentOS RedHat Fedora or others You will have an additional STREAMScategory from which to choose installation packagesSome additional installation real or virtual package names and the installations they ac-complish are as follows

lsquostrss7rsquoThis package can be used to install or remove the entire OpenSS7 SS7 Stackpackage When installing kernel modules will be installed automatically forthe highest version kernel on your system When removing all correspondingkernel modules will also be removed

lsquostrss7-develrsquoThis package can be used to install or remove the development components ofthe OpenSS7 SS7 Stack package When installing lsquostrss7rsquo and appropriatekernel module and kernel module development and debug packages will alsobe installed When removing the development package and all kernel moduledevelopment and debug packages will also be removed

lsquostrss7-2420-287rsquoThis package can be used to install or remove the package for a specific kernelversion When installing the lsquostrss7rsquo package will also be installed if necessaryWhen removing the last kernel module package the lsquostrss7rsquo package will alsobe removedNote that the version lsquo2420-287rsquo is just an example Use the version re-turned by lsquo$(uname -r)rsquo for the kernel for which you wish to install or removethe packages

lsquostrss7-2420-287-develrsquoThis package can be used to install or remove the development and debugpackages for a specific kernel version When installing the lsquostrss7rsquo andlsquostrss7-develrsquo packages will also be installed if necessary When removingthe development and debug for kernel modules for the last kernel thelsquostrss7-develrsquo package will also be removedNote that the version lsquo2420-287rsquo is just an example Use the version re-turned by lsquo$(uname -r)rsquo for the kernel for which you wish to install or removethe packages

For assistance with specific RPMs see Section 623 [Downloading the Binary RPM]page 51

612 Repositories for APT

For assistance with specific DEBs see Section 624 [Downloading the Debian DEB] page 54

Chapter 6 Installation 49

62 Downloading

The OpenSS7 SS7 Stack package releases can be downloaded from the downloads page ofThe OpenSS7 Project The package is available as a binary RPM (for popular architectures)a source RPM Debian binary DEB and source DSC or as a tar ball If you are using abrowsable viewer you can obtain the OpenSS7 release of strss7 from the links in thesections that followBy far the easiest (most repeatable and manageable) form for installing and using OpenSS7packages is to download and install individual packages from binary RPM or DEB If binaryRPMs or DEBs are not available for your distribution but your distribution supportsrpm(1) or dpkg(1) the next best method for installing and using OpenSS7 packages is todownload and rebuild the source RPMs or DSCsIf your architecture does not support rpm(1) or dpkg(1) at all or you have special needs(such as cross-compiling for embedded targets) the final resort method is to downloadconfigure build and install from tarball In this later case the easiest way to build andinstall OpenSS7 packages from tarball is to use the tarball for the OpenSS7 Master Packageopenss7-092G

621 Downloading with YUM

OpenSS7 repositories support yum(8) and zypper(8) in repomd XML format as well asYaST and YaST2 formatsOpenSS7 includes virtual packages that ease the installation and removal of kernel moduleslibraries and utilities Downloading configuration building and installation for a signle-kernel distribution installation is as easy as sudo yum install strss7

This and additional packages for installation are detailed as follows

lsquostrss7rsquo Install this package if you need the runtime lsquostrss7rsquo package sudo yum install strss7

This will install the lsquostrss7rsquo lsquostrss7-librsquo and lsquostrss7-KVERSIONrsquo RPMswhere lsquoKVERSIONrsquo is the highest version number kernel on your systemRemove this package if you need to remove all vestages of the lsquostrss7rsquo package

sudo yum remove strss7

This will remove the lsquostrss7rsquo lsquostrss7-librsquo lsquostrss7-develrsquolsquostrss7-KVERSIONrsquo and lsquostrss7-devel-KVERSIONrsquo RPMs for allkernels on your system

lsquostrss7-develrsquoInstall this package if you need the development lsquostrss7rsquo package

sudo yum install strss7-devel

This will install the lsquostrss7rsquo lsquostrss7-librsquo lsquostrss7-develrsquolsquostrss7-KVERSIONrsquo and lsquostrss7-devel-KVERSIONrsquo RPMs wherelsquoKVERSIONrsquo is the highest version number kernel on your systemRemove this package if you do not need development capabilities for thelsquostrss7rsquo package for any kernel

50 OpenSS7 SS7 Stack

sudo yum remove strss7-devel

This will remove the lsquostrss7-develrsquo and lsquostrss7-devel-KVERSIONrsquo RPMs forall kernels on your system

lsquostrss7-2420-287rsquoInstall this package if you need the runtime lsquostrss7rsquo for kernel versionlsquo2420-287rsquo The value lsquo2420-287rsquo is just an example For the runningkernel you can install the runtime lsquostrss7rsquo components with

sudo yum install strss7-$(uname -r)

This will install the lsquostrss7rsquo lsquostrss7-librsquo and lsquostrss7-2420-287rsquo RPMswhere lsquo2420-287rsquo is the kernel version specified

Remove this package if you no longer need the runtime lsquostrss7rsquo for kernelversion lsquo2420-287rsquo The value lsquo2420-287rsquo is just an example For therunning kernel you can remove the runtime lsquostrss7rsquo components with

sudo yum remove strss7-$(uname -r)

This will remove the lsquostrss7-2420-287rsquo and lsquostrss7-devel-2420-287rsquoRPMs where lsquo2420-287rsquo is the kernel version specified Also if this is thelast kernel for which lsquostrss7rsquo was installed the lsquostrss7rsquo lsquostrss7-librsquo andlsquostrss7-develrsquo RPMs will also be removed

Note that this is a virtual package name the actual RPMs installed or removedfrom the system is a kernel module package whose precise name will dependupon the system being used

lsquostrss7-devel-2420-287rsquoInstall this package if you need the development lsquostrss7rsquo package for kernelversion lsquo2420-287rsquo The value lsquo2420-287rsquo is just an example For therunning kernel you can install the kernel development lsquostrss7rsquo componentswith

sudo yum install strss7-devel-$(uname -r)

This will install the lsquostrss7rsquo lsquostrss7-librsquo lsquostrss7-develrsquolsquostrss7-2420-287rsquo and lsquostrss7-devel-2420-287rsquo RPMswhere lsquo2420-287rsquo is the kernel version specified

Remove this package if you no longer need the development capabilities for thelsquostrss7rsquo package for kernel version lsquo2420-287rsquo The value lsquo2420-287rsquo isjust an example For the running kernel you can remove the kernel developmentlsquostrss7rsquo components with

sudo yum remove strss7-devel-$(uname -r)

This will remove the lsquostrss7-devel-2420-287rsquo RPMs wherelsquo2420-287rsquo is the kernel version specified Also if this is the last kernel forwhich lsquostrss7rsquo was installed the lsquostrss7-develrsquo RPMs will also be removed

Note that this is a virtual package name the actual RPMs installed or removedfrom the system is a kernel module package whose precise name will dependupon the system being used

Chapter 6 Installation 51

lsquostrss7-librsquoThis package is an auxillary package that should be removed and inserted au-tomatically by yum(8) In rare instances you might need to remove or installthis package explicitly

622 Downloading with APT

OpenSS7 repositries support apt(8) repositorie digests and signatures

623 Downloading the Binary RPM

To install from binary RPM you will need several of the RPM for a complete installationBinary RPM fall into several categories To download and install a complete packagerequires the appropriate RPM from each of the several categories below as applicableSome release packages do not provide RPMs in each of the several categories

To install from Binary RPM you will need all of the following kernel independent packagesfor your architecture and one of the kernel-dependent packages from the next section

Independent RPM

Independent RPM are dependent on neither the Linux kernel version nor the STREAMSpackage For example the source package lsquostrss7-source-09a8-172noarchrpmrsquo isnot dependent on kernel nor STREAMS package

All of the following kernel and STREAMS independent RPM are required for your architec-ture Binary RPMs listed here are for example only additional binary RPMs are availablefrom the downloads site If your architecture is not available you can build binary RPMfrom the source RPM (see see Section 641 [Building from the Source RPM] page 77)

Architecture Independent

strss7-dev-09a8-172noarchrpmThe lsquostrss7-devrsquo package contains the device definitions necessary to run ap-plications programs developed for OpenSS7 SS7 Stack1

strss7-doc-09a8-172noarchrpmThe lsquostrss7-docrsquo package contains this manual in plain text postscript lsquopdfrsquoand lsquohtmlrsquo forms along with the meta-information from the lsquostrss7rsquo packageIt also contains all of the manual pages necessary for developing OpenSS7 SS7Stack applications and OpenSS7 SS7 Stack STREAMS modules or drivers

strss7-init-09a8-172noarchrpmThe lsquostrss7-initrsquo package contains the init scripts and provides thelsquopostinstrsquo scripts necessary to create kernel module preloads and modulesdefinitions for all kernel module lsquocorersquo subpackages

1 Not all distributions support the lsquodevrsquo RPM macro a case in point is the SuSE 80 distribution whichuses an older version of rpm(1) Distributions that do not support the lsquodevrsquo macro will build devices asa lsquopostrsquo operation Note also that not all release packages contain devices Only packages that provideSTREAMS character device drivers need devices and then only when the lsquospecfsrsquo or lsquodevfsdrsquo is not beingused

52 OpenSS7 SS7 Stack

strss7-source-09a8-172noarchrpmThe lsquostrss7-sourcersquo package contains the source code necessary for buildingthe OpenSS7 SS7 Stack release It includes the autoconf(1) configurationutilities necessary to create and distribute tarballs lsquorpmrsquo and lsquodebrsquolsquodscrsquo2

Architecture Dependent

strss7-devel-09a8-172i686rpmThe lsquostrss7-develrsquo package contains library archives for static compilationheader files to develop OpenSS7 SS7 Stack modules and drivers This alsoincludes the header files and static libraries required to compile OpenSS7 SS7Stack applications programs

strss7-lib-09a8-172i686rpmThe lsquostrss7-librsquo package contains the run-time shared libraries necessary torun application programs and utilities developed for the lsquostrss7rsquo package3

STREAMS-Dependent RPM

STREAMS-Dependent RPM are dependent upon the specific STREAMS package beingused either Linux STREAMS or Linux Fast-STREAMS Packages dependent uponLinux STREAMS will have lsquoLiSrsquo in the package name Packages dependent uponLinux Fast-STREAMS will have lsquostreamsrsquo in the package name Note that someSTREAMS-Dependent RPM are also Kernel-Dependent RPM as described below

One of the following STREAMS-Dependent packages is required for your architecture Ifyour architecture is not on the list you can build binary RPM from the source RPM (seesee Section 641 [Building from the Source RPM] page 77)

strss7-LiS-util-09a8-172i686rpmThe lsquostrss7-LiS-utilrsquo package provides administrative and configuration testutilities and commands associated with the OpenSS7 SS7 Stack package Be-cause this package must link a STREAMS-specific library it is a STREAMS-Dependent package Use the lsquostrss7-LiS-utilrsquo package if you have LiS in-stalled

strss7-streams-util-09a8-172i686rpmThe lsquostrss7-streams-utilrsquo package provides administrative and configura-tion test utilities and commands associated with the OpenSS7 SS7 Stack pack-age Because this package must link a STREAMS-specific library it is aSTREAMS-Dependent package Use the lsquostrss7-streams-utilrsquo package ifyou have streams installed

Kernel-Dependent RPM

Kernel-Dependent RPM are dependent on specific Linux Kernel Binary RPM releasesPackages are provided for popular released RedHat kernels Packages dependent upon Red-

2 Note that not all releases have source RPM packages Release packages that do not contain kernel modulesdo not generate a source RPM package

3 Note that not all release packages contain shared libraries and therefore not all release packages containthis package

Chapter 6 Installation 53

Hat or other kernel RPM will have the lsquo_kversionrsquo kernel package version in the packagenameOne of the following Kernel-Dependent packages is required for your architecture and kernelversion If your architecture or kernel version is not on the list you can build binary RPMfrom the source RPM (see see Section 641 [Building from the Source RPM] page 77)4

strss7-core-2420-287-09a8-172i686rpmThe lsquostrss7-corersquo package contains the loadable kernel modules that dependonly on the kernel This package is heavily tied to the kernel for which it wascompiled This particular package applies to kernel version lsquo2420-287rsquo5

strss7-info-2420-287-09a8-172i686rpmThe lsquostrss7-inforsquo package6 contains the module symbol version informationfor the lsquocorersquo subpackage above It is possible to load this subpackage andcompile modules that use the exported symbols without loading the actualkernel modules (from the lsquocorersquo subpackage above) This package is heavilytied to the kernel for which it was compiled This particular package applies tokernel version lsquo2420-287rsquo7

strss7-LiS-core-2420-287-09a8-172i686rpmThe lsquostrss7-LiS-corersquo package contains the kernel modules that providethe OpenSS7 SS7 Stack STREAMS modules and drivers This package isheavily tied to the STREAMS package and kernel for which it was compiledThis particular package applies to lsquoLiSrsquo (Linux STREAMS) on kernel versionlsquo2420-287rsquo8

strss7-streams-core-2420-287-09a8-172i686rpmThe lsquostrss7-streams-corersquo package contains the kernel modules that pro-vide the OpenSS7 SS7 Stack STREAMS modules and drivers This package isheavily tied to the STREAMS package and kernel for which it was compiledThis particular package applies to lsquostreamsrsquo (Linux Fast-STREAMS) on kernelversion lsquo2420-287rsquo9

strss7-LiS-info-2420-287-09a8-172i686rpmThe lsquostrss7-LiS-inforsquo package10 contains the module symbol version infor-mation for the lsquoLiS-corersquo subpackage above It is possible to load this sub-package and compile modules that use the exported symbols without loaded the

4 Note that on Mandrakelinux unlike other RPM kernel distributions kernel packages for the ix86 architec-tures are always placed in i586 architecture packages regardless of the true processor architecture of thekernel package lsquoconfigurersquo detects this and builds the appropriate packages

5 Note that the lsquo_kversionrsquo of lsquo2420-287rsquo is only an example Note also that only release packages thatcontain kernel modules will contain a lsquocorersquo subpackage

6 Note that only release packages that contain kernel modules and that export versioned symbols will containa lsquoinforsquo subpackage Also this subpackage is only applicable to 24 series kernels and is not necessary andnot built for 26 series kernels

7 Note that the lsquo_kversionrsquo of lsquo2420-287rsquo is only an example8 Note that the lsquo_kversionrsquo of lsquo2420-287rsquo is only an example9 Note that the lsquo_kversionrsquo of lsquo2420-287rsquo is only an example

10 Note that only release packages that contain kernel modules and that export versioned symbols will containa lsquoLiS-inforsquo subpackage

54 OpenSS7 SS7 Stack

actual kernel modules (from the lsquoLiS-corersquo subpackage above) This packageis heavily tied to the STREAMS package and kernel for which it was compiledThis particular package applies to lsquoLiSrsquo (Linux STREAMS) on kernel versionlsquo2420-287rsquo11

strss7-streams-info-2420-287-09a8-172i686rpmThe lsquostrss7-streams-inforsquo package12 contains the module symbol version in-formation for the lsquostreams-corersquo subpackage above It is possible to loadthis subpackage and compile modules that use the exported symbols withoutloaded the actual kernel modules (from the lsquostreams-corersquo subpackage above)This package is heavily tied to the STREAMS package and kernel for whichit was compiled This particular package applies to lsquostreamsrsquo (Linux Fast-STREAMS) on kernel version lsquo2420-287rsquo13

Configuration and Installation

To configure build and install the binary RPM See Section 631 [Configuring the BinaryRPM] page 62

624 Downloading the Debian DEB

To install from binary DEB you will need several of the DEB for a complete installationBinary DEB fall into several categories To download and install a complete package requiresthe appropriate DEB from each of the several categories below as applicable Some releasepackages do not provide DEBs in each of the several categories

To install from Binary DEB you will need all of the following kernel independent packagesfor your architecture and one of the kernel-dependent packages from the next section

Independent DEB

Independent DEB are dependent on neither the Linux kernel version nor the STREAMSpackage For example the source package lsquostrss7-source_09a8-0_i386debrsquo is notdependent on kernel nor STREAMS package

All of the following kernel and STREAMS independent DEB are required for your architec-ture Binary DEBs listed here are for example only additional binary DEBs are availablefrom the downloads site If your architecture is not available you can build binary DEBfrom the Debian DSC (see see Section 642 [Building from the Debian DSC] page 78)

Architecture Independent

strss7-dev 09a8-0 alldebThe lsquostrss7-devrsquo package contains the device definitions necessary to run ap-plications programs developed for OpenSS7 SS7 Stack14

11 Note that the lsquo_kversionrsquo of lsquo2420-287rsquo is only an example12 Note that only release packages that contain kernel modules and that export versioned symbols will contain

a lsquostreams-inforsquo subpackage13 Note that the lsquo_kversionrsquo of lsquo2420-287rsquo is only an example14 Note that not all release packages contain devices Only packages that provide STREAMS character device

drivers need devices and then only when the lsquospecfsrsquo or lsquodevfsdrsquo is not being used

Chapter 6 Installation 55

strss7-doc 09a8-0 alldebThe lsquostrss7-docrsquo package contains this manual in plain text postscript lsquopdfrsquoand lsquohtmlrsquo forms along with the meta-information from the lsquostrss7rsquo packageIt also contains all of the manual pages necessary for developing OpenSS7 SS7Stack applications and OpenSS7 SS7 Stack STREAMS modules or drivers

strss7-init 09a8-0 alldebThe lsquostrss7-initrsquo package contains the init scripts and provides the postinstscripts necessary to create kernel module preloads and modules definitions forall kernel module lsquocorersquo subpackages

strss7-source 09a8-0 alldebThe lsquostrss7-sourcersquo package contains the source code necessary for buildingthe OpenSS7 SS7 Stack release It includes the autoconf(1) configurationutilities necessary to create and distribute tarballs rpms and debdscs15

Architecture Dependent

strss7-devel 09a8-0 i386debThe lsquostrss7-develrsquo package contains library archives for static compilationheader files to develop OpenSS7 SS7 Stack modules and drivers This alsoincludes the header files and static libraries required to compile OpenSS7 SS7Stack applications programs

strss7-lib 09a8-0 i386debThe lsquostrss7-librsquo package contains the run-time shared libraries necessary torun application programs and utilities developed for the lsquostrss7rsquo package16

STREAMS-Dependent DEB

STREAMS-Dependent DEB are dependent upon the specific STREAMS package beingused either Linux STREAMS or Linux Fast-STREAMS Packages dependent uponLinux STREAMS will have lsquoLiSrsquo in the package name Packages dependent uponLinux Fast-STREAMS will have lsquostreamsrsquo in the package name Note that someSTREAMS-Dependent DEB are also Kernel-Dependent DEB as described below

One of the following STREAMS-Dependent packages is required for your architecture Ifyour architecture is not on the list you can build binary DEB from the Debian DSC (seesee Section 642 [Building from the Debian DSC] page 78)

strss7-LiS-util 09a8-0 i386debThe lsquostrss7-LiS-utilrsquo package provides administrative and configuration testutilities and commands associated with the OpenSS7 SS7 Stack package Be-cause this package must link a STREAMS-specific library it is a STREAMS-Dependent package Use the lsquostrss7-LiS-utilrsquo package if you have LiS in-stalled

15 Note that not all releases have source DEB packages Release packages that do not contain kernel modulesdo not generate a source DEB package

16 Note that not all release packages contain shared libraries and therefore not all release packages containthis package

56 OpenSS7 SS7 Stack

strss7-streams-util 09a8-0 i386debThe lsquostrss7-streams-utilrsquo package provides administrative and configura-tion test utilities and commands associated with the OpenSS7 SS7 Stack pack-age Because this package must link a STREAMS-specific library it is aSTREAMS-Dependent package Use the lsquostrss7-streams-utilrsquo package ifyou have streams installed

Kernel-Dependent DEB

Kernel-Dependent DEB are dependent on specific Linux Kernel Binary DEB releases Pack-ages are provided for popular released Debian kernels Packages dependent upon Debian orother kernel DEB will have the lsquo_kversionrsquo kernel package version in the package nameOne of the following Kernel-Dependent packages is required for your architecture and kernelversion If your architecture or kernel version is not on the list you can build binary DEBfrom the source DEB (see see Section 642 [Building from the Debian DSC] page 78)17

strss7-core-2420-287 09a8-0 i386debThe lsquostrss7-corersquo package contains the loadable kernel modules that dependonly on the kernel This package is heavily tied to the kernel for which it wascompiled This particular package applies to kernel version lsquo2420-287rsquo18

strss7-info-2420-287 09a8-0 i386debThe lsquostrss7-inforsquo package19 contains the module symbol version informationfor the lsquocorersquo subpackage above It is possible to load this subpackage andcompile modules that use the exported symbols without loading the actualkernel modules (from the lsquocorersquo subpackage above) This package is heavilytied to the kernel for which it was compiled This particular package applies tokernel version lsquo2420-287rsquo20

strss7-LiS-core-2420-287 09a8-0 i386debThe lsquostrss7-LiS-corersquo package contains the kernel modules that providethe OpenSS7 SS7 Stack STREAMS modules and drivers This package isheavily tied to the STREAMS package and kernel for which it was compiledThis particular package applies to lsquoLiSrsquo (Linux STREAMS) on kernel versionlsquo2420-287rsquo21

strss7-streams-core-2420-287 09a8-0 i386debThe lsquostrss7-streams-corersquo package contains the kernel modules that pro-vide the OpenSS7 SS7 Stack STREAMS modules and drivers This package isheavily tied to the STREAMS package and kernel for which it was compiled

17 Note that on Mandrakelinux unlike other DEB kernel distributions kernel packages for the ix86 architecturesare always placed in i586 architecture packages regardless of the true processor architecture of the kernelpackage lsquoconfigurersquo detects this and builds the appropriate packages

18 Note that the lsquo_kversionrsquo of lsquo2420-287rsquo is only an example Note also that only release packages thatcontain kernel modules will contain a lsquocorersquo subpackage

19 Note that only release packages that contain kernel modules and that export versioned symbols will containa lsquoinforsquo subpackage Also this subpackage is only applicable to 24 series kernels and is not necessary andnot built for 26 series kernels

20 Note that the lsquo_kversionrsquo of lsquo2420-287rsquo is only an example21 Note that the lsquo_kversionrsquo of lsquo2420-287rsquo is only an example

Chapter 6 Installation 57

This particular package applies to lsquostreamsrsquo (Linux Fast-STREAMS) on kernelversion lsquo2420-287rsquo22

strss7-LiS-info-2420-287 09a8-0 i386debThe lsquostrss7-LiS-inforsquo package23 contains the module symbol version infor-mation for the lsquoLiS-corersquo subpackage above It is possible to load this sub-package and compile modules that use the exported symbols without loaded theactual kernel modules (from the lsquoLiS-corersquo subpackage above) This packageis heavily tied to the STREAMS package and kernel for which it was compiledThis particular package applies to lsquoLiSrsquo (Linux STREAMS) on kernel versionlsquo2420-287rsquo24

strss7-streams-info-2420-287 09a8-0 i386debThe lsquostrss7-streams-inforsquo package25 contains the module symbol version in-formation for the lsquostreams-corersquo subpackage above It is possible to loadthis subpackage and compile modules that use the exported symbols withoutloaded the actual kernel modules (from the lsquostreams-corersquo subpackage above)This package is heavily tied to the STREAMS package and kernel for whichit was compiled This particular package applies to lsquostreamsrsquo (Linux Fast-STREAMS) on kernel version lsquo2420-287rsquo26

Configuration and Installation

To configure build and install the Debian DEB See Section 632 [Configuring the DebianDEB] page 63

625 Downloading the Source RPM

If you cannot obtain a binary RPM for your architecture or would like to roll you ownbinary RPM download the following source RPM

strss7-09a8-1srcrpmThis is the source RPM for the package From this source RPM it is possible tobuild binary RPM for any supported architecture and for any 24 or 26 kernelfor either Linux STREAMS or Linux Fast-STREAMS

Configuration

To configure the source RPM See Section 633 [Configuring the Source RPM] page 63

626 Downloading the Debian DSC

If you cannot obtain a binary DEB for your architecture or would like to roll your ownDEB download the following Debian DSC

22 Note that the lsquo_kversionrsquo of lsquo2420-287rsquo is only an example23 Note that only release packages that contain kernel modules and that export versioned symbols will contain

a lsquoLiS-inforsquo subpackage24 Note that the lsquo_kversionrsquo of lsquo2420-287rsquo is only an example25 Note that only release packages that contain kernel modules and that export versioned symbols will contain

a lsquostreams-inforsquo subpackage26 Note that the lsquo_kversionrsquo of lsquo2420-287rsquo is only an example

58 OpenSS7 SS7 Stack

strss7 09a8-0dscstrss7 09a8-0targz

This is the Debian DSC for the package From this Debian DSC it is possible tobuild binary DEB for any supported architecture and for any 24 or 26 kernelfor either Linux STREAMS or Linux Fast-STREAMS

Configuration

To configure the source RPM See Section 634 [Configuring the Debian DSC] page 67

627 Downloading the Tar Ball

For non-rpm(1) and non-dpkg(1) architectures download the tarball as follows

strss7-09a8targzstrss7-09a8tarbz2

These are the tar(1) balls for the release These tar(1) balls contain theautoconf(1) distribution which includes all the source necessary for buildingand installing the package These tarballs will even build Source RPM andBinary RPM on rpm(1) architectures and Debian DSC and DEB on dpkg(1)architectures

The tar ball may be downloaded easily with wget(1) as follows wget httpwwwopenss7orgstrss7-09a8tarbz2

or wget httpwwwopenss7orgstrss7-09a8targz

Note that you will need an OpenSS7 Project user name and password to download releasecandidates (which are only available to subscribers and sponsors of the OpenSS7 Project)

Unpacking the Archive

After downloading one of the tar balls unpack the archive using one of the following com-mands wget httpwwwopenss7orgstrss7-09a8targz tar -xzvf strss7-09a8targz

or wget httpwwwopenss7orgstrss7-09a8tarbz2 tar -xjvf strss7-09a8tarbz2

Either will create a subdirectory name lsquostrss7-09a8rsquo containing all of the files andsubdirectories for the strss7 package

Chapter 6 Installation 59

Configuration

To configure and install the tar ball See Section 635 [Configuring the Tar Ball] page 67

628 Downloading from CVS

If you are a subscriber or sponsor of The OpenSS7 Project with CVS archive access privilegesthen you can download release mid-release or release candidate versions of the lsquostrss7rsquopackage from the project CVS archiveThe OpenSS7 SS7 Stack package is located in the lsquostrss7rsquo module of lsquovarcvsrsquo Forrelease tag information see Chapter 5 [Releases] page 33To access the archive from the project CVS pserver use the following commands to checkout a version from the archive export CVSROOT=rsquo-dpserverusernamecvsopenss7com2401varcvsrsquo cvs loginPassword cvs co -r strss7_09a8 strss7 cvs logout

It is of course possible to check out by date or by other criteria For more informationsee cvs(1)

Preparing the CVS Working Directory

Although public releases of the lsquostrss7rsquo package do not require reconfiguration creating aconfigurable directory from the CVS archive requires tools not normally distributed withthe other releasesThe build host requires the following GNU toolsbull m4 1412

bull autoconf 263

bull automake 1101

bull libtool 224

bull gettext 017

bull flex 2533

bull bison 23

Most desktop development GNULinux distributions wil have these tools however somenon-development or server-style installations might not and they must be installed sepa-rately27

Also these tools can be acquired from the FSF website in the free software directory andalso at the following locationsbull m4-1412bull autoconf-263

27 Older version of bison (20) and the older version of flex (254a) are also suitable Where possible use themore recent bison 23 and flex 2533

60 OpenSS7 SS7 Stack

bull automake-1101bull libtool-224bull gettext-017bull flex-2533bull bison-23

It should be stressed that in particular the autoconf(1) and automake(1) must be atversion releases 263 and 1101 The versions normally distributed in some mainstreamGNULinux distributions are in fact much older than these versions28 GNU version ofthese packages configured and installed to default directories will install in lsquousrlocalrsquoallowing them to coexist with distribution installed versionsFor building documentation the build host also requires the following documentation toolsbull gs 651 or ghostscript 651 or newerbull tetex 30 or texlive 2007 or newerbull texinfo 413a or newerbull transfig 323d or newerbull imagemagick 538 or ImageMagick 538 or newerbull groff 1172 or newerbull gnuplot 37 or newerbull latex2html 162 or newer

Most desktop GNULinux distributions will have these tools however some server-styleinstallations (eg Ubuntu-server SLES 9 or Fedora 6 or 7) will not and they must beinstalled separately29

Note that texinfo 412 must not be used as it breaks the build processFor uncooked manual pages the entire groff(1) package is required on older Debian andUbuntu systems (the base package did not include grefer(1) which is used extensively byuncooked manual pages) The following will get what you need on older systems Debian apt-get install groff_extUbuntu apt-get install groff

On newer systems simply apt-get install groff

In addition the build host requires a complete tool chain for compiling for the target hostincluding kernel tools such as genksyms(8) and others

28 A notable exception is Debian and Fedora 7 Note that on Fedora 7 the gettext-devel package must beinstalled

29 In particular for CentOS Fedora 6 or 7 the tetex-latex and gnuplot packages must be loaded as wellNote also that the latex2html used to be part of the textex package (or subpackages) but is now oftenpackaged on its own Recent distributions such as SUSE 110 and Fedora 9 use the texlive package insteadof the tetex package

Chapter 6 Installation 61

If you wish to package lsquorpmsrsquo on an rpm(1) system or lsquodebsrsquo on a dpkg(1) system you willneed the appropriate tool chain Systems based on rpm(1) typically have the necessary toolchain available however dpkg(1) systems do not The following on a Debian or Ubuntusystem will get what you need apt-get install debhelper apt-get install fakeroot

To generate a configuration script and the necessary scriptlets required by the GNUautoconf(1) system execute the following commands on the working directory autoreconf -fiv strss7

where lsquostrss7rsquo is the name of the directory to where the working copy was checked outunder the previous step This command generates the lsquoconfigurersquo script and other missingpieces that are normally distributed with the release Tar Balls SRPMs and DSCs

Make sure that lsquoautoreconf --versionrsquo returns lsquo263rsquo Otherwise you may need to per-form something like the following PATH=usrlocalbin$PATH autoreconf -fiv strss7

After reconfiguring the directory the package can then be configured and built using thesame instructions as are used for the Tar Ball see Section 635 [Configuring the Tar Ball]page 67 and Section 643 [Building from the Tar Ball] page 78

Do note however that make(1) will rebuild the documentation that is normally releasedwith the package Additional tools may be necessary for building the documentationTo avoid building and installing the documentation use the lsquo--disable-develrsquo orlsquo--disable-docsrsquo option to configure described in Section 635 [Configuring the Tar Ball]page 67

When configuring the package in a working directory and while working a change-compile-test cycle that involves configuration macros or documentation I find it ofgreat advantage to invoke the GNU lsquoconfigurersquo options lsquo--enable-maintainer-modersquolsquo--enable-dependency-trackingrsquo and lsquo--disable-develrsquo The first of these threeoptions will add maintainer-specific targets to any generated lsquoMakefilersquo the second optionwill invoke automatic dependency tracking within the lsquoMakefilersquo so rebuilds after changesto macro source or documentation files will be automatically rebuilt and the last optionwill suppress rebuilding and reinstalling documentation manual pages and header filesHeader files will still be available under the lsquousrsrcrsquo directory

63 Configuration

62 OpenSS7 SS7 Stack

631 Configuring the Binary RPM

In general the binary RPM do not require any configuration however during installationit is possible to relocate some of the installation directories This allows some degree ofcustomization Relocations that are available on the binary RPM are as follows

lsquostrss7-LiS-core-2420-287-09a8-172i686rpmrsquolsquostrss7-streams-core-2420-287-09a8-172i686rpmrsquo

lsquolibmodules2420-287rsquoThis relocatable directory contains the kernel modules that providethe strss7 STREAMS core drivers and modules30

lsquostrss7-LiS-info-2420-287-09a8-172i686rpmrsquolsquostrss7-streams-info-2420-287-09a8-172i686rpmrsquo

lsquousrincludestrss72420-287rsquoThis relocatable directory contains the kernel module exportedsymbol information that allows other kernel modules to be com-piled against the correct version of the strss7 package31

lsquostrss7-dev-09a8-172i686rpmrsquo(not relocatable)

lsquostrss7-devel-09a8-172i686rpmrsquolsquousrlibrsquo

This relocatable directory contains strss7 libraries

lsquousrincludestrss7rsquoThis relocatable directory contains strss7 header files

lsquostrss7-doc-09a8-172i686rpmrsquolsquousrsharedocrsquo

This relocatable directory contains all package specific documenta-tion (including this manual) The subdirectory in this directory isthe lsquostrss7-09a8rsquo directory

lsquousrshareinforsquoThis relocatable directory contains info files (including the info ver-sion of this manual)

lsquousrsharemanrsquoThis relocatable directory contains manual pages

lsquostrss7-LiS-lib-09a8-172i686rpmrsquolsquostrss7-streams-lib-09a8-172i686rpmrsquo

lsquousrlibrsquoThis relocatable directory contains the run-time shared librariesnecessary to run applications programs and utilities developed forOpenSS7 SS7 Stack

30 Note that the lsquo_kversionrsquo of lsquo2420-287rsquo is only an example31 Note that the lsquo_kversionrsquo of lsquo2420-287rsquo is only an example Also note that the lsquoinforsquo subpackage is

only applicable to the 24 kernel series

Chapter 6 Installation 63

lsquousrsharelocalersquoThis relocatable directory contains the locale information for sharedlibrary files

lsquostrss7-source-09a8-172i686rpmrsquo

lsquousrsrcrsquoThis relocatable directory contains the source code

lsquostrss7-LiS-util-09a8-172i686rpmrsquolsquostrss7-streams-util-09a8-172i686rpmrsquo

lsquousrbinrsquoThis relocatable directory contains binary programs and utilities

lsquousrsbinrsquoThis relocatable directory contains system binary programs andutilities

lsquousrlibexecrsquoThis relocatable directory contains test programs

lsquoetcrsquo This relocatable directory contains init scripts and configurationinformation

Installation

To install the binary RPM See Section 651 [Installing the Binary RPM] page 79

632 Configuring the Debian DEB

In general the binary DEB do not require any configuration

Installation

To install the Debian DEB See Section 652 [Installing the Debian DEB] page 80

633 Configuring the Source RPM

When building from the source RPM (see Section 641 [Building from the Source RPM]page 77) the rebuild process uses a number of macros from the userrsquos lsquorpmmacrosrsquo file asdescribed in rpm(8)

Following is an example of the lsquo~rpmmacrosrsquo file that I use for rebuilding RPMS

64 OpenSS7 SS7 Stack

RPM macros for building rpms

vendor OpenSS7 Corporation

distribution OpenSS7

disturl httpwwwopenss7org

packager Brian Bidulock ltbidulockopenss7orggt

url httpwwwopenss7org

_signature gpg

_gpg_path homebriangnupg

_gpg_name openss7openss7org

_gpgbin usrbingpg

_source_payload w9bzdio

_binary_payload w9bzdio

_unpackaged_files_terminate_build 1

_missing_doc_files_terminate_build 1

_use_internal_dependency_generator 0

_repackage_all_erasures 0

_rollback_transaction_on_failure 0

configure2_5x configure

make make When building from the source RPM (see Section 641 [Building from the Source RPM]page 77) it is possible to pass a number of additional configuration options to therpmbuild(1) process

The additional configuration options are described below

Note that distributions that use older versions of rpm do not have the lsquo--withrsquo orlsquo--withoutrsquo options defined To achieve the same effect as

--with someparm=somearg

do

--define _with_someparm --with-someparm=somearg

This is a generic description of common rpmbuild(1) options Not all rpmbuild(1) optionsare applicable to all SRPMs Options that are kernel module specific are only applicable toSRPMs that build kernel modules STREAMS options are only applicable to SRPMs thatprovide or require STREAMS

--define _kversion $PACKAGE_KVERSIONSpecifies the kernel version other than the running kernel for which tobuild If _kversion is not defined when rebuilding the environmentvariable PACKAGE KVERSION is used If the environment variablePACKAGE KVERSION is not defined then the version of the runningkernel (ie discovered with lsquouname -rrsquo) is used as the target version forkernel-dependent packages This option can also be defined in an lsquorpmspecrsquofile using the macro name lsquo_kversionrsquo

Chapter 6 Installation 65

--with checks--without checks

Enable or disable preinstall checks Each packages supports a number ofpreinstall checks that can be performed by invoking the lsquocheckrsquo target withautomake(1) These currently consist of checking each kernel module forunresolved kernel symbols checking for documentation for exported kernelmodule symbols checking for documentation for exported library symbolschecking for standard options for build and installable programs checkingfor documentation for built and installable programs Normally these checksare only run in maintainer mode but can be enabled and disabled with thisoption

--with k-optimize=HOW--without k-optimize

Specify lsquoHOWrsquo optimization normal size speed or quick size compiles kernelmodules -Os speed compiles kernel modules -O3 and quick compiles kernelmodules -O0 The default is normal Use with care

--with cooked-manpages--without cooked-manpages

Some systems do not like grefer(1) references in manual pages32 This optionwill cook soelim(1) refer(1) tbl(1) and pic(1) commands from the man-ual pages and also strip groff(1) comments The default is to leave manualpages uncooked they are actually smaller that way

--with public--without public

Release public packages or private packages This option has no effect on thelsquostrss7rsquo package The default is to release public packages

--with k-debug--without k-debug

Specifies whether kernel debugging is to be performed on the build kernel mod-ules Mutually exclusive with test and safe below This has the effect ofremoving static and inline attributes from functions and invoking all debuggingmacros in the code The default is to not perform kernel debugging

--with k-test--without k-test

Specifies whether kernel testing is to be performed Mutually exclusive withdebug above and safe below This has the effect of removing static and inlineattributes from functions and invoking most debugging macros in the code Thedefault is to not perform kernel testing

32 In particular some Debian systems do not load the groff(1) extensions package and do not have grefer(1)

installed Although this is an oversight on the configuration of the particular Debian system we accomodatesuch misconfiguration with this feature

66 OpenSS7 SS7 Stack

--with k-safe--without k-safe

Specifies whether kernel saftey is to be performed Mutually exclusive withdebug and test above This has the effect of invoking some more pedanticassertion macros in the code The default is not to apply kernel safety

--with k-inline--without k-inline

Specifies whether kernel inline functions are to be placed inline This hasthe effect of adding the lsquo-finline-functionsrsquo flag to CFLAGS for compil-ing kernel modules Linux 24 kernels are normally compiled lsquo-O2rsquo whichdoes not respect the inline directive This compiles kernel modules withlsquo-finline-functionsrsquo to get closer to lsquo-O3rsquo optimization For better opti-mization controls See Section 635 [Configuring the Tar Ball] page 67

--with k-modversions--without k-modversions

Specifies whether kernel symbol versions are to be applied to symbols exportedby package kernel modules The default is to version exported module symbolsThis package does not export symbols so this option has no effect

--with devfs--without devfs

Specifies whether the build is for a device file system daemon enabled systemwith autoloading or not The default is to build for devfsd(1) autoloadingwhen CONFIG DEVFS FS is defined in the target kernel The lsquorebuildrsquo tar-get uses this option to signal to the RPM spec file that the lsquodevrsquo subpackageneed not be built This option does not appear when the package has no devices

--with devel--without devel

Specifies whether to build development environment packages such as those thatinclude header files static libraries manual pages and texinfo(1) documen-tation The default is to build development environment packages This optioncan be useful when building for an embedded target where only the runtimecomponents are desired

--with docs--without docs

Specifies whether to build and install major documentation such manual pagesand texinfo(1) documentation The default is to build and install documen-tation This option can be useful when building for an embedded target whereonly the runtime and static compile components are desired but not majordocumentation This option does not override the setting of --without devel

--with tools--without tools

Specifies whether user space packages are to be built The default is to builduser space packages This option can be useful when rebuilding for multiplearchitectures and target kernels The lsquorebuildrsquo automake(1) target uses this

Chapter 6 Installation 67

feature when rebuilding for all available architectures and kernels to rebuilduser packages once per architecture instead of once per kernel

--with modules--without modules

Specifies whether kernel modules packages are to be built The default is tobuild kernel module packages This option can be useful when rebuilding formultiple architectures and target kernels The lsquorebuildrsquo automake(1) targetuses this feature to rebuild for all available architectures and kernels

--with lis--without lis

Specifies that the package is to be rebuilt against Linux STREAMS The defaultis to automatically identify whether lsquoLiSrsquo or lsquostreamsrsquo is loaded on the buildsystem and build accordingly

--with lfs--without lfs

Specifies that the package is to be rebuilt against Linux Fast-STREAMS Thedefault is to automatically identify whether lsquoLiSrsquo or lsquostreamsrsquo is loaded on thebuild system and build accordingly

In general the default values of these options are sufficient for most purposes and no optionsneed be provided when rebuilding the Source RPMs

Build

To build from the source RPM See Section 641 [Building from the Source RPM] page 77

634 Configuring the Debian DSC

The Debian DSC can be configured by passing options in the environment variableBUILD DEBOPTIONS The options placed in this variable take the same form as thosepassed to the lsquoconfigurersquo script See Section 635 [Configuring the Tar Ball] page 67 Foran example See Section 642 [Building from the Debian DSC] page 78

Build

To build from the Debian DSC See Section 642 [Building from the Debian DSC] page 78

635 Configuring the Tar Ball

All of the normal GNU autoconf(1) configuration options and environment variables applyAdditional options and environment variables are provided to tailor or customize the buildand are described below

6351 Configure Options

This is a generic description of common lsquoconfigurersquo options that are in addition to thoseprovided by autoconf(1) automake(1) libtool(1) and gettext(1)Not all lsquoconfigurersquo options are applicable to all release packages Options that arekernel module specific are only applicable to release packages that build kernel modulesSTREAMS options are only applicable to release packages that provide or requireSTREAMS

68 OpenSS7 SS7 Stack

Following are the additional lsquoconfigurersquo options their meaning and use

--enable-checks--disable-checks

Enable or disable preinstall checks Each release package supports a numberof preinstall checks that can be performed by invoking the lsquocheckrsquo target withmake(1) These currently consist of checking each kernel module for unresolvedkernel symbols checking for documentation for exported kernel module sym-bols checking for documentation for exported library symbols checking forstandard options for build and installable programs checking for documenta-tion for built and installable programs Normally these checks are only run inmaintainer mode but can be enabled and disabled with this option

--enable-autotest--disable-autotest

Enable or disable pre- and post-installation testing Each release package sup-ports a number of autotest test suites that can be performed by invokingthe lsquoinstallcheckrsquo target with make(1) These currently consist of runninginstalled modules commands and binaries against a number of specific testcases Normally these checks are only run in maintainer mode but can beenabled and disabled with this option

--disable-compress-manpagesCompress manual pages with lsquogzip -9rsquo or lsquobzip2 -9rsquo or leave them uncom-pressed The default is to compress manual pages with lsquogzip -9rsquo or lsquobzip2 -9rsquoif a single compressed manual page exists in the target installation directory(lsquo--mandirrsquo) This disables automatic compression

--disable-publicDisable public release This option is not usable on public releases and only hasa usable effect on OpenSS7 SS7 Stack when the package is acquired from CVSIn particular the STREAMS SS7VoIPISDNSIGTRAN Stacks (strss7-09a8) release package has a large number of non-public components Speci-fying this option will cause the package to build and install all private releasecomponents in addition to the public release components This option affects allrelease packages Most release packages do not have private release components

--disable-initscriptsDisables the installation of init scripts The default is to configure and installinit scripts and their associated configuration filesAlthough the default is to install init scripts installation attempts to detect aSystem V init script configuration and if one is not found the init scripts areinstalled into the appropriate directories but the symbolic links to the run levelscript directories are not generated and the script is not invoked Therefore itis safe to leave this option unchanged even on distributions that do not supportSystem V init script layout

--disable-32bit-libsDisables the build and install of 32-bit compatibility libraries and test binarieson 64-bit systems that support 32-bit compatibility The default is to build

Chapter 6 Installation 69

and install 32-bit compatibility libraries and test binaries This option canbe usefule when configuring for an embedded target where only native sharedlibraries and binaries are desired

--disable-develDisables the installation of development environment components such asheader files static libraries manual pages and texinfo(1) documentationThe default is to install development environment components This optioncan be useful when configuring for an embedded target where only the runtimecomponents are desired or when performing a edit-compile-test cycle

--disable-docsDisables the build and installation of major documentation such manual pagesand texinfo(1) documentation The default is to build and install documen-tation This option can be useful when building for an embedded target whereonly the runtime and static compile components are desired but not major doc-umentation This option does not override the setting of lsquo--disable-develrsquo

--enable-toolsSpecifies whether user space programs and libraries are to be built and installedThe default is to build and install user space programs and libraries This optioncan be useful when rebuilding for multiple architectures and target kernelsparticularly under rpm(1) or dpkg(1) The lsquorebuildrsquo automake(1) target usesthis feature when rebuilding RPMs for all available architectures and kernelsto rebuild user packages once per architecture instead of once per kernel

--enable-modulesSpecifies whether kernel modules are to be built and installed The default is tobuild and install kernel modules This option can be useful when rebuilding formultiple architectures and target kernels particularly under rpm(1) or dpkg(1)The lsquorebuildrsquo automake(1) target uses this feature to rebuild for all availablearchitectures and kernels This option has no effect for release packages thatdo not provide kernel modules

--enable-archSpecifies whether architectural dependent package components are to be builtand installed This option can be useful when rebuilding for multiple architec-tures and target kernels particularly under dpkg(1) The default is to config-ure build and install architecture dependent package components This optionhas no effect for release packages that do not provide architecture dependentcomponents

--enable-indepSpecifies whether architecture independent package components are to be builtand installed This option can be useful when rebuilding for multiple architec-tures and target kernels particularly under dpkg(1) The default is to con-figure build and install architecture independent package components Thisoptions has no effect for release packages that do not provide architecture in-dependent components

70 OpenSS7 SS7 Stack

--enable-k-inlineEnable kernel inline functions Most Linux kernels build withoutlsquo-finline-functionsrsquo This option adds the lsquo-finline-functionsrsquo andlsquo-Winlinersquo flags to the compilation of kernel modules Use with care Thisoption has no effect for release packages that do not provide kernel modules

--enable-k-safeEnable kernel module run-time safety checks Specifies whether kernel safety isto be performed This option is mutually exclusive with lsquo--enable-k-testrsquo andlsquo--enable-k-debugrsquo below This has the effect of invoking some more pedanticassertion macros in the code The default is not to apply kernel safety Thisoption has no effect for release packages that have are no kernel modules

--enable-k-testEnable kernel module run-time testing Specifies whether kernel testing is to beperformed This option is mutually exclusive with lsquo--enable-k-safersquo aboveand lsquo--enable-k-debugrsquo below This has the effect of remove static andinline attributes from functions and invoking most non-performance affectingdebugging macros in the code The default is not to perform kernel testing Thisoption has no effect for release packages that do not provide kernel modules

--enable-k-debugEnable kernel module run-time debugging Specifies whether kernel debuggingis to be performed This option is mutually exclusive with lsquo--enable-k-safersquoand lsquo--enable-k-testrsquo above This has the effect of removing static andinline attributes from functions and invoking all debugging macros in thecode (including performance-affecting debug macros) The default is to notperform kernel debugging This option has no effect for release packages thatdo not provide kernel modules

--disable-k-modversionsDisable module versions on strss7 symbols Specifies whether kernel symbolversions are to be used on symbols exported from built strss7 modules Thedefault is to provide kernel symbol versions on all exported symbols Thisoption has no effect for release packages that do not provide kernel modules

--enable-devfs--disable-devfs

Specifies whether the build is for a device file system daemon enabled systemwith autoloading or not The default is to build for devfsd(8) autoload-ing when CONFIG DEVFS FS is defined in the target kernel The lsquoreuildrsquoautomake(1) target uses this option to signal to the RPM spec file that the lsquodevrsquosubpackage need not be built This option has no effect for release packagesthat do not provide devices

--with-gpg-user=GNUPGUSERSpecify the gpg(1) lsquoGNUPGUSERrsquo for signing RPMs and tarballs The defaultis the content of the environment variable GNUPGUSER If unspecified thegpg(1) program will normally use the user name of the account invoking thegpg(1) program For building source RPMs the RPM macro lsquo_gpg_namersquo willoverride this setting

Chapter 6 Installation 71

--with-gpg-home=GNUPGHOMESpecify the lsquoGNUPGHOMErsquo directory for signing RPMs and tarballs The defaultis the userrsquos lsquo~gpgrsquo directory For building source RPMs the RPM macrolsquo_gpg_pathrsquo will override this setting

--with-pkg-epoch=EPOCHSpecifies the epoch for the package This is neither used for rpm(1) nor dpkg(1)packages it applies to the tarball release as a whole The default is the contentsof the lsquopkgepochrsquo file in the release package source directory or if that file doesnot exist zero (0)

--with-pkg-release=RELEASESpecifies the release for the package This is neither used for rpm(1) nordpkg(1) packages it applies to the tarball release as a whole The defaultis the contents of the lsquopkgreleasersquo file in the release package source directoryor if that file does not exist one (1) This is the number after the last pointin the package version number

--with-pkg-distdir=DIRSpecifies the distribution directory for the package This is used by the main-tainer for building distributions of tarballs This is the directory into whicharchives are copied for distribution The default is the top build directory

--with-cooked-manpagesConvert manual pages to remove macro dependencies and grefer(1) refer-ences Some systems do not like grefer(1) references in manual pages33 Thisoption will cook soelim(1) refer(1) tbl(1) and pic(1) commands fromthe manual pages and also strip groff(1) comments The default is to leavemanual pages uncooked (they are actually smaller that way)

--with-rpm-epoch=PACKAGE_EPOCHSpecify the lsquoPACKAGE_EPOCHrsquo for the RPM spec file The default is to use theRPM epoch contained in the release package file lsquorpmepochrsquo

--with-rpm-release=PACKAGE_RPMRELEASESpecify the lsquoPACKAGE_RPMRELEASErsquo for the RPM lsquospecrsquo file The default is touse the RPM release contained in the release package file lsquorpmreleasersquo

--with-rpm-extra=PACKAGE_RPMEXTRASpecify the lsquoPACKAGE_RPMEXTRArsquo extra release information for the RPM specfile The default is to use the RPM extra release information contained in therelease package file lsquorpmextrarsquo Otherwise this value will be determined fromautomatic detection of the RPM distribution

--with-rpm-topdir=PACKAGE_RPMTOPDIRSpecify the lsquoPACKAGE_RPMTOPDIRrsquo top directory for RPMs If specified with anull lsquoPACKAGE_RPMTOPDIRrsquo the default directory for the RPM distribution willbe used If this option is not provided on the command line the top builddirectory will be used as the RPM top directory as well

33 In particular some Debian or Ubuntu systems do not load the groff(1) extensions package and do not havegrefer(1) installed Although this is an oversight on the configuration of the particular Debian or Ubuntusystem we accomodate such misconfiguration with this feature

72 OpenSS7 SS7 Stack

--with-deb-epoch=EPOCHSpecify the lsquoPACKAGE_DEBEPOCHrsquo for the DEB control file The default is to usethe DEB epoch contained in the release package file lsquodebepochrsquo

--with-deb-release=RELEASESpecify the lsquoPACKAGE_DEBRELEASErsquo for the DEB control file The default is touse the DEB release contained in the release package file lsquodebreleasersquo

--with-deb-topdir=DIRSpecify the lsquoPACKAGE_DEBTOPDIRrsquo top directory for DEBs If specified with anull lsquoPACKAGE_DEBTOPDIRrsquo the default directory for the DEB distribution willbe used If this option is not provided on the command line the top builddirectory will be used as the DEB top directory as well

--with-k-release=PACKAGE_KRELEASESpecify the lsquoPACKAGE_KRELEASErsquo release of the Linux kernel for which the buildis targeted When not cross compiling if this option is not set the build willbe targeted at the kernel running in the build environment (eg lsquouname -rrsquo)When cross-compiling this option must be specified or the configure script willgenerate an error and terminate

--with-k-linkage=PACKAGE_KLINKAGESpecify the lsquoPACKAGE_KLINKAGErsquo for kernel module linkage This can be one ofthe followingbull lsquoloadablersquo ndash loadable kernel modulesbull lsquolinkablersquo ndash linkable kernel objects

The default is to build loadable kernel modules

--with-k-modules=K-MODULES-DIRSpecify the lsquoK-MODULES-DIRrsquo directory to which kernel modules will be installedThe default is based on the option lsquo--with-k-releasersquo lsquo--with-k-prefixrsquoand lsquo--with-k-rootdirrsquo The default is lsquoDESTDIRrsquolsquoK-MODULES-DIRrsquo which istypically lsquoDESTDIRlibmodulesPACKAGE_KRELEASErsquo This directory is nor-mally located by the lsquoconfigurersquo script and need only be provided for specialcross-build environments or when requested by a lsquoconfigurersquo script error mes-sage

--with-k-build=K-BUILD-DIRSpecify the lsquoK-BUILD-DIRrsquo base kernel build directory in which configured kernelsource resides The default is lsquoDESTDIRK-MODULES-DIRbuildrsquo This direc-tory is normally located by the lsquoconfigurersquo script and need only be providedfor special cross-build environments or when requested by a lsquoconfigurersquo scripterror message

--with-k-source=K-SOURCE-DIRSpecify the lsquoK-SOURCE-DIRrsquo base kernel build directory in which configuredkernel source resides The default is lsquoDESTDIRK-MODULES-DIRsourcersquo Thisdirectory is normally located by the lsquoconfigurersquo script and need only be pro-vided for special cross-build environments or when requested by a lsquoconfigurersquoscript error message

Chapter 6 Installation 73

--with-k-modver=K-MODVER-FILESpecify the lsquoK-MODVER-FILErsquo kernel module versions file The default is lsquoK-BUILD-DIRModulesymversrsquo This file is normally located by the lsquoconfigurersquoscript and need only be provided for special cross-build environments or whenrequested by a lsquoconfigurersquo script error message

--with-k-sysmap=K-SYSMAP-FILESpecify the lsquoK-SYSMAP-FILErsquo kernel system map file The default is lsquoK-BUILD-DIRSystemmaprsquo This file is normally located by the lsquoconfigurersquo script andneed only be provided for special cross-build environments or when requestedby a lsquoconfigurersquo script error message

--with-k-archdir=K-ARCHDIRSpecify the lsquoK-ARCHDIRrsquo kernel source architecture specific directory The de-fault is lsquoDESTDIRK-SOURCE-DIRarchrsquo This directory is normally located bythe lsquoconfigurersquo script and need only be provided for special cross-build envi-ronments or when requested by a lsquoconfigurersquo script error message

--with-k-machdir=K-MACHDIRSpecify the lsquoK-MACHDIRrsquo kernel source machine specific directory The defaultis lsquoDESTDIRK-SOURCE-DIRtarget_cpu rsquo This directory is normally locatedby the lsquoconfigurersquo script and need only be provided for special cross-buildenvironments or when requested by a lsquoconfigurersquo script error message

--with-k-config=K-CONFIGSpecify the lsquoK-CONFIGrsquo kernel configuration file The default is lsquoBOOTconfig-K-RELEASE rsquo This configuration file is normally located by the lsquoconfigurersquoscript and need only be provided for special cross-build environments or whenrequested by a lsquoconfigurersquo script error message

--with-k-optimize=HOW--without-k-optimize

Specify lsquoHOWrsquo optimization normal size speed or quick size compiles kernelmodules -Os speed compiles kernel modules -O3 and quick compiles kernelmodules -O0 The default is normal Use with care The most common useof this option is to specify lsquo--with-k-optimize=speed --disable-k-safersquo tocompile for maximum performance Nevertheless even these setting are ricingand the resulting kernel modules will only be about 5 faster

--with-lis[=LIS-DIR]--without-lis

Specify the lsquoLIS-DIRrsquo directory in which to find LiS headers Also specifiesthat the build is to be made against Linux STREAMS The default is lsquousrincludeLiSrsquo if it exists lsquonorsquo otherwise This directory is normally located bythe lsquoconfigurersquo script and need only be provided for special cross-build envi-ronments or when requested by a lsquoconfigurersquo script error message This optionhas no effect on release packages that do not use the STREAMS subsystem

74 OpenSS7 SS7 Stack

--with-lfs[=LFS-DIR]--without-lfs

Specify the lsquoLFS-DIRrsquo directory in which to find LfS headers Also specifiesthat the build is to be made against Linux Fast-STREAMS The default islsquousrincludestreamsrsquo if it exists lsquonorsquo otherwise This directory is normallylocated by the lsquoconfigurersquo script and need only be provided for special cross-build environments or when requested by a lsquoconfigurersquo script error messageThis option has no effect on release packages that do not use the STREAMSsubsystem

--with-strconf-master=STRCONF_CONFIGSpecify the lsquoSTRCONF_CONFIGrsquo file name to which the configuration master fileis written The default is lsquoConfigmasterrsquo This option has no effect on releasepackages that do not use the STREAMS subsystem and the strconf scriptsThis option should not be specified when configuring the master package as thesetting for all add-on packages will conflict

--with-base-major=STRCONF_MAJBASEStart numbering for major devices at lsquoSTRCONF_MAJBASErsquo The default is lsquo230rsquoThis option has no effect on release packages that do not use the STREAMSsubsystem and the strconf scripts This option should not be specified whenconfiguring the master package as the setting for all add-on packages will con-flict

6352 Environment Variables

Following are additional environment variables to lsquoconfigurersquo their meaning and use

GPG GPG signature command This is used for signing distributions by the main-tainer By default lsquoconfigurersquo will search for this tool

GNUPGUSERGPG user name This is used for signing distributions by the maintainer

GNUPGHOMEGPG home directory This is used for signing distributions by the maintainer

GPGPASSWDGPG password for signing This is used for signing distributions by the main-tainer This environment variable is not maintained by the lsquoconfigurersquo scriptand should only be used on an isolated system

SOELIM Roff source elimination command soelim(1) This is only necessary when theoption lsquo--with-cooked-manpagesrsquo has been specified and lsquoconfigurersquo cannotfind the proper soelim(1) command By default lsquoconfigurersquo will search forthis tool

REFER Roff references command refer(1) This is only necessary when the optionlsquo--with-cooked-manpagesrsquo has been specified and lsquoconfigurersquo cannot find theproper refer(1) command By default lsquoconfigurersquo will search for this tool

TBL Roff table command tbl(1) This is only necessary when the optionlsquo--with-cooked-manpagesrsquo has been specified and lsquoconfigurersquo cannot findthe proper tbl(1) command By default lsquoconfigurersquo will search for this tool

Chapter 6 Installation 75

PIC Roff picture command pic(1) This is only necessary when the optionlsquo--with-cooked-manpagesrsquo has been specified and lsquoconfigurersquo cannot findthe proper pic(1) command By default lsquoconfigurersquo will search for this tool

GZIP Default compression options provided to GZIP_CMD

GZIP CMDManpages (and kernel modules) compression commands gzip(1) This is onlynecessary when the option lsquo--without-compressed-manpagesrsquo has not beenspecified and lsquoconfigurersquo cannot find the proper gzip(1) command By de-fault lsquoconfigurersquo will search for this tool

BZIP2 Default compression options provided to BZIP2_CMD

BZIP2 CMDManpages compression commands bzip2(1) This is only necessary whenthe option lsquo--without-compressed-manpagesrsquo has not been specifiedand lsquoconfigurersquo cannot find the proper bzip2(1) command By defaultlsquoconfigurersquo will search for this tool

MAKEWHATISManpages apropros database rebuild command makewhatis(8) By defaultlsquoconfigurersquo will search for this tool By default lsquoconfigurersquo will search forthis tool

CHKCONFIGChkconfig command chkconfig(8) This was used for installation of initscripts All packages now come with init_install(8) and init_remove(8)scripts used to install and remove init scripts on both RPM and Debian sys-tems

RPM Rpm command rpm(1) This is only necessary for RPM builds By defaultlsquoconfigurersquo will search for this tool

RPMBUILDBuild RPM command rpmbuild(1) This is only necessary for RPM buildsBy default lsquoconfigurersquo will search for this tool rpm(1) will be used insteadof rpmbuild(1) only if rpmbuild(1) cannot be found

DPKG Dpkg comand dpkg(1) This command is used for building Debian packagesBy default lsquoconfigurersquo will search for this tool

DPKG SOURCEDpkg-source command dpkg-source(1) This command is used for buildingDebian dsc packages By default lsquoconfigurersquo will search for this tool

DPKG BUILDPACKAGEDpkg-buildpackage command dpkg-buildpackage(1) This command is usedfor building Debian deb packages By default lsquoconfigurersquo will search for thistool

DEB BUILD ARCHDebian build architecture This variable is used for building Debian packagesThe default is the autoconf build architecture

76 OpenSS7 SS7 Stack

DEB BUILD GNU CPUDebian build cpu This variable is used for building Debian packages Thedefault is the autoconf build cpu

DEB BUILD GNU SYSTEMDebian build os This variable is used for building Debian packages The defaultis the autoconf build os

DEB BUILD GNU TYPEDebian build alias This variable is used for building Debian packages Thedefault is the autoconf build alias

DEB HOST ARCHDebian host architecture This variable is used for building Debian packagesThe default is the autoconf host architecture

DEB HOST GNU CPUDebian host cpu This variable is used for building Debian packages Thedefault is the autoconf host cpu

DEB HOST GNU SYSTEMDebian host os This variable is used for building Debian packages The defaultis the autoconf host os

DEB HOST GNU TYPEDebian host alias This variable is used for building Debian packages Thedefault is the autoconf host alias

LDCONFIGConfigure loader command ldconfig(8) Command used to configure theloader when libraries are installed By default lsquoconfigurersquo will search for thistool

DESTDIR Cross build root directory Specifies the root directory for build and installation

DEPMODBuild kernel module dependencies command depmod(8) This is used dur-ing installation of kernel modules to a running kernel to rebuild the modulesdependency database By default lsquoconfigurersquo will search for this tool

MODPROBEProbe kernel module dependencies command modprobe(8) This is used duringinstallation of kernel modules to a running kernel to remove old modules Bydefault lsquoconfigurersquo will search for this tool

LSMOD List kernel modules command lsmod(8) This is used during installation ofkernel modules to a running kernel to detect old modules for removal Bydefault lsquoconfigurersquo will search for this tool

LSOF List open files command lsof(1) This is used during installation of kernelmodules to a running kernel to detect old modules for removal Processes own-ing the old kernel modules will be killed and the module removed If the processrestarts the new module will be demand loaded By default lsquoconfigurersquo willsearch for this tool

Chapter 6 Installation 77

GENKSYMSGenerate kernel symbols command genksyms(8) This is used for generatingmodule symbol versions during build By default lsquoconfigurersquo will search forthis tool

KGENKSYMSLinux 26 generate kernel symbols command genksyms(8) This is used forgenerating module symbol version during build By default lsquoconfigurersquo willsearch for this tool

OBJDUMPObject dumping command objdump(1) This is used for listing informationabout object files By default lsquoconfigurersquo will search for this tool

NM Object symbol listing command nm(1) This is used for listing informationabout object files By default lsquoconfigurersquo will search for this tool

MODPOST CACHECache file for modpost(1) The version of the modpostsh script that ships witheach package can cache information to a cache file to speed multiple builds Thisenvironment variable is used to specify a cache file

AUTOM4TEAutom4te command autom4te(1) This is the executable used by autotestfor pre- and post-installation checks By default lsquoconfigurersquo will search forthis tool

AUTOTESTAutotest macro build command autom4te(1) This is the executable used byautotest for pre- and post-installation checks By default lsquoconfigurersquo willsearch for this tool

6353 Build

To build from the tar ball See Section 643 [Building from the Tar Ball] page 78

64 Building

641 Building from the Source RPM

If you have downloaded the necessary source RPM (see Section 625 [Downloading theSource RPM] page 57) then the following instructions will rebuild the binary RPMs onyour system Once the binary RPMs are rebuilt you may install them as described above(see Section 651 [Installing the Binary RPM] page 79)The source RPM is rebuilt to binary RPMs as follows wget httpwwwopenss7orgrpmsSRPMSstrss7-09a8-1srcrpm rpmbuild --rebuild -vv strss7-09a8-1srcrpm

The rebuild process can also recognize a number of options that can be used to tweak theresulting binaries See Section 633 [Configuring the Source RPM] page 63 These optionsare provided on the rpm(1) command line For example

78 OpenSS7 SS7 Stack rpmbuild --rebuild -vv --target athlon-redhat-linux

--define _kversion 2420-287 --with lfs -- strss7-09a8-1srcrpm

will rebuild binary RPM for the lsquo2420-287rsquo kernel for the lsquoathlonrsquo architecture againstthe Linux Fast-STREAMS STREAMS package34

Installation

To install the resulting binary RPM See Section 651 [Installing the Binary RPM] page 79

642 Building from the Debian DSC

If you have downloaded the necessary Debian DSC (see Section 626 [Downloading theDebian DSC] page 57) then the following instructions will rebuild the binary DEBs onyour system Once the binary DEBs are rebuilt you may install them as described above(see Section 652 [Installing the Debian DEB] page 80)The Debian DSC is rebuilt to binary DEBs as follows wget httpwwwopenss7orgdebianstrss7_09a8-0dsc wget httpwwwopenss7orgdebianstrss7_09a8-0targz dpkg-buildpackage -v strss7_09a8-0dsc

The rebuild process can also recognize a number of options that can be used to tweak theresulting binaries See Section 634 [Configuring the Debian DSC] page 67 These optionsare provided in the environment variable BUILD DPKGOPTIONS and have the same formas the options to lsquoconfigurersquo See Section 635 [Configuring the Tar Ball] page 67 Forexample BUILD_DEBOPTIONS=rsquo

--with-lfs--with-k-release=2420-287--host=athlon-debian-linux-gnursquo

dpkg-buildpackage -v strss7_09a8-0dsc

will rebuild binary DEB for the lsquo2420-287rsquo kernel for the lsquoathlonrsquo architecture againstthe Linux Fast-STREAMS STREAMS package35

Installation

To install the resulting binary DEB See Section 652 [Installing the Debian DEB] page 80

643 Building from the Tar Ball

If you have downloaded the tar ball (see Section 627 [Downloading the Tar Ball] page 58)then the following instructions will rebuild the package on your system (Note that thebuild process does not required root privilege)

34 Note that the lsquo_kversionrsquo of lsquo2420-287rsquo is only an example35 Note that the lsquo_kversionrsquo of lsquo2420-287rsquo is only an example

Chapter 6 Installation 79

6431 Native Build

Following is an example of a native build against the running kernel wget httpwwwopenss7orgstrss7-09a8tarbz2 tar -xjvf strss7-09a8tarbz2 pushd strss7-09a8 configure make popd 6432 Cross-Build

Following is an example for a cross-build The kernel release version must always be specifiedfor a cross-build36 If you are cross-building specify the root for the build with environmentvariable DESTDIR The cross-compile host must also be specified if different from thebuild host Either the compiler and other tools must be in the usual places where GNUautoconf(1) can find them or they must be specified with declarations such as lsquoCC=usrlibppc-linuxgccrsquo on the lsquoconfigurersquo command line wget httpwwwopenss7orgstrss7-09a8tarbz2 tar -xjvf strss7-09a8tarbz2 pushd strss7-09a8 configure DESTDIR=someotherroot --with-k-release=2418 --host sparc-linux make popd 65 Installing

651 Installing the Binary RPM

If you have downloaded the necessary binary RPMs (see Section 623 [Downloading the Bi-nary RPM] page 51) or have rebuilt binary RPMs using the source RPM (see Section 641[Building from the Source RPM] page 77) then the following instructions will install theRPMs on your system For additional information on rpm(1) see rpm(8) pushd RPMSi686 rpm -ihv strss7--09a8-172i686rpm

You must have the correct binary RPMs downloaded or built for this to be successfulSome of the packages are relocatable and can have final installation directories altered withthe lsquo--relocatersquo option to rpm(1) see rpm(8) For example the following will relocatethe documentation and info directories

36 Because it is a cross-build the kernel version on the build machine is unlikely to be the kernel version ofthe target machine except by coincidence

80 OpenSS7 SS7 Stack pushd RPMSi686 rpm -ihv

--relocate rsquousrsharedoc=usrlocalsharedocrsquo --relocate rsquousrshareinfo=usrlocalshareinforsquo -- strss7-doc-09a8-172i686rpm

The previous example will install the lsquostrss7-docrsquo package by will relocate the documen-tation an info directory contents to the lsquousrlocalrsquo version

652 Installing the Debian DEB

If you have downloaded the necessary Debian DEBs (see Section 624 [Downloading the De-bian DEB] page 54) or have rebuild binary DEBs using the Debian DSC (see Section 642[Building from the Debian DSC] page 78) then the following instructions will install theDEBs on your system For additional information see dpkg(8) pushd debian dpkg -iv strss7-_09a8-0_deb

You must have the correct lsquodebrsquo files downloaded or build for this to be successful

653 Installing the Tar Ball

After the build process (see Section 643 [Building from the Tar Ball] page 78) installationonly requires execution of one of two automake(1) targets

lsquomake installrsquoThe lsquoinstallrsquo automake(1) target will install all the components of the pack-age Root privilege is required to successfully invoke this target

lsquomake install-striprsquoThe lsquoinstall-striprsquo automake(1) target will install all the components of thepackage but will strip unnecessary information out of the objects and compressmanual pages Root privilege is required to successfully invoke this target

66 Removing

661 Removing the Binary RPM

To remove an installed version of the binary RPMs (whether obtained from the OpenSS7binary RPM releases or whether created by the source RPM) execute the following com-mand rpm -evv lsquorpm -qa | grep rsquo^strss7-rsquolsquo

For more information see rpm(1)

662 Removing the Debian DEB

To remove and installed version of the Debian DEB (whether obtained from the OpenSS7binary DEB releases or whether created by the Debian DSC) execute the following com-mand

Chapter 6 Installation 81 dpkg -ev lsquodpkg -l | grep rsquo^strss7-rsquolsquo

For more information see dpkg(8)

663 Removing the Source RPM

To remove all the installed binary RPM build from the source RPM see Section 661[Removing the Binary RPM] page 80 Then simply remove the binary RPM package filesand source RPM file A command such as find -name rsquostrss7-rpmrsquo -type f -print0 | xargs --null rm -f

should remove all lsquostrss7rsquo RPMs from your system

664 Removing the Debian DSC

To remove all the installed binary DEB build from the Debian DSC see Section 662[Removing the Debian DEB] page 80 Then simply remove the binary DEB package filesand Debian DSC file A command such as find ( -name rsquostrss7-debrsquo

-o -name rsquostrss7-dscrsquo -o -name rsquostrss7-tar ) -type f -print0 | xargs --null rm -f

should remove all lsquostrss7rsquo DEBs DSCs and TARs from your system

665 Removing the Tar Ball

To remove a version installed from tar ball change to the build directory where the packagewas built and use the lsquouninstallrsquo automake(1) target as follows cd usrsrcstrss7 make uninstall cd rm -fr strss7-09a8 rm -f strss7-09a8targz rm -f strss7-09a8tarbz2

If you have inadvertently removed the build directory and therefore no longer have aconfigured directory from which to execute lsquomake uninstallrsquo then perform all of the stepsfor configuration and installation (see Section 653 [Installing the Tar Ball] page 80) exceptthe final installation and then perform the steps above

67 Loading

671 Normal Module Loading

When OpenSS7 SS7 Stack installs modules and drivers belonging to release packages arenormally configured for demand loading The lsquoinstallrsquo and lsquoinstall-striprsquo automake(1)

82 OpenSS7 SS7 Stack

targets will make the necessary changes to the lsquoetcmodulesconfrsquo file and place the mod-ules in an appropriate place in lsquolibmodules2420-287strss7rsquo The lsquomake installrsquoprocess should have copied the kernel module files lsquostreams-orsquo to the directory lsquolibmodules2420-287strss7rsquo This means that to load any of these modules you cansimply execute for example lsquomodprobe stream-somedriver rsquo37

6711 Linux Fast-STREAMS Module Loading

The lsquostrss7rsquo demand load system supports both the old kerneld and the new kmod mech-anisms for demand loading kernel modules

The convention for lsquostrss7rsquo kernel loadable object files is

bull Their name start with streams-

bull They are placed in lsquolibmodules2420-287streamsrsquo where lsquo2420-287rsquo isan example kernel version

If your kernel has been built using the lsquokerneldrsquo daemon then lsquostrss7rsquo kernel moduleswill automatically load as soon as the STREAMS module is pushed or the driver is openedThe lsquomake installrsquo process makes the necessary changes to the lsquoetcmodulesconfrsquo fileAfter the install you will see lines like the following added to your lsquoetcmodulesconfrsquofile prune modulesstrss7if -f libmoduleslsquouname -rlsquomodulesstrss7include libmoduleslsquouname -rlsquomodulesstrss7endif

which will provide for demand loading of the modules if they have been built and installedfor the running kernel The lsquolibmoduleslsquouname -rlsquomodulesstrss7rsquo file looks likethis alias char-major-245 streams-some_driver

alias char-major-246 streams-other_driver Note that STREAMS modules are not listed in this file but will be loaded by name usinglsquokerneldrsquo if available

Linux Fast-STREAMS has a wider range of kernel module loading mechanisms than isprovided by the deprecated LiS For mechanisms used for kernel module loading underLinux Fast-STREAMS See Section ldquoToprdquo in Linux Fast-STREAMS Reference Manual

6712 Linux STREAMS Module Loading

LiS is deprecated and this section has been deleted

68 Maintenance

37 Note that the lsquo_kversionrsquo of lsquo2420-287rsquo is only an example

Chapter 6 Installation 83

681 Makefile Targets

automake(1) has many targets not all of which are obvious to the casual user In additionOpenSS7 automake(1) files have additional rules added to make maintaining and releasinga package somewhat easier This list of targets provides some help with what targets can beinvoked what they do and what they hope to achieve The available targets are as follows

6811 User Targets

The following are normal targets intended to be invoked by installers of the package Theyare concerned with compiling checking the compile installing checking the installationand removing the package

lsquo[all]rsquo This is also the default target It compiles the package and all release packagesselected by lsquoconfigurersquo This is performed after configuring the source withlsquoconfigurersquo A lsquoMakefilersquo stub is provided so that if the package has not hadautoreconf(1) run (such as when checked out from CVS the package willattempt to run lsquoautoreconf -fivrsquoAll OpenSS7 Project packages are configured without maintainer mode andwithout dependency tracking by default This speeds compilation of the packagefor one-time builds This also means that if you are developing using the sourcepackage (edit-compile-test cycle) changes made to source files will not causethe automatic rebuilding due to dependencies There are two ways to enabledependency tracking specify lsquo--enable-maintainer-modersquo to lsquoconfigurersquo orspecify lsquo--enable-dependency-trackingrsquo to lsquoconfigurersquo I use the formerduring my edit-compile-test cycleThis is a standard GNU automake(1) makefile target This target does notrequire root privilege

lsquocheckrsquo All OpenSS7 Project release packages provide check scripts for the check targetThis step is performed after compiling the package and will run all of the lsquocheckrsquoprograms against the compiled binaries Which checks are performed dependson whether lsquo--enable-maintainer-modersquo was specified to lsquoconfigurersquo If inmaintainer mode checks that assist with the release of the package will berun (such as checking that all manual pages load properly and that they haverequired sections) We recommend running the check stage before installingbecause it catches problems that might keep the installed package from func-tioning properlyAnother way to enable the greater set of checks without invoking maintainermode is to specify lsquo--enable-checksrsquo to lsquoconfigurersquo For more informationsee Section 711 [Pre-installation Checks] page 93This is a standard GNU automake(1) makefile target although the functionsperformed are customized for the OpenSS7 Project This target does not requireroot privilege

lsquoinstallrsquolsquoinstall-striprsquo

The lsquoinstallrsquo target installs the package by installing each release packageThis target also performs some actions similar to the pre- and post-install scripts

84 OpenSS7 SS7 Stack

used by packaging tools such as rpm(1) or dpkg(1) The lsquoinstall-striprsquotarget strips unnecessary symbols from executables and kernel modules beforeinstallingThis is a standard GNU automake(1) makefile target This target requiresroot privilege

lsquoinstallcheckrsquoAll OpenSS7 Project packages provide test scripts for the lsquoinstallcheckrsquo tar-get Test scripts are created and run using autotest (part of the autoconf(1)package) Which test suites are run and how extensive they are depends onwhether lsquo--enable-maintainer-modersquo was specified to lsquoconfigurersquo When inmaintainer mode all test suites will be run When not in maintainer modeonly a few post-install checks will be performed but the test suites themselveswill be installed in lsquousrlibexecstrss7rsquo38 for later useThis is a standard GNU automake(1) makefile target This target might re-quire root privilege Tests requiring root privilege will be skipped when run asa regular user Tests requiring regular account privileges will be skipped whenrun as root

lsquoretestrsquo To complement the lsquoinstallcheckrsquo target above all OpenSS7 Project pack-ages provide the lsquoretestrsquo target as a means to rerun failed conformance testsuite test cases The lsquoretestrsquo target is provided because some test cases in thetest suites have delicate timing considerations that allow them to fail sporadi-cally Invoking this target will retest the failed cases until no cases that are notexpected failures remainThis is an OpenSS7 Project specific makefile target As with lsquoinstallcheckrsquothis target might require root privilege Tests requiring root privilege will beskipped when run as a regular user Tests requiring regular account privilegeswill be skipped when run as root

lsquouninstallrsquoThis target will reverse the steps taken to install the package This target alsoperforms pre- and post- erase scripts used by packaging tools such as rpm ordpkg You need to have a configured build directory from which to execute thistarget however you do not need to have compiled any of the files in that builddirectory39

The lsquouninstallrsquo target unfortunately removes add-on packages in the sameorder in which they were installed This is not good for the OpenSS7 MasterPackage where the lsquoremoversquo target should be used insteadThis is a standard GNU automake(1) makefile target This target requiresroot privilege

lsquoremoversquo This target is like lsquouninstallrsquo with the exception that it removes add-on pack-ages in the reverse order that installation was performed40

38 lsquousrlibexecstrss7rsquo is just an example the actual location is lsquo$libexecdir$PACKAGErsquo which variesfrom distribution to distribution (as some distributions such as Mandriva do not have a libexec directory)

39 Therefore it is possible to download the package configure it and then uninstall it This is handy if youdo not have the sources used to build and install the package immediately available

40 This is useful from the OpenSS7 Master Package

Chapter 6 Installation 85

This is an OpenSS7 Project specific makefile target This target requires rootprivilege

6812 Maintainer Targets

The following targets are targets intended for use by maintainers of the package or those re-sponsible for release and packaging of a derivative work of the package Some of these targetsare only effective when maintainer mode has been invoked (lsquo--enable-maintainer-modersquospecified to lsquoconfigurersquo)

lsquodistrsquo Creates a distribution package (tarball) in the top level build direc-tory OpenSS7 Project packages distribute two archives a lsquogzip tarrsquoarchive and a lsquobzip tarrsquo archive These archives will have the namelsquostrss7-09a8targzrsquo and lsquostrss7-09a8tarbz2rsquo

This is a standard GNU automake(1) makefile target This target does notrequire root privilege

lsquodistcheckrsquoThis target is intended for use when releasing the package It creates the tar(1)archives above and then unpacks the tarball in a source directory configures in aseparate build directory compiles the package installs the package in a separateinstall directory tests the install package to ensure that some components workand finally uses the unpacked source tree to build another tarball If you haveadded or removed files from the package this is a good way to ensure thateverything is still stable for release

This is a standard GNU automake(1) makefile target This target does notrequire root privilege

6813 Clean Targets

lsquomostlycleanrsquoCleans out most of the files from the compile stage This target is helpful if youhave not enabled dependency tracking and need to recompile with changes

This is a standard GNU automake(1) makefile target This target does notrequire root privilege

lsquocleanrsquo Cleans all the files from the build directory generated during the lsquomake [all]rsquophase It does not however remove files from the directory left there from thelsquoconfigurersquo run Use the lsquodistcleanrsquo target to remove those too

This is a standard GNU automake(1) makefile target This target might re-quire root privilege if the lsquoinstallcheckrsquo target or the testsuite was invokedwith root privilege (leaving files belonging to root)

lsquodistcleanrsquoThis target cleans out the directories left behind by lsquodistcheckrsquo and removesall the lsquoconfigurersquo and generated files from the build directory This willeffectively remove all the files in the build directory with the except of filesthat belong to you or some other process

86 OpenSS7 SS7 Stack

This is a standard GNU automake(1) makefile target This target might re-quire root privilege if the lsquoinstallcheckrsquo target or the testsuite was invokedwith root privilege (leaving files belonging to root)

lsquomaintainer-cleanrsquoThis target not only removes files from the build directory it removes generatedfiles from the source directory as well Care should be taken when invoking thistarget because it removes files generated by the maintainer and distributed withthe archive that might require special tools to regenerate These special toolsmight only be available to the maintainer41 It also means that you probablyneed a full blown Linux system to rebuild the package For more informationsee Section 628 [Downloading from CVS] page 59This is a standard GNU automake(1) makefile target This target might re-quire root privilege if the lsquoinstallcheckrsquo target or the testsuite was invokedwith root privilege (leaving files belonging to root)

lsquocheck-cleanrsquoThis target removes log files left behind by the lsquocheckrsquo target By default thecheck scripts append to log files in the top level build directory This targetcan be used to clean out those log files before the next runThis is an OpenSS7 Project specific makefile target This target does not requireroot privilege

6814 Manual Page Targets

The following targets are used to build install and uninstall just the manual pages from thedistribution These targets are good for creating a distribution of just the manual pagesWhen building atop multiple packages these targets recurse down through each package

lsquomansrsquo Build all of the manual pages This involves performing parametersubstitution on manual pages and optionally cooking the manual pages iflsquo--with-cooked-manpagesrsquo was requested during configuration

lsquoinstall-mansrsquoInstalls the manual pages under DESTDIR Specify DESTDIR to place themanual pages wherever you see fit If DESTDIR is not specified on the com-mand line the manual pages will be installed in the normal installation direc-tory

lsquouninstall-mansrsquoUninstalls the manual pages from DESTDIR Specify DESTDIR to indicatewhere to remove the manual pages from If DESTDIR is not specified on thecommand line the manual pages will be removed from the normal installationdirectory

6815 Release Targets

The following are targets used to generate complete releases into the package distributiondirectory These are good for unattended and NFS builds which is what I use them for

41 Theoretically this is true however the OpenSS7 Project does not use any maintainer programs that are notgenerally available (ie open source)

Chapter 6 Installation 87

Also when building from atop multiple packages these targets also recurse down througheach package

lsquoreleasersquo Build all of the things necessary to generate a release On an rpm(1) systemthis is the distribution archives the source rpm and the architecture dependentand architecture independent binary rpms All items are placed in the packagedistribution directory that can be specified with the lsquo--with-pkg-distdir=DIRrsquooption to lsquoconfigurersquo

This is an OpenSS7 Project specific makefile target This target does not requireroot privilege

lsquoforced-releasersquoThe lsquoreleasersquo target will not regenerate any files that already exist in thepackage distribution directory This forced target will

This is an OpenSS7 Project specific makefile target This target does not requireroot privilege

lsquorelease-signrsquoYou will be prompted for a password unless to specify it to make with theGNUPGPASS variable For unattended or non-interactive builds with signingyou can do that as lsquomake GNUPGPASS=mypasswd release-signrsquo

This is an OpenSS7 Project specific makefile target This target does not requireroot privilege

lsquoforced-release-signrsquoThe lsquorelease-signrsquo target will not regenerate any files that already exist inthe package distribution directory This forced target will

This is an OpenSS7 Project specific makefile target This target does not requireroot privilege

lsquorelease-cleanrsquoThis target will remove all distribution files for the current package from thepackage distribution directory

This is an OpenSS7 Project specific makefile target This target does not requireroot privilege

6816 Logging Targets

For convenience to log the output of a number of targets to a file log targets are definedThe log file itself is used as the target to make but make invokes the target minus a lsquologrsquosuffix So for example to log the results of target lsquofoorsquo invoke the target lsquofoologrsquo Theonly target that this does not apply to is lsquocompilelogrsquo When you invoke the targetlsquocompilelogrsquo a simple automake(1) is invoked and logged to the file lsquocompilelogrsquo Thelsquofoologrsquo rule applies to all other targets This does not work for all targets just a selectedfew42 Following are the logging targets

42 Note that because logging targets invoke a pipe automake(1) does not return the correct return status(always returns success if the tee(1) operation is successful) Therefore these targets should not be invokedby scripts that need to use the return value from automake(1)

88 OpenSS7 SS7 Stack

Common Logging Targets

Common logging targets correspond to normal user automake(1) makefile targets as follows

lsquocompilelogrsquoThis is an OpenSS7 Project specific makefile target but it invokes the standardGNU automake(1) makefile target lsquo[all]rsquo

lsquochecklogrsquoThis is an OpenSS7 Project specific makefile target but it invokes the standardGNU automake(1) makefile target lsquocheckrsquo

lsquoinstalllogrsquoThis is an OpenSS7 Project specific makefile target but it invokes the standardGNU automake(1) makefile target lsquoinstallrsquo

lsquoinstallchecklogrsquoThis is an OpenSS7 Project specific makefile target but it invokes the standardGNU automake(1) makefile target lsquoinstallcheckrsquo

lsquouninstalllogrsquoThis is an OpenSS7 Project specific makefile target but it invokes the standardGNU automake(1) makefile target lsquouninstallrsquo

lsquoremovelogrsquoThis is an OpenSS7 Project specific makefile target that invokes the OpenSS7Project lsquoremoversquo target

Maintainer Logging Targets

Maintainer logging targets correspond to maintainer mode automake(1) makefile targetsas follows

lsquodistlogrsquoThis is an OpenSS7 Project specific makefile target but it invokes the standardGNU automake(1) makefile target lsquodistrsquo

lsquodistchecklogrsquoThis is an OpenSS7 Project specific makefile target but it invokes the standardGNU automake(1) makefile target lsquodistcheckrsquo

lsquosrpmlogrsquoThis is an OpenSS7 Project specific makefile target that invokes the OpenSS7Project lsquosrpmrsquo target

lsquorebuildlogrsquoThis is an OpenSS7 Project specific makefile target that invokes the OpenSS7Project lsquorebuildrsquo target

lsquoresignlogrsquoThis is an OpenSS7 Project specific makefile target that invokes the OpenSS7Project lsquoresignrsquo target

lsquoreleaselogrsquoThis is an OpenSS7 Project specific makefile target that invokes the OpenSS7Project lsquoreleasersquo target

Chapter 6 Installation 89

lsquorelease-signlogrsquoThis is an OpenSS7 Project specific makefile target that invokes the OpenSS7Project lsquorelease-signrsquo target

If you want to add one simply add it to LOGGING TARGETS in lsquoMakefileamrsquo

6817 Problem Report Targets

To ease problem report generation all logging targets will automatically generate a problemreport suitable for mailing in the file lsquotargetprrsquo for target lsquotargetlogrsquo This problemreport file is in the form of an email and can be sent using the included send-pr script orby invoking the lsquosend-prrsquo makefile targetThere are two additional problem report targets

lsquoprrsquo The lsquoprrsquo target is for independently generating a problem report outside of thebuild or installation process The target will automatically generate a problemreport skeleton suitable for editing and mailing in the file lsquoproblemprrsquo Thisproblem report file is in the form of an email and can be edited and sent directlyor sent using the included send-pr script or by invoking the lsquosend-prrsquo targetThis is an OpenSS7 Project specific makefile target This target does not requireroot privilege

lsquosend-prrsquo The lsquosend-prrsquo target is for finalizing and mailing a problem report generatedeither inside or outside the build and installation process The target will au-tomatically finalize and mail the lsquoproblemprrsquo problem report if it has changedsince the last time that lsquosend-prrsquo was invokedThis is an OpenSS7 Project specific makefile target This target does not requireroot privilege (unless the problem report file was generated as root)

6818 Release Archive Targets

The following targets are used to generate and clean distribution archive and signature filesWhereas the lsquodistrsquo target affects archives in the top build directory the lsquorelease-archiversquotargets affects archives in the package distribution directory (either the top build directoryor that specified with lsquo--with-pkg-distdir=DIRrsquo to lsquoconfigurersquo)You can change the directory to which packages are distributed by using thelsquo--with-pkg-distdir=DIRrsquo option to lsquoconfigurersquo The default directory is the top builddirectory

lsquorelease-archivesrsquoThis target creates the distribution archive files if they have not already beencreated This not only runs the lsquodistrsquo target but also copies the files to thedistribution directory which by default is the top build directoryThe files generated are namedlsquostrss7-09a8targzrsquo and lsquostrss7-09a8tarbz2rsquoYou can change this distribution directory with the lsquo--with-pkg-distdirrsquo op-tion to lsquoconfigurersquo See lsquoconfigure --helprsquo for more details on optionsThis is an OpenSS7 Project specific makefile target This target does not requireroot privilege

90 OpenSS7 SS7 Stack

lsquorelease-sign-archivesrsquoThis target is like lsquorelease-archivesrsquo except that it also signs the archivesusing a GPG detached signature You will be prompted for a password unlessyou pass the GNUPGPASS variable to make For automated or unattendedbuilds pass the GNUPGPASS variable like solsquomake GNUPGPASS=mypasswd release-sign-archivesrsquoSignature files will be namedlsquostrss7-09a8targzascrsquo and lsquostrss7-09a8tarbz2ascrsquoThese files will be moved to the package distribution directory with the plaintext archivesThis is an OpenSS7 Project specific makefile target This target does not requireroot privilege

lsquorelease-clean-archivesrsquoThis target will clean the release archives and signature files from the packagedistribution directoryThis is an OpenSS7 Project specific makefile target This target does not requireroot privilege

6819 RPM Build Targets

On rpm(1) systems or systems sporting rpm packaging tools the following targets are usedto generate rpm(1) release packages The epoch and release number can be controlled by thecontents of the lsquorpmepochrsquo and lsquorpmreleasersquo files or with the lsquo--with-rpm-epoch=EPOCHrsquoand lsquo--with-rpm-release=RELEASErsquo options to lsquoconfigurersquo See lsquoconfigure --helprsquo formore information on options We always use release number lsquo1rsquo You can use releasenumbers above lsquo1rsquo

lsquosrpmrsquo This target generates the source rpm for the package (without signing the sourcerpm) The source rpm will be named lsquostrss7-09a8-1srpmrsquoThis is an OpenSS7 Project specific makefile target This target does not requireroot privilege

lsquorpmsrsquo This target is responsible for generating all of the package binary rpms for thearchitecture The binary rpms will be namedlsquostrss7--09a8-1rpmrsquowhere the stars indicate the subpackage and the architecture Both the archi-tecture specific subpackages (binary objects) and the architecture independent(lsquonoarchrsquo) subpackages will be built unless the the former was disabled withthe option lsquo--disable-archrsquo or the later with the option lsquo--disable-indeprsquopassed to lsquoconfigurersquoThis is an OpenSS7 Project specific makefile target This target does not requireroot privilege

lsquosignrsquolsquosrpm-signrsquo

These two targets are the same When invoked they will add a signature tothe source rpm file provided that the file does not already have a signature

Chapter 6 Installation 91

You will be prompted for a password if a signature is required Automated orunattended builds can be achieved by using the emake expect script includedin lsquo$srcdirscriptsemakersquoThis is an OpenSS7 Project specific makefile target This target does not requireroot privilege

lsquorebuildrsquo This target accepts searches out a list of kernel names from thelsquo$DESTDIRlibmodulesrsquo directory and builds rpms for those kernels andfor each of a set of architectures given in the AM RPMTARGETS variable tomake This is convenience target for building a group of rpms on a given buildmachineThis is an OpenSS7 Project specific makefile target This target does not requireroot privilege

lsquoresignrsquo This target will search out and sign with a GPG signature the source rpm andall of the binary rpms for this package that can be found in the package distri-bution directory This target will prompt for a GPG password Automated orunattended builds can be achieved with the emake expect script located herelsquo$srcdirscriptsemakersquoThis is an OpenSS7 Project specific makefile target This target does not requireroot privilege

68110 Debian Build Targets

On Debian systems or systems sporting Debian packaging tools the following targets areused to generate Debian release packages The release number can be controlled by thecontents of the lsquodebreleasersquo file or with the lsquo--with-debrelease=RELEASENUMBERrsquo optionto lsquoconfigurersquo See lsquoconfigure --helprsquo for more information on options

lsquodscrsquo This target will build the Debian source change package (lsquodscrsquo file) Weuse release number lsquo0rsquo so that the entire tarball is included in the lsquodscrsquo fileYou can use release number lsquo1rsquo for the same purposes Release numbersabove lsquo1rsquo will not include the entire tarball The lsquodscrsquo file will be namedlsquostrss7_09a8-0dscrsquoThis is an OpenSS7 Project specific makefile target This target does not requireroot privilege

lsquosigsrsquo This target signs the lsquodebrsquo files You will be prompted for a password unlessto specify it to make with the GNUPGPASS variableThis is an OpenSS7 Project specific makefile target This target does not requireroot privilege

lsquodebsrsquo This target will build the Debian binary package (lsquodebrsquo file) from thelsquodscrsquo created above (This target will also create the lsquodscrsquo if it hasnot been created already) The subpackage lsquodebrsquo files will be namedlsquostrss7-_09a8-0_debrsquo where the stars indicate the subpackage and thearchitectureThis is an OpenSS7 Project specific makefile target This target does not requireroot privilege

92 OpenSS7 SS7 Stack

lsquocsigrsquo This target signs the lsquodscrsquo file You will be prompted for a password unlessto specify it to make with the GNUPGPASS variableThis is an OpenSS7 Project specific makefile target This target does not requireroot privilege

68111 Documentation Targets

On systems that have doxygen(1) documentation tool the following targets are used togenerate doxygen html documentation

lsquodoxyrsquo This target generates doxygen(1) documetnation from suitably marked sourcesFile containing the necessary documentation marks are discovered automat-ically by configure Doxygen documentation can be generated bus is notdistributed Documentation is cerated in the subdirectory lsquodochtmlrsquo

Chapter 7 Troubleshooting 93

7 Troubleshooting

71 Test Suites

711 Pre-installation Checks

Most OpenSS7 packages including the OpenSS7 SS7 Stack package ship withpre-installation checks integral to the build system Pre-installation checks include checkscripts that are shipped in the lsquoscriptsrsquo subdirectory as well as specialized make targetsthat perform the checks

When building and installing the package from RPM or DEB source packages (seeSection 641 [Building from the Source RPM] page 77 and Section 642 [Building fromthe Debian DSC] page 78) a fundamental set of post-compile pre-installation checksare performed prior to building binary packages This is performed automatically anddoes not require any special actions on the part of the user creating binary packages fromsource packages

When building and installing the package from tarball (see Section 643 [Building fromthe Tar Ball] page 78 and Section 653 [Installing the Tar Ball] page 80) however pre-installation checks are only performed if specifically invoked by the builder of the packagePre-installation checks are invoked after building the package and before installing thepackage Pre-installation checks are performed by invoking the lsquocheckrsquo or lsquochecklogrsquotarget to make when building the package as shown in Example 71 wget httpwwwopenss7orgstrss7-09a8tarbz2 tar -xjvf strss7-09a8tarbz2 pushd strss7-09a8 configure make make check lt------- invoke pre-installation checks popd

Example 71 Invoking Pre-Installation Checks Pre-installation checks fall into two categories System Checks and Maintenance Checks

7111 Pre-Installation System Checks

System Checks are post-compilation checks that can be performed before installing thepackage that check to ensure that the compiled objects function and will be successfully in-stalled When the lsquo--enable-maintainer-modersquo option has not been passed to configureonly System Checks will be performed

For example the steps shown in Example 72 will perform System checks

94 OpenSS7 SS7 Stack wget httpwwwopenss7orgstrss7-09a8tarbz2 tar -xjvf strss7-09a8tarbz2 pushd strss7-09a8 configure make make check lt------ invokes System pre-installation checks popd

Example 72 Invoking System Checks 7112 Pre-Installation Maintenance Checks

Maintenance Checks include all System Checks but also checks to ensure that thekernel modules applications programs header files development tools test programsdocumentation and manual pages conform to OpenSS7 standards When thelsquo--enable-maintainer-modersquo option has been passed to configure Maintenance Checkswill be performed

For example the steps shown in Example 73 will perform Maintenance checks wget httpwwwopenss7orgstrss7-09a8tarbz2 tar -xjvf strss7-09a8tarbz2 pushd strss7-09a8 configure --enable-maintainer-mode make make check lt------ invokes Maintenance pre-installation checks popd

Example 73 Invoking Maintenance Checks 7113 Specific Pre-Installation Checks

A number of check scripts are provided in the lsquoscriptsrsquo subdirectory of the distributionthat perform both System and Maintenance checks These are as follows

check_commandsThis check performs both System and Maintenance checksWhen performing System tests the following tests are performedUnless cross-compiling or unless a program is included in AM_INSTALLCHECK_STD_OPTIONS_EXEMPT every program in bin_PROGRAMS sbin_PROGRAMS andlibexec_PROGRAMS is tested to ensure that the lsquo--helprsquo lsquo--versionrsquo andlsquo--copyingrsquo options are accepted When cross-compiling is is not possible toexecute cross-compiled binaries and these checks are skipped in that caseScript executables on the other hand can be executed on the build host so un-less listed in AM_INSTALLCHECK_STD_OPTIONS_EXEMPT every program in dist_bit_SCRIPTS dist_sbin_SCRIPTS and pkglibexec_SCRIPTS are tested to en-sure that the lsquo--helprsquo lsquo--versionrsquo and lsquo--copyingrsquo options are acceptedWhen performing Maintenance tests check_commands also checks to ensurethat a manual page exists in section 1 for every executable binary or script

Chapter 7 Troubleshooting 95

that will be installed from bin_PROGRAMS and dist_bin_SCRIPTS It alsochecks to ensure that a manual page exists in section 8 for every executable bi-nary or script that will be installed from sbin_PROGRAMS dist_sbin_SCRIPTSlibexec_PROGRAMS and pkglibexec_SCRIPTS

check_declsThis check only performs Maintenance checksIt collects the results from the check_libs check_modules and check_headers check scripts and tests to ensure every declaration of a functionprototype or external variable contained in installed header files has acorresponding exported symbol from either a to be installed shared objectlibrary or a to be installed kernel module Declarations are exemptedfrom this requirement if their identifiers have been explicitly added to theEXPOSED_SYMBOL variable If WARN_EXCESS is set to lsquoyesrsquo then the checkscript will only warn when excess declarations exist (without a correspondingexported symbol) otherwise the check script will generate an error and thecheck will fail

check_headersThis check only performs Maintenance checksWhen performing Maintenance tests it identifies all of the declarations includedin to be installed header files It then checks to ensure that a manual pageexists in sections 2 3 7 or 9 as appropriate for the type of declaration Italso checks to see if a manual page source file exists in the source directoryfor a declaration that has not been included in the distribution Function orprototype declarations that do not have a manual page in sections 2 3 or9 will cause the check to fail Other declarations (lsquovariablersquo lsquoexternvarrsquolsquomacrorsquo lsquoenumeratersquo lsquoenumrsquo lsquostructrsquo lsquounionrsquo lsquotypedefrsquo lsquomemberrsquo etc) willonly warn if a manual page does not exist but will not fail the check

check_libsThis check only performs Maintenance checksWhen performing Maintenance tests it checks that each exported symbol ineach to be installed shared object library has a manual page in section 3 It alsochecks that each exported symbol has a lsquofunctionrsquo lsquoprototypersquo or lsquoexternvarrsquodeclaration in the to be installed header files A missing declaration or manualpage will cause this check to fail

check_mansThis check only performs Maintenance checksWhen performing Maintenance tests it checks that to be install manual pagescan be formatted for display without any errors or warnings from the buildhost man program It also checks that required headings exist for manual pagesaccording to the section in which the manual page will be installed It warnsif recommended headings are not included in the manual pages Because someRPM distributions have manual pages that might conflict with the packagemanual pages this check script also checks for conflicts with installed manualpages on the build host This check script also checks to ensure that all to be

96 OpenSS7 SS7 Stack

installed manual pages are used in some fashion that is they have a declarationor exported symbol or are the name of a kernel module or STREAMS moduleor driver possibly capitalizedNote that checking for conflicts with the build host should probably be includedin the System checks (because System checks are performed before the sourceRPM install scriptlet)

check_modulesThis check performs both System and Maintenance checksWhen performing System tests it checks each to be installed kernel moduleto ensure that all undefined symbols can be resolved to either the kernel oranother module It also checks whether an exported or externally declaredsymbol conflicts with an exported or externally declared symbol present in thekernel or another module1

When performing Maintenance tests this check script tests that each to beinstalled kernel module has a manual page in section 9 and that each exportedsymbol that does not begin with an underscore and that belongs to an exportedfunction or exported variable has a manual page in section 9 It also checks toensure that each exported symbol that does not begin with an underscore andthat belongs to an exported function or exported variable has a lsquofunctionrsquolsquoprototypersquo or lsquoexternvarrsquo declaration in the to be installed header files

check_streamsThis check performs only Maintenance checksWhen performing Maintenance tests it checks that for each configuredSTREAMS module or driver or device node that a manual page exists insection 4 or section 7 as appropriate

The output of the pre-installation tests are fairly self explanatory Each check script savessome output to lsquonamelogrsquo where name is the name of the check script as listed above Asummary of the results of the test are display to standard output and can also be capturedto the lsquochecklogrsquo file if the lsquochecklogrsquo target is used instead of the lsquocheckrsquo target tomakeBecause the check scripts proliferate lsquonamelogrsquo files throughout the build directory a lsquomakecheck-cleanrsquo make target has be provided to clean them out lsquomake check-cleanrsquo shouldbe run before each successive run of lsquomake checkrsquo

712 Post-installation Checks

Most OpenSS7 packages ship with a compatibility and conformance test suite built us-ing the lsquoautotestrsquo capabilities of lsquoautoconfrsquo These test suites act as a wrapper for thecompatibility and conformance test programs that are shipped with the packageUnlike the pre-installation checks the post-installation checks are always run completeThe only check that post-installation test scripts perform is to test whether they havebeen invoked with root privileges or not When invoked as root or as a plain user sometests might be skipped that require root privileges or that require plain user privileges tocomplete successfully

1 This particular check has caught some name space pollution that has occurred in the 2611 kernel

Chapter 7 Troubleshooting 97

7121 Running Test Suites

There are several ways of invoking the conformance test suites

1 The test suites can be run after installation of the package by invoking the lsquomakeinstallcheckrsquo or lsquomake installchecklogrsquo target Some packages require that rootprivileges be acquired before invoking the package

2 The test suites can be run from the distribution subdirectory after installation of thepackage by invoking the testsuite shell script directly

3 The test suites can be run standalone from the lsquolibexecrsquo (lsquousrlibexecrsquo) installationdirectory by invoking the testsuite shell script directly

Typical steps for invoking the test suites directly from make are shown in Example 74 wget httpwwwopenss7orgstrss7-09a8tarbz2 tar -xjvf strss7-09a8tarbz2 pushd strss7-09a8 configure make make check lt------ invokes System pre-installation checks make install sudo make installcheck lt------- invokes post-installation tests popd

Example 74 Invoking System Checks When performing post-installation checks for the purposes of generating a problem re-port the checks should always be performed from the build directory either with lsquomakeinstallcheckrsquo or by invoking testsuite directly from the lsquotestsrsquo subdirectory of thebuild directory This ensures that all of the information known to configure and pertinentto the configuration of the system for which a test case failed will be collected in the re-sulting lsquotestsuitelogrsquo file deposited upon test suite failure in the lsquotestsrsquo directory Thislsquotestsuitelogrsquo file can then be attached as part of the problem report and provides richdetails to maintainers of the package See also See Section 72 [Problem Reports] page 97below

Typical steps for invoking and installed testsuite standalone are shown in Example 75 [sudo] usrlibexecstrss7testsuite

Example 75 Invoking testsuite Directly When invoked directly testsuite will generate a lsquotestsuitelogrsquo file in the current di-rectory and a lsquotestsuitedirrsquo directory of failed tests cases and debugging scripts Forgenerating a problem report for failed test cases see Section 724 [Stand Alone ProblemReports] page 100

72 Problem Reports

98 OpenSS7 SS7 Stack

721 Problem Report Guidelines

Problem reports in the following categories should include a log file as indicated in the tablebelow

lsquoconfigurersquoA problem with the configuration process occurs that causes the lsquoconfigurersquocommand to fail The problem report must include the lsquoconfiglogrsquo file thatwas generated by configure

lsquomake compilelogrsquoA problem with the build process occurs that causes the lsquomakersquo commandto fail Perform lsquomake cleanrsquo and then lsquomake compilelogrsquo and attach thelsquoconfiglogrsquo and lsquocompilelogrsquo files to the problem report

lsquomake checklogrsquoA problem occurs with the lsquomake checkrsquo target that causes it to fail Performlsquomake check-clean checklogrsquo and attach the lsquoconfiglogrsquo lsquocompilelogrsquoand lsquochecklogrsquo files to the problem report

lsquosudo make installlogrsquoA problem occurs with lsquosudo make installrsquo that causes it to fail Performlsquosudo make uninstallrsquo and lsquosudo make installlogrsquo and attach thelsquoconfiglogrsquo lsquocompilelogrsquo lsquochecklogrsquo and lsquoinstalllogrsquo files to theproblem report

lsquo[sudo] make installchecklogrsquoA problem occurs with the lsquomake installcheckrsquo target that causesthe test suite to fail Attach the resulting lsquoteststestsuitelogrsquo andlsquoinstallchecklogrsquo file to the problem report There is no need to attach theother files as they are included in lsquoteststestsuitelogrsquo

lsquo[sudo] make uninstalllogrsquoA problem occurs with the lsquomake uninstallrsquo target that causes the test suiteto fail Perform lsquosudo make uninstalllogrsquo and attach the lsquoconfiglogrsquolsquocompilelogrsquo lsquochecklogrsquo lsquoinstalllogrsquo lsquoinstallchecklogrsquolsquoteststestsuitelogrsquo and lsquouninstalllogrsquo file to the problem report

lsquo[sudo] make removelogrsquoA problem occurs with the lsquomake removersquo target that causes the test suiteto fail Perform lsquosudo make removelogrsquo and attach the lsquoconfiglogrsquolsquocompilelogrsquo lsquochecklogrsquo lsquoinstalllogrsquo lsquoinstallchecklogrsquolsquoteststestsuitelogrsquo and lsquoremovelogrsquo file to the problem report

For other problems that occur during the use of the OpenSS7 SS7 Stack package pleasewrite a test case for the test suite that recreates the problem if one does not yet existand provide a test program patch with the problem report Also include whatever logfiles are generated by the kernel (cmn_err(9)) or by the strerr(8) or strace(1) facilities(strlog(9))

722 Generating Problem Reports

The OpenSS7 Project uses the GNU GNATS system for problem reporting Although thelsquosend-prrsquo tool from the GNU GNATS package can be used for bug reporting to the projectrsquos

Chapter 7 Troubleshooting 99

GNATS database using electronic mail it is not always convenient to download and installthe GNATS system to gain access to the lsquosend-prrsquo toolTherefore the OpenSS7 SS7 Stack package provides the lsquosend-prrsquo shell script that canbe used for problem reporting The lsquosend-prrsquo shell script can invoked directly and is awork-alike for the GNU lsquosend-prrsquo toolThe lsquosend-prrsquo tool takes the same flags and can be used in the same fashion howeverwhereas lsquosend-prrsquo is an interactive tool2 lsquosend-prrsquo is also able to perform batch process-ing Whereas lsquosend-prrsquo takes its field information from local databases or from using thelsquoquery-prrsquo C-language program to query a remote database the lsquosend-prrsquo tool has thefield database internal to the toolProblem reports can be generate using make See Section 6817 [Problem Report Targets]page 89 An example of how simple it is to generate a problem report is illustrated inExample 76 make prSEND-PRSEND-PR send-pr send-pr was invoked to generate an external report AnSEND-PR automated problem report has been created in the file namedSEND-PR rsquoproblemprrsquo in the current directory This problem report canSEND-PR be sent to bugsopenss7org by calling this script asSEND-PR rsquohomebrianos7scriptssend-pr --file=problemprrsquoSEND-PRSEND-PR It is possible to edit some of the fields before sending on theSEND-PR problem report Please remember that there is NO WARRANTY SeeSEND-PR the file rsquoCOPYINGrsquo in the top level directorySEND-PRSEND-PR Please do not send confidential information to the bug reportSEND-PR address Inspect the file rsquoproblemprrsquo for confidentialSEND-PR information before mailingSEND-PR vim problempr lt--- follow instructions at head of file make send-pr

Example 76 Invoking Problem Report Generation Using the lsquomake prrsquo target to generate a problem report has the advantages that it willassemble any available lsquologrsquo files in the build directory and attach them to the problemreport

723 Automatic Problem Reports

The OpenSS7 SS7 Stack package also provides a feature for automatic problem reportgeneration that meets the problem report submission guidelines detailed in the precedingsectionsWhenever a logging makefile target (see Section 6816 [Logging Targets] page 87) is in-voked if the primary target fails the send-pr shell script is invoked to automatically

2 lsquosend-prrsquo launches the userrsquos EDITOR to edit the problem report before submitting it

100 OpenSS7 SS7 Stack

generate a problem report file suitable for the corresponding target (as described aboveunder see Section 721 [Problem Report Guidelines] page 98) An example is shown inExample 77 make compilelogmake[5] [libXNSdrvs_a-ipo] Error 1make[5] Leaving directory lsquou6buildel4strxnsrsquomake[4] [all-recursive] Error 1make[4] Leaving directory lsquou6buildel4strxnsrsquomake[3] [all] Error 2make[3] Leaving directory lsquou6buildel4strxnsrsquomake[2] [all-recursive] Error 1make[2] Leaving directory lsquou6buildel4rsquomake[1] [all] Error 2make[1] Leaving directory lsquou6buildel4rsquoSEND-PRSEND-PR send-pr Make target compilelog failed in the compile stage AnSEND-PR automated problem report has been created in the file namedSEND-PR rsquoproblemprrsquo in the current directory This problem report canSEND-PR be sent to bugsopenss7org by calling rsquomake send-prrsquoSEND-PRSEND-PR It is possible to edit some of the fields before sending on theSEND-PR problem report Please remember that there is NO WARRANTY SeeSEND-PR the file rsquoCOPYINGrsquo in the top level directorySEND-PRSEND-PR Please do not send confidential information to the bug reportSEND-PR address Inspect the file rsquoproblemprrsquo for confidentialSEND-PR information before mailingSEND-PR vim problempr lt--- follow instructions at head of file make send-pr

Example 77 Problem Report from Failed Logging Target 724 Stand Alone Problem Reports

The OpenSS7 SS7 Stack package installs the send-pr script and its configuration filelsquosend-prconfigrsquo in lsquo$libexecdirstrss7rsquo along with the validation testsuite seeSee Section 71 [Test Suites] page 93 As with the testsuite this allows the send-prscript to be used for problem report generation on an installed system that does not havea build directory

An example of invoking the package testsuite and then generating a problem report forfailed cases is shown in Example 78

Chapter 7 Troubleshooting 101 [sudo] usrlibexecstrss7testsuite test cases failed usrlibexecstrss7send-prSEND-PRSEND-PR send-pr send-pr was invoked to generate an external report AnSEND-PR automated problem report has been created in the file namedSEND-PR rsquoproblemprrsquo in the current directory This problem report canSEND-PR be sent to bugsopenss7org by calling this script asSEND-PR rsquousrlibexecstrss7send-pr --file problemprrsquoSEND-PRSEND-PR It is possible to edit some of the fields before sending on theSEND-PR problem report Please remember that there is NO WARRANTY SeeSEND-PR the file rsquoCOPYINGrsquo in the top level directorySEND-PRSEND-PR Please do not send confidential information to the bug reportSEND-PR address Inspect the file rsquoproblemprrsquo for confidentialSEND-PR information before mailingSEND-PR vim problempr lt--- follow instructions at head of file usrlibexecstrss7send-pr --file problempr

Example 78 Invoking send-pr Directly The advantage of the approach shown in the example is that the send-pr script is capableof collecting the lsquotestsuitelogrsquo file and the failed test cases and debugging scripts fromthe lsquotestsuitedirrsquo directory and including them in the problem report as well as allpackage pertinent information from the installed lsquosend-prconfigrsquo

73 Known Problems

The OpenSS7 Project does not ship software with known bugs All bugs are unknownVerified behaviour is that behaviour that has been verified by conformance test suites thatare shipped with the OpenSS7 SS7 Stack packageUnverified behaviour may contain unknown bugsPlease remember that there is NO WARRANTYSee also Section 55 [Bugs] page 43 or file lsquoBUGSrsquo in the release directory

Licenses 103

Licenses

104 OpenSS7 SS7 Stack

GNU Affero General Public License

The GNU Affero General Public LicenseVersion 3 19 November 2007

Copyright ccopy 2007 Free Software Foundation Inc httpfsforg

Everyone is permitted to copy and distribute verbatim copies of thislicense document but changing it is not allowed

Preamble

The GNU Affero General Public License is a free copyleft license for software and otherkinds of works specifically designed to ensure cooperation with the community in the caseof network server software

The licenses for most software and other practical works are designed to take away yourfreedom to share and change the works By contrast our General Public Licenses areintended to guarantee your freedom to share and change all versions of a programndashto makesure it remains free software for all its users

When we speak of free software we are referring to freedom not price Our General PublicLicenses are designed to make sure that you have the freedom to distribute copies of freesoftware (and charge for them if you wish) that you receive source code or can get it if youwant it that you can change the software or use pieces of it in new free programs and thatyou know you can do these things

Developers that use our General Public Licenses protect your rights with two steps (1)assert copyright on the software and (2) offer you this License which gives you legal per-mission to copy distribute andor modify the software

A secondary benefit of defending all usersrsquo freedom is that improvements made in alternateversions of the program if they receive widespread use become available for other developersto incorporate Many developers of free software are heartened and encouraged by theresulting cooperation However in the case of software used on network servers this resultmay fail to come about The GNU General Public License permits making a modifiedversion and letting the public access it on a server without ever releasing its source code tothe public

The GNU Affero General Public License is designed specifically to ensure that in such casesthe modified source code becomes available to the community It requires the operator of anetwork server to provide the source code of the modified version running there to the usersof that server Therefore public use of a modified version on a publicly accessible servergives the public access to the source code of the modified version

An older license called the Affero General Public License and published by Affero wasdesigned to accomplish similar goals This is a different license not a version of the AfferoGPL but Affero has released a new version of the Affero GPL which permits relicensingunder this license

The precise terms and conditions for copying distribution and modification follow

Licenses 105

Terms and Conditions

0 DefinitionsldquoThis Licenserdquo refers to version 3 of the GNU Affero General Public LicenseldquoCopyrightrdquo also means copyright-like laws that apply to other kinds of works such assemiconductor masksldquoThe Programrdquo refers to any copyrightable work licensed under this License Eachlicensee is addressed as ldquoyourdquo ldquoLicenseesrdquo and ldquorecipientsrdquo may be individuals ororganizationsTo ldquomodifyrdquo a work means to copy from or adapt all or part of the work in a fashionrequiring copyright permission other than the making of an exact copy The resultingwork is called a ldquomodified versionrdquo of the earlier work or a work ldquobased onrdquo the earlierworkA ldquocovered workrdquo means either the unmodified Program or a work based on the Pro-gramTo ldquopropagaterdquo a work means to do anything with it that without permission wouldmake you directly or secondarily liable for infringement under applicable copyright lawexcept executing it on a computer or modifying a private copy Propagation includescopying distribution (with or without modification) making available to the publicand in some countries other activities as wellTo ldquoconveyrdquo a work means any kind of propagation that enables other parties to makeor receive copies Mere interaction with a user through a computer network with notransfer of a copy is not conveyingAn interactive user interface displays ldquoAppropriate Legal Noticesrdquo to the extent that itincludes a convenient and prominently visible feature that (1) displays an appropriatecopyright notice and (2) tells the user that there is no warranty for the work (exceptto the extent that warranties are provided) that licensees may convey the work underthis License and how to view a copy of this License If the interface presents a listof user commands or options such as a menu a prominent item in the list meets thiscriterion

1 Source CodeThe ldquosource coderdquo for a work means the preferred form of the work for making modi-fications to it ldquoObject coderdquo means any non-source form of a workA ldquoStandard Interfacerdquo means an interface that either is an official standard definedby a recognized standards body or in the case of interfaces specified for a particularprogramming language one that is widely used among developers working in thatlanguageThe ldquoSystem Librariesrdquo of an executable work include anything other than the work asa whole that (a) is included in the normal form of packaging a Major Component butwhich is not part of that Major Component and (b) serves only to enable use of thework with that Major Component or to implement a Standard Interface for which animplementation is available to the public in source code form A ldquoMajor Componentrdquoin this context means a major essential component (kernel window system and soon) of the specific operating system (if any) on which the executable work runs or acompiler used to produce the work or an object code interpreter used to run it

106 OpenSS7 SS7 Stack

The ldquoCorresponding Sourcerdquo for a work in object code form means all the source codeneeded to generate install and (for an executable work) run the object code and tomodify the work including scripts to control those activities However it does notinclude the workrsquos System Libraries or general-purpose tools or generally availablefree programs which are used unmodified in performing those activities but which arenot part of the work For example Corresponding Source includes interface definitionfiles associated with source files for the work and the source code for shared librariesand dynamically linked subprograms that the work is specifically designed to requiresuch as by intimate data communication or control flow between those subprogramsand other parts of the workThe Corresponding Source need not include anything that users can regenerate auto-matically from other parts of the Corresponding SourceThe Corresponding Source for a work in source code form is that same work

2 Basic PermissionsAll rights granted under this License are granted for the term of copyright on theProgram and are irrevocable provided the stated conditions are met This License ex-plicitly affirms your unlimited permission to run the unmodified Program The outputfrom running a covered work is covered by this License only if the output given itscontent constitutes a covered work This License acknowledges your rights of fair useor other equivalent as provided by copyright lawYou may make run and propagate covered works that you do not convey withoutconditions so long as your license otherwise remains in force You may convey coveredworks to others for the sole purpose of having them make modifications exclusivelyfor you or provide you with facilities for running those works provided that youcomply with the terms of this License in conveying all material for which you do notcontrol copyright Those thus making or running the covered works for you must doso exclusively on your behalf under your direction and control on terms that prohibitthem from making any copies of your copyrighted material outside their relationshipwith youConveying under any other circumstances is permitted solely under the conditionsstated below Sublicensing is not allowed section 10 makes it unnecessary

3 Protecting Usersrsquo Legal Rights From Anti-Circumvention LawNo covered work shall be deemed part of an effective technological measure underany applicable law fulfilling obligations under article 11 of the WIPO copyright treatyadopted on 20 December 1996 or similar laws prohibiting or restricting circumventionof such measuresWhen you convey a covered work you waive any legal power to forbid circumvention oftechnological measures to the extent such circumvention is effected by exercising rightsunder this License with respect to the covered work and you disclaim any intentionto limit operation or modification of the work as a means of enforcing against theworkrsquos users your or third partiesrsquo legal rights to forbid circumvention of technologicalmeasures

4 Conveying Verbatim CopiesYou may convey verbatim copies of the Programrsquos source code as you receive it in anymedium provided that you conspicuously and appropriately publish on each copy an

Licenses 107

appropriate copyright notice keep intact all notices stating that this License and anynon-permissive terms added in accord with section 7 apply to the code keep intact allnotices of the absence of any warranty and give all recipients a copy of this Licensealong with the ProgramYou may charge any price or no price for each copy that you convey and you may offersupport or warranty protection for a fee

5 Conveying Modified Source VersionsYou may convey a work based on the Program or the modifications to produce it fromthe Program in the form of source code under the terms of section 4 provided thatyou also meet all of these conditionsa The work must carry prominent notices stating that you modified it and giving a

relevant dateb The work must carry prominent notices stating that it is released under this Li-

cense and any conditions added under section 7 This requirement modifies therequirement in section 4 to ldquokeep intact all noticesrdquo

c You must license the entire work as a whole under this License to anyone whocomes into possession of a copy This License will therefore apply along with anyapplicable section 7 additional terms to the whole of the work and all its partsregardless of how they are packaged This License gives no permission to licensethe work in any other way but it does not invalidate such permission if you haveseparately received it

d If the work has interactive user interfaces each must display Appropriate LegalNotices however if the Program has interactive interfaces that do not displayAppropriate Legal Notices your work need not make them do so

A compilation of a covered work with other separate and independent works whichare not by their nature extensions of the covered work and which are not combinedwith it such as to form a larger program in or on a volume of a storage or distributionmedium is called an ldquoaggregaterdquo if the compilation and its resulting copyright arenot used to limit the access or legal rights of the compilationrsquos users beyond what theindividual works permit Inclusion of a covered work in an aggregate does not causethis License to apply to the other parts of the aggregate

6 Conveying Non-Source FormsYou may convey a covered work in object code form under the terms of sections 4 and5 provided that you also convey the machine-readable Corresponding Source underthe terms of this License in one of these waysa Convey the object code in or embodied in a physical product (including a phys-

ical distribution medium) accompanied by the Corresponding Source fixed on adurable physical medium customarily used for software interchange

b Convey the object code in or embodied in a physical product (including a physi-cal distribution medium) accompanied by a written offer valid for at least threeyears and valid for as long as you offer spare parts or customer support for thatproduct model to give anyone who possesses the object code either (1) a copy ofthe Corresponding Source for all the software in the product that is covered by thisLicense on a durable physical medium customarily used for software interchange

108 OpenSS7 SS7 Stack

for a price no more than your reasonable cost of physically performing this con-veying of source or (2) access to copy the Corresponding Source from a networkserver at no charge

c Convey individual copies of the object code with a copy of the written offer toprovide the Corresponding Source This alternative is allowed only occasionallyand noncommercially and only if you received the object code with such an offerin accord with subsection 6b

d Convey the object code by offering access from a designated place (gratis or fora charge) and offer equivalent access to the Corresponding Source in the sameway through the same place at no further charge You need not require recipientsto copy the Corresponding Source along with the object code If the place tocopy the object code is a network server the Corresponding Source may be ona different server (operated by you or a third party) that supports equivalentcopying facilities provided you maintain clear directions next to the object codesaying where to find the Corresponding Source Regardless of what server hoststhe Corresponding Source you remain obligated to ensure that it is available foras long as needed to satisfy these requirements

e Convey the object code using peer-to-peer transmission provided you inform otherpeers where the object code and Corresponding Source of the work are being offeredto the general public at no charge under subsection 6d

A separable portion of the object code whose source code is excluded from the Cor-responding Source as a System Library need not be included in conveying the objectcode workA ldquoUser Productrdquo is either (1) a ldquoconsumer productrdquo which means any tangible per-sonal property which is normally used for personal family or household purposes or(2) anything designed or sold for incorporation into a dwelling In determining whethera product is a consumer product doubtful cases shall be resolved in favor of coverageFor a particular product received by a particular user ldquonormally usedrdquo refers to atypical or common use of that class of product regardless of the status of the par-ticular user or of the way in which the particular user actually uses or expects or isexpected to use the product A product is a consumer product regardless of whetherthe product has substantial commercial industrial or non-consumer uses unless suchuses represent the only significant mode of use of the productldquoInstallation Informationrdquo for a User Product means any methods procedures autho-rization keys or other information required to install and execute modified versions of acovered work in that User Product from a modified version of its Corresponding SourceThe information must suffice to ensure that the continued functioning of the modifiedobject code is in no case prevented or interfered with solely because modification hasbeen madeIf you convey an object code work under this section in or with or specifically foruse in a User Product and the conveying occurs as part of a transaction in whichthe right of possession and use of the User Product is transferred to the recipient inperpetuity or for a fixed term (regardless of how the transaction is characterized)the Corresponding Source conveyed under this section must be accompanied by theInstallation Information But this requirement does not apply if neither you nor any

Licenses 109

third party retains the ability to install modified object code on the User Product (forexample the work has been installed in ROM)The requirement to provide Installation Information does not include a requirementto continue to provide support service warranty or updates for a work that has beenmodified or installed by the recipient or for the User Product in which it has beenmodified or installed Access to a network may be denied when the modification itselfmaterially and adversely affects the operation of the network or violates the rules andprotocols for communication across the networkCorresponding Source conveyed and Installation Information provided in accord withthis section must be in a format that is publicly documented (and with an implementa-tion available to the public in source code form) and must require no special passwordor key for unpacking reading or copying

7 Additional TermsldquoAdditional permissionsrdquo are terms that supplement the terms of this License by mak-ing exceptions from one or more of its conditions Additional permissions that areapplicable to the entire Program shall be treated as though they were included in thisLicense to the extent that they are valid under applicable law If additional permis-sions apply only to part of the Program that part may be used separately under thosepermissions but the entire Program remains governed by this License without regardto the additional permissionsWhen you convey a copy of a covered work you may at your option remove anyadditional permissions from that copy or from any part of it (Additional permissionsmay be written to require their own removal in certain cases when you modify thework) You may place additional permissions on material added by you to a coveredwork for which you have or can give appropriate copyright permissionNotwithstanding any other provision of this License for material you add to a coveredwork you may (if authorized by the copyright holders of that material) supplementthe terms of this License with termsa Disclaiming warranty or limiting liability differently from the terms of sections 15

and 16 of this License orb Requiring preservation of specified reasonable legal notices or author attributions

in that material or in the Appropriate Legal Notices displayed by works containingit or

c Prohibiting misrepresentation of the origin of that material or requiring that mod-ified versions of such material be marked in reasonable ways as different from theoriginal version or

d Limiting the use for publicity purposes of names of licensors or authors of thematerial or

e Declining to grant rights under trademark law for use of some trade names trade-marks or service marks or

f Requiring indemnification of licensors and authors of that material by anyone whoconveys the material (or modified versions of it) with contractual assumptionsof liability to the recipient for any liability that these contractual assumptionsdirectly impose on those licensors and authors

110 OpenSS7 SS7 Stack

All other non-permissive additional terms are considered ldquofurther restrictionsrdquo withinthe meaning of section 10 If the Program as you received it or any part of it con-tains a notice stating that it is governed by this License along with a term that is afurther restriction you may remove that term If a license document contains a furtherrestriction but permits relicensing or conveying under this License you may add to acovered work material governed by the terms of that license document provided thatthe further restriction does not survive such relicensing or conveyingIf you add terms to a covered work in accord with this section you must place in therelevant source files a statement of the additional terms that apply to those files or anotice indicating where to find the applicable termsAdditional terms permissive or non-permissive may be stated in the form of a sep-arately written license or stated as exceptions the above requirements apply eitherway

8 TerminationYou may not propagate or modify a covered work except as expressly provided un-der this License Any attempt otherwise to propagate or modify it is void and willautomatically terminate your rights under this License (including any patent licensesgranted under the third paragraph of section 11)However if you cease all violation of this License then your license from a particularcopyright holder is reinstated (a) provisionally unless and until the copyright holderexplicitly and finally terminates your license and (b) permanently if the copyrightholder fails to notify you of the violation by some reasonable means prior to 60 daysafter the cessationMoreover your license from a particular copyright holder is reinstated permanently ifthe copyright holder notifies you of the violation by some reasonable means this is thefirst time you have received notice of violation of this License (for any work) from thatcopyright holder and you cure the violation prior to 30 days after your receipt of thenoticeTermination of your rights under this section does not terminate the licenses of partieswho have received copies or rights from you under this License If your rights havebeen terminated and not permanently reinstated you do not qualify to receive newlicenses for the same material under section 10

9 Acceptance Not Required for Having CopiesYou are not required to accept this License in order to receive or run a copy of theProgram Ancillary propagation of a covered work occurring solely as a consequence ofusing peer-to-peer transmission to receive a copy likewise does not require acceptanceHowever nothing other than this License grants you permission to propagate or modifyany covered work These actions infringe copyright if you do not accept this LicenseTherefore by modifying or propagating a covered work you indicate your acceptanceof this License to do so

10 Automatic Licensing of Downstream RecipientsEach time you convey a covered work the recipient automatically receives a licensefrom the original licensors to run modify and propagate that work subject to thisLicense You are not responsible for enforcing compliance by third parties with thisLicense

Licenses 111

An ldquoentity transactionrdquo is a transaction transferring control of an organization orsubstantially all assets of one or subdividing an organization or merging organizationsIf propagation of a covered work results from an entity transaction each party to thattransaction who receives a copy of the work also receives whatever licenses to the workthe partyrsquos predecessor in interest had or could give under the previous paragraph plusa right to possession of the Corresponding Source of the work from the predecessor ininterest if the predecessor has it or can get it with reasonable effortsYou may not impose any further restrictions on the exercise of the rights granted oraffirmed under this License For example you may not impose a license fee royalty orother charge for exercise of rights granted under this License and you may not initiatelitigation (including a cross-claim or counterclaim in a lawsuit) alleging that any patentclaim is infringed by making using selling offering for sale or importing the Programor any portion of it

11 PatentsA ldquocontributorrdquo is a copyright holder who authorizes use under this License of theProgram or a work on which the Program is based The work thus licensed is calledthe contributorrsquos ldquocontributor versionrdquoA contributorrsquos ldquoessential patent claimsrdquo are all patent claims owned or controlled bythe contributor whether already acquired or hereafter acquired that would be infringedby some manner permitted by this License of making using or selling its contributorversion but do not include claims that would be infringed only as a consequence offurther modification of the contributor version For purposes of this definition ldquocon-trolrdquo includes the right to grant patent sublicenses in a manner consistent with therequirements of this LicenseEach contributor grants you a non-exclusive worldwide royalty-free patent licenseunder the contributorrsquos essential patent claims to make use sell offer for sale importand otherwise run modify and propagate the contents of its contributor versionIn the following three paragraphs a ldquopatent licenserdquo is any express agreement or com-mitment however denominated not to enforce a patent (such as an express permissionto practice a patent or covenant not to sue for patent infringement) To ldquograntrdquo sucha patent license to a party means to make such an agreement or commitment not toenforce a patent against the partyIf you convey a covered work knowingly relying on a patent license and the Corre-sponding Source of the work is not available for anyone to copy free of charge and underthe terms of this License through a publicly available network server or other readilyaccessible means then you must either (1) cause the Corresponding Source to be soavailable or (2) arrange to deprive yourself of the benefit of the patent license for thisparticular work or (3) arrange in a manner consistent with the requirements of thisLicense to extend the patent license to downstream recipients ldquoKnowingly relyingrdquomeans you have actual knowledge that but for the patent license your conveying thecovered work in a country or your recipientrsquos use of the covered work in a countrywould infringe one or more identifiable patents in that country that you have reasonto believe are validIf pursuant to or in connection with a single transaction or arrangement you conveyor propagate by procuring conveyance of a covered work and grant a patent license

112 OpenSS7 SS7 Stack

to some of the parties receiving the covered work authorizing them to use propagatemodify or convey a specific copy of the covered work then the patent license you grantis automatically extended to all recipients of the covered work and works based on it

A patent license is ldquodiscriminatoryrdquo if it does not include within the scope of its cover-age prohibits the exercise of or is conditioned on the non-exercise of one or more of therights that are specifically granted under this License You may not convey a coveredwork if you are a party to an arrangement with a third party that is in the business ofdistributing software under which you make payment to the third party based on theextent of your activity of conveying the work and under which the third party grantsto any of the parties who would receive the covered work from you a discriminatorypatent license (a) in connection with copies of the covered work conveyed by you (orcopies made from those copies) or (b) primarily for and in connection with specificproducts or compilations that contain the covered work unless you entered into thatarrangement or that patent license was granted prior to 28 March 2007

Nothing in this License shall be construed as excluding or limiting any implied license orother defenses to infringement that may otherwise be available to you under applicablepatent law

12 No Surrender of Othersrsquo Freedom

If conditions are imposed on you (whether by court order agreement or otherwise) thatcontradict the conditions of this License they do not excuse you from the conditionsof this License If you cannot convey a covered work so as to satisfy simultaneouslyyour obligations under this License and any other pertinent obligations then as aconsequence you may not convey it at all For example if you agree to terms thatobligate you to collect a royalty for further conveying from those to whom you conveythe Program the only way you could satisfy both those terms and this License wouldbe to refrain entirely from conveying the Program

13 Remote Network Interaction Use with the GNU General Public License

Notwithstanding any other provision of this License if you modify the Program yourmodified version must prominently offer all users interacting with it remotely througha network (if your version supports such interaction) an opportunity to receive theCorresponding Source of your version by providing access to the Corresponding Sourcefrom a network server at no charge through some standard or customary means offacilitating copying of software This Corresponding Source shall include the Corre-sponding Source for any work covered by version 3 of the GNU General Public Licensethat is incorporated pursuant to the following paragraph

Notwithstanding any other provision of this License you have permission to link orcombine any covered work with a work licensed under version 3 of the GNU GeneralPublic License into a single combined work and to convey the resulting work Theterms of this License will continue to apply to the part which is the covered work butthe work with which it is combined will remain governed by version 3 of the GNUGeneral Public License

14 Revised Versions of this License

The Free Software Foundation may publish revised andor new versions of the GNUAffero General Public License from time to time Such new versions will be similar

Licenses 113

in spirit to the present version but may differ in detail to address new problems orconcernsEach version is given a distinguishing version number If the Program specifies thata certain numbered version of the GNU Affero General Public License ldquoor any laterversionrdquo applies to it you have the option of following the terms and conditions ei-ther of that numbered version or of any later version published by the Free SoftwareFoundation If the Program does not specify a version number of the GNU Affero Gen-eral Public License you may choose any version ever published by the Free SoftwareFoundationIf the Program specifies that a proxy can decide which future versions of the GNU AfferoGeneral Public License can be used that proxyrsquos public statement of acceptance of aversion permanently authorizes you to choose that version for the ProgramLater license versions may give you additional or different permissions However noadditional obligations are imposed on any author or copyright holder as a result of yourchoosing to follow a later version

15 Disclaimer of WarrantyTHERE IS NO WARRANTY FOR THE PROGRAM TO THE EXTENT PER-MITTED BY APPLICABLE LAW EXCEPT WHEN OTHERWISE STATED INWRITING THE COPYRIGHT HOLDERS ANDOR OTHER PARTIES PROVIDETHE PROGRAM ldquoAS ISrdquo WITHOUT WARRANTY OF ANY KIND EITHER EX-PRESSED OR IMPLIED INCLUDING BUT NOT LIMITED TO THE IMPLIEDWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULARPURPOSE THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCEOF THE PROGRAM IS WITH YOU SHOULD THE PROGRAM PROVE DEFEC-TIVE YOU ASSUME THE COST OF ALL NECESSARY SERVICING REPAIR ORCORRECTION

16 Limitation of LiabilityIN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO INWRITING WILL ANY COPYRIGHT HOLDER OR ANY OTHER PARTY WHOMODIFIES ANDOR CONVEYS THE PROGRAM AS PERMITTED ABOVE BELIABLE TO YOU FOR DAMAGES INCLUDING ANY GENERAL SPECIAL IN-CIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE ORINABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TOLOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUS-TAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAMTO OPERATE WITH ANY OTHER PROGRAMS) EVEN IF SUCH HOLDER OROTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAM-AGES

17 Interpretation of Sections 15 and 16If the disclaimer of warranty and limitation of liability provided above cannot be givenlocal legal effect according to their terms reviewing courts shall apply local law thatmost closely approximates an absolute waiver of all civil liability in connection withthe Program unless a warranty or assumption of liability accompanies a copy of theProgram in return for a fee

END OF TERMS AND CONDITIONS

114 OpenSS7 SS7 Stack

How to Apply These Terms to Your New Programs

If you develop a new program and you want it to be of the greatest possible use to the publicthe best way to achieve this is to make it free software which everyone can redistribute andchange under these termsTo do so attach the following notices to the program It is safest to attach them to thestart of each source file to most effectively state the exclusion of warranty and each fileshould have at least the ldquocopyrightrdquo line and a pointer to where the full notice is found

one line to give the programrsquos name and a brief idea of what it does

Copyright (C) year name of author

This program is free software you can redistribute it andor modify

it under the terms of the GNU Affero General Public License as published by

the Free Software Foundation either version 3 of the License or (at

your option) any later version

This program is distributed in the hope that it will be useful but

WITHOUT ANY WARRANTY without even the implied warranty of

MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE See the GNU

Affero General Public License for more details

You should have received a copy of the GNU Affero General Public License

along with this program If not see httpwwwgnuorglicenses

Also add information on how to contact you by electronic and paper mailIf your software can interact with users remotely through a network you should also makesure that it provides a way for users to get its source For example if your program is aweb application its interface could display a ldquoSourcerdquo link that leads users to an archive ofthe code There are many ways you could offer source and different solutions will be betterfor different programs see section 13 for the specific requirementsYou should also get your employer (if you work as a programmer) or school if any to signa ldquocopyright disclaimerrdquo for the program if necessary For more information on this andhow to apply and follow the GNU AGPL see httpwwwgnuorglicenses

Licenses 115

GNU General Public License

GNU GENERAL PUBLIC LICENSEVersion 3 29 June 2007

Copyright ccopy 2007 Free Software Foundation Inc httpfsforg

Everyone is permitted to copy and distribute verbatim copies of thislicense document but changing it is not allowed

Preamble

The GNU General Public License is a free copyleft license for software and other kinds ofworks

The licenses for most software and other practical works are designed to take away yourfreedom to share and change the works By contrast the GNU General Public License isintended to guarantee your freedom to share and change all versions of a programndashto makesure it remains free software for all its users We the Free Software Foundation use theGNU General Public License for most of our software it applies also to any other workreleased this way by its authors You can apply it to your programs too

When we speak of free software we are referring to freedom not price Our General PublicLicenses are designed to make sure that you have the freedom to distribute copies of freesoftware (and charge for them if you wish) that you receive source code or can get it if youwant it that you can change the software or use pieces of it in new free programs and thatyou know you can do these things

To protect your rights we need to prevent others from denying you these rights or askingyou to surrender the rights Therefore you have certain responsibilities if you distributecopies of the software or if you modify it responsibilities to respect the freedom of others

For example if you distribute copies of such a program whether gratis or for a fee youmust pass on to the recipients the same freedoms that you received You must make surethat they too receive or can get the source code And you must show them these terms sothey know their rights

Developers that use the GNU GPL protect your rights with two steps (1) assert copyrighton the software and (2) offer you this License giving you legal permission to copy distributeandor modify it

For the developersrsquo and authorsrsquo protection the GPL clearly explains that there is nowarranty for this free software For both usersrsquo and authorsrsquo sake the GPL requires thatmodified versions be marked as changed so that their problems will not be attributederroneously to authors of previous versions

Some devices are designed to deny users access to install or run modified versions of thesoftware inside them although the manufacturer can do so This is fundamentally incom-patible with the aim of protecting usersrsquo freedom to change the software The systematicpattern of such abuse occurs in the area of products for individuals to use which is pre-cisely where it is most unacceptable Therefore we have designed this version of the GPLto prohibit the practice for those products If such problems arise substantially in other

116 OpenSS7 SS7 Stack

domains we stand ready to extend this provision to those domains in future versions of theGPL as needed to protect the freedom of users

Finally every program is threatened constantly by software patents States should not allowpatents to restrict development and use of software on general-purpose computers but inthose that do we wish to avoid the special danger that patents applied to a free programcould make it effectively proprietary To prevent this the GPL assures that patents cannotbe used to render the program non-free

The precise terms and conditions for copying distribution and modification follow

Terms and Conditions

0 DefinitionsldquoThis Licenserdquo refers to version 3 of the GNU General Public LicenseldquoCopyrightrdquo also means copyright-like laws that apply to other kinds of works such assemiconductor masksldquoThe Programrdquo refers to any copyrightable work licensed under this License Eachlicensee is addressed as ldquoyourdquo ldquoLicenseesrdquo and ldquorecipientsrdquo may be individuals ororganizationsTo ldquomodifyrdquo a work means to copy from or adapt all or part of the work in a fashionrequiring copyright permission other than the making of an exact copy The resultingwork is called a ldquomodified versionrdquo of the earlier work or a work ldquobased onrdquo the earlierworkA ldquocovered workrdquo means either the unmodified Program or a work based on the Pro-gramTo ldquopropagaterdquo a work means to do anything with it that without permission wouldmake you directly or secondarily liable for infringement under applicable copyright lawexcept executing it on a computer or modifying a private copy Propagation includescopying distribution (with or without modification) making available to the publicand in some countries other activities as wellTo ldquoconveyrdquo a work means any kind of propagation that enables other parties to makeor receive copies Mere interaction with a user through a computer network with notransfer of a copy is not conveyingAn interactive user interface displays ldquoAppropriate Legal Noticesrdquo to the extent that itincludes a convenient and prominently visible feature that (1) displays an appropriatecopyright notice and (2) tells the user that there is no warranty for the work (exceptto the extent that warranties are provided) that licensees may convey the work underthis License and how to view a copy of this License If the interface presents a listof user commands or options such as a menu a prominent item in the list meets thiscriterion

1 Source CodeThe ldquosource coderdquo for a work means the preferred form of the work for making modi-fications to it ldquoObject coderdquo means any non-source form of a workA ldquoStandard Interfacerdquo means an interface that either is an official standard definedby a recognized standards body or in the case of interfaces specified for a particular

Licenses 117

programming language one that is widely used among developers working in thatlanguage

The ldquoSystem Librariesrdquo of an executable work include anything other than the work asa whole that (a) is included in the normal form of packaging a Major Component butwhich is not part of that Major Component and (b) serves only to enable use of thework with that Major Component or to implement a Standard Interface for which animplementation is available to the public in source code form A ldquoMajor Componentrdquoin this context means a major essential component (kernel window system and soon) of the specific operating system (if any) on which the executable work runs or acompiler used to produce the work or an object code interpreter used to run it

The ldquoCorresponding Sourcerdquo for a work in object code form means all the source codeneeded to generate install and (for an executable work) run the object code and tomodify the work including scripts to control those activities However it does notinclude the workrsquos System Libraries or general-purpose tools or generally availablefree programs which are used unmodified in performing those activities but which arenot part of the work For example Corresponding Source includes interface definitionfiles associated with source files for the work and the source code for shared librariesand dynamically linked subprograms that the work is specifically designed to requiresuch as by intimate data communication or control flow between those subprogramsand other parts of the work

The Corresponding Source need not include anything that users can regenerate auto-matically from other parts of the Corresponding Source

The Corresponding Source for a work in source code form is that same work

2 Basic Permissions

All rights granted under this License are granted for the term of copyright on theProgram and are irrevocable provided the stated conditions are met This License ex-plicitly affirms your unlimited permission to run the unmodified Program The outputfrom running a covered work is covered by this License only if the output given itscontent constitutes a covered work This License acknowledges your rights of fair useor other equivalent as provided by copyright law

You may make run and propagate covered works that you do not convey withoutconditions so long as your license otherwise remains in force You may convey coveredworks to others for the sole purpose of having them make modifications exclusivelyfor you or provide you with facilities for running those works provided that youcomply with the terms of this License in conveying all material for which you do notcontrol copyright Those thus making or running the covered works for you must doso exclusively on your behalf under your direction and control on terms that prohibitthem from making any copies of your copyrighted material outside their relationshipwith you

Conveying under any other circumstances is permitted solely under the conditionsstated below Sublicensing is not allowed section 10 makes it unnecessary

3 Protecting Usersrsquo Legal Rights From Anti-Circumvention Law

No covered work shall be deemed part of an effective technological measure underany applicable law fulfilling obligations under article 11 of the WIPO copyright treaty

118 OpenSS7 SS7 Stack

adopted on 20 December 1996 or similar laws prohibiting or restricting circumventionof such measures

When you convey a covered work you waive any legal power to forbid circumvention oftechnological measures to the extent such circumvention is effected by exercising rightsunder this License with respect to the covered work and you disclaim any intentionto limit operation or modification of the work as a means of enforcing against theworkrsquos users your or third partiesrsquo legal rights to forbid circumvention of technologicalmeasures

4 Conveying Verbatim Copies

You may convey verbatim copies of the Programrsquos source code as you receive it in anymedium provided that you conspicuously and appropriately publish on each copy anappropriate copyright notice keep intact all notices stating that this License and anynon-permissive terms added in accord with section 7 apply to the code keep intact allnotices of the absence of any warranty and give all recipients a copy of this Licensealong with the Program

You may charge any price or no price for each copy that you convey and you may offersupport or warranty protection for a fee

5 Conveying Modified Source Versions

You may convey a work based on the Program or the modifications to produce it fromthe Program in the form of source code under the terms of section 4 provided thatyou also meet all of these conditions

a The work must carry prominent notices stating that you modified it and giving arelevant date

b The work must carry prominent notices stating that it is released under this Li-cense and any conditions added under section 7 This requirement modifies therequirement in section 4 to ldquokeep intact all noticesrdquo

c You must license the entire work as a whole under this License to anyone whocomes into possession of a copy This License will therefore apply along with anyapplicable section 7 additional terms to the whole of the work and all its partsregardless of how they are packaged This License gives no permission to licensethe work in any other way but it does not invalidate such permission if you haveseparately received it

d If the work has interactive user interfaces each must display Appropriate LegalNotices however if the Program has interactive interfaces that do not displayAppropriate Legal Notices your work need not make them do so

A compilation of a covered work with other separate and independent works whichare not by their nature extensions of the covered work and which are not combinedwith it such as to form a larger program in or on a volume of a storage or distributionmedium is called an ldquoaggregaterdquo if the compilation and its resulting copyright arenot used to limit the access or legal rights of the compilationrsquos users beyond what theindividual works permit Inclusion of a covered work in an aggregate does not causethis License to apply to the other parts of the aggregate

6 Conveying Non-Source Forms

Licenses 119

You may convey a covered work in object code form under the terms of sections 4 and5 provided that you also convey the machine-readable Corresponding Source underthe terms of this License in one of these waysa Convey the object code in or embodied in a physical product (including a phys-

ical distribution medium) accompanied by the Corresponding Source fixed on adurable physical medium customarily used for software interchange

b Convey the object code in or embodied in a physical product (including a physi-cal distribution medium) accompanied by a written offer valid for at least threeyears and valid for as long as you offer spare parts or customer support for thatproduct model to give anyone who possesses the object code either (1) a copy ofthe Corresponding Source for all the software in the product that is covered by thisLicense on a durable physical medium customarily used for software interchangefor a price no more than your reasonable cost of physically performing this con-veying of source or (2) access to copy the Corresponding Source from a networkserver at no charge

c Convey individual copies of the object code with a copy of the written offer toprovide the Corresponding Source This alternative is allowed only occasionallyand noncommercially and only if you received the object code with such an offerin accord with subsection 6b

d Convey the object code by offering access from a designated place (gratis or fora charge) and offer equivalent access to the Corresponding Source in the sameway through the same place at no further charge You need not require recipientsto copy the Corresponding Source along with the object code If the place tocopy the object code is a network server the Corresponding Source may be ona different server (operated by you or a third party) that supports equivalentcopying facilities provided you maintain clear directions next to the object codesaying where to find the Corresponding Source Regardless of what server hoststhe Corresponding Source you remain obligated to ensure that it is available foras long as needed to satisfy these requirements

e Convey the object code using peer-to-peer transmission provided you inform otherpeers where the object code and Corresponding Source of the work are being offeredto the general public at no charge under subsection 6d

A separable portion of the object code whose source code is excluded from the Cor-responding Source as a System Library need not be included in conveying the objectcode workA ldquoUser Productrdquo is either (1) a ldquoconsumer productrdquo which means any tangible per-sonal property which is normally used for personal family or household purposes or(2) anything designed or sold for incorporation into a dwelling In determining whethera product is a consumer product doubtful cases shall be resolved in favor of coverageFor a particular product received by a particular user ldquonormally usedrdquo refers to atypical or common use of that class of product regardless of the status of the par-ticular user or of the way in which the particular user actually uses or expects or isexpected to use the product A product is a consumer product regardless of whetherthe product has substantial commercial industrial or non-consumer uses unless suchuses represent the only significant mode of use of the product

120 OpenSS7 SS7 Stack

ldquoInstallation Informationrdquo for a User Product means any methods procedures autho-rization keys or other information required to install and execute modified versions of acovered work in that User Product from a modified version of its Corresponding SourceThe information must suffice to ensure that the continued functioning of the modifiedobject code is in no case prevented or interfered with solely because modification hasbeen madeIf you convey an object code work under this section in or with or specifically foruse in a User Product and the conveying occurs as part of a transaction in whichthe right of possession and use of the User Product is transferred to the recipient inperpetuity or for a fixed term (regardless of how the transaction is characterized)the Corresponding Source conveyed under this section must be accompanied by theInstallation Information But this requirement does not apply if neither you nor anythird party retains the ability to install modified object code on the User Product (forexample the work has been installed in ROM)The requirement to provide Installation Information does not include a requirementto continue to provide support service warranty or updates for a work that has beenmodified or installed by the recipient or for the User Product in which it has beenmodified or installed Access to a network may be denied when the modification itselfmaterially and adversely affects the operation of the network or violates the rules andprotocols for communication across the networkCorresponding Source conveyed and Installation Information provided in accord withthis section must be in a format that is publicly documented (and with an implementa-tion available to the public in source code form) and must require no special passwordor key for unpacking reading or copying

7 Additional TermsldquoAdditional permissionsrdquo are terms that supplement the terms of this License by mak-ing exceptions from one or more of its conditions Additional permissions that areapplicable to the entire Program shall be treated as though they were included in thisLicense to the extent that they are valid under applicable law If additional permis-sions apply only to part of the Program that part may be used separately under thosepermissions but the entire Program remains governed by this License without regardto the additional permissionsWhen you convey a copy of a covered work you may at your option remove anyadditional permissions from that copy or from any part of it (Additional permissionsmay be written to require their own removal in certain cases when you modify thework) You may place additional permissions on material added by you to a coveredwork for which you have or can give appropriate copyright permissionNotwithstanding any other provision of this License for material you add to a coveredwork you may (if authorized by the copyright holders of that material) supplementthe terms of this License with termsa Disclaiming warranty or limiting liability differently from the terms of sections 15

and 16 of this License orb Requiring preservation of specified reasonable legal notices or author attributions

in that material or in the Appropriate Legal Notices displayed by works containingit or

Licenses 121

c Prohibiting misrepresentation of the origin of that material or requiring that mod-ified versions of such material be marked in reasonable ways as different from theoriginal version or

d Limiting the use for publicity purposes of names of licensors or authors of thematerial or

e Declining to grant rights under trademark law for use of some trade names trade-marks or service marks or

f Requiring indemnification of licensors and authors of that material by anyone whoconveys the material (or modified versions of it) with contractual assumptionsof liability to the recipient for any liability that these contractual assumptionsdirectly impose on those licensors and authors

All other non-permissive additional terms are considered ldquofurther restrictionsrdquo withinthe meaning of section 10 If the Program as you received it or any part of it con-tains a notice stating that it is governed by this License along with a term that is afurther restriction you may remove that term If a license document contains a furtherrestriction but permits relicensing or conveying under this License you may add to acovered work material governed by the terms of that license document provided thatthe further restriction does not survive such relicensing or conveying

If you add terms to a covered work in accord with this section you must place in therelevant source files a statement of the additional terms that apply to those files or anotice indicating where to find the applicable terms

Additional terms permissive or non-permissive may be stated in the form of a sep-arately written license or stated as exceptions the above requirements apply eitherway

8 Termination

You may not propagate or modify a covered work except as expressly provided un-der this License Any attempt otherwise to propagate or modify it is void and willautomatically terminate your rights under this License (including any patent licensesgranted under the third paragraph of section 11)

However if you cease all violation of this License then your license from a particularcopyright holder is reinstated (a) provisionally unless and until the copyright holderexplicitly and finally terminates your license and (b) permanently if the copyrightholder fails to notify you of the violation by some reasonable means prior to 60 daysafter the cessation

Moreover your license from a particular copyright holder is reinstated permanently ifthe copyright holder notifies you of the violation by some reasonable means this is thefirst time you have received notice of violation of this License (for any work) from thatcopyright holder and you cure the violation prior to 30 days after your receipt of thenotice

Termination of your rights under this section does not terminate the licenses of partieswho have received copies or rights from you under this License If your rights havebeen terminated and not permanently reinstated you do not qualify to receive newlicenses for the same material under section 10

122 OpenSS7 SS7 Stack

9 Acceptance Not Required for Having CopiesYou are not required to accept this License in order to receive or run a copy of theProgram Ancillary propagation of a covered work occurring solely as a consequence ofusing peer-to-peer transmission to receive a copy likewise does not require acceptanceHowever nothing other than this License grants you permission to propagate or modifyany covered work These actions infringe copyright if you do not accept this LicenseTherefore by modifying or propagating a covered work you indicate your acceptanceof this License to do so

10 Automatic Licensing of Downstream RecipientsEach time you convey a covered work the recipient automatically receives a licensefrom the original licensors to run modify and propagate that work subject to thisLicense You are not responsible for enforcing compliance by third parties with thisLicenseAn ldquoentity transactionrdquo is a transaction transferring control of an organization orsubstantially all assets of one or subdividing an organization or merging organizationsIf propagation of a covered work results from an entity transaction each party to thattransaction who receives a copy of the work also receives whatever licenses to the workthe partyrsquos predecessor in interest had or could give under the previous paragraph plusa right to possession of the Corresponding Source of the work from the predecessor ininterest if the predecessor has it or can get it with reasonable effortsYou may not impose any further restrictions on the exercise of the rights granted oraffirmed under this License For example you may not impose a license fee royalty orother charge for exercise of rights granted under this License and you may not initiatelitigation (including a cross-claim or counterclaim in a lawsuit) alleging that any patentclaim is infringed by making using selling offering for sale or importing the Programor any portion of it

11 PatentsA ldquocontributorrdquo is a copyright holder who authorizes use under this License of theProgram or a work on which the Program is based The work thus licensed is calledthe contributorrsquos ldquocontributor versionrdquoA contributorrsquos ldquoessential patent claimsrdquo are all patent claims owned or controlled bythe contributor whether already acquired or hereafter acquired that would be infringedby some manner permitted by this License of making using or selling its contributorversion but do not include claims that would be infringed only as a consequence offurther modification of the contributor version For purposes of this definition ldquocon-trolrdquo includes the right to grant patent sublicenses in a manner consistent with therequirements of this LicenseEach contributor grants you a non-exclusive worldwide royalty-free patent licenseunder the contributorrsquos essential patent claims to make use sell offer for sale importand otherwise run modify and propagate the contents of its contributor versionIn the following three paragraphs a ldquopatent licenserdquo is any express agreement or com-mitment however denominated not to enforce a patent (such as an express permissionto practice a patent or covenant not to sue for patent infringement) To ldquograntrdquo sucha patent license to a party means to make such an agreement or commitment not toenforce a patent against the party

Licenses 123

If you convey a covered work knowingly relying on a patent license and the Corre-sponding Source of the work is not available for anyone to copy free of charge and underthe terms of this License through a publicly available network server or other readilyaccessible means then you must either (1) cause the Corresponding Source to be soavailable or (2) arrange to deprive yourself of the benefit of the patent license for thisparticular work or (3) arrange in a manner consistent with the requirements of thisLicense to extend the patent license to downstream recipients ldquoKnowingly relyingrdquomeans you have actual knowledge that but for the patent license your conveying thecovered work in a country or your recipientrsquos use of the covered work in a countrywould infringe one or more identifiable patents in that country that you have reasonto believe are valid

If pursuant to or in connection with a single transaction or arrangement you conveyor propagate by procuring conveyance of a covered work and grant a patent licenseto some of the parties receiving the covered work authorizing them to use propagatemodify or convey a specific copy of the covered work then the patent license you grantis automatically extended to all recipients of the covered work and works based on it

A patent license is ldquodiscriminatoryrdquo if it does not include within the scope of its cover-age prohibits the exercise of or is conditioned on the non-exercise of one or more of therights that are specifically granted under this License You may not convey a coveredwork if you are a party to an arrangement with a third party that is in the business ofdistributing software under which you make payment to the third party based on theextent of your activity of conveying the work and under which the third party grantsto any of the parties who would receive the covered work from you a discriminatorypatent license (a) in connection with copies of the covered work conveyed by you (orcopies made from those copies) or (b) primarily for and in connection with specificproducts or compilations that contain the covered work unless you entered into thatarrangement or that patent license was granted prior to 28 March 2007

Nothing in this License shall be construed as excluding or limiting any implied license orother defenses to infringement that may otherwise be available to you under applicablepatent law

12 No Surrender of Othersrsquo Freedom

If conditions are imposed on you (whether by court order agreement or otherwise) thatcontradict the conditions of this License they do not excuse you from the conditionsof this License If you cannot convey a covered work so as to satisfy simultaneouslyyour obligations under this License and any other pertinent obligations then as aconsequence you may not convey it at all For example if you agree to terms thatobligate you to collect a royalty for further conveying from those to whom you conveythe Program the only way you could satisfy both those terms and this License wouldbe to refrain entirely from conveying the Program

13 Use with the GNU Affero General Public License

Notwithstanding any other provision of this License you have permission to link orcombine any covered work with a work licensed under version 3 of the GNU AfferoGeneral Public License into a single combined work and to convey the resulting workThe terms of this License will continue to apply to the part which is the covered work

124 OpenSS7 SS7 Stack

but the special requirements of the GNU Affero General Public License section 13concerning interaction through a network will apply to the combination as such

14 Revised Versions of this LicenseThe Free Software Foundation may publish revised andor new versions of the GNUGeneral Public License from time to time Such new versions will be similar in spiritto the present version but may differ in detail to address new problems or concernsEach version is given a distinguishing version number If the Program specifies thata certain numbered version of the GNU General Public License ldquoor any later versionrdquoapplies to it you have the option of following the terms and conditions either of thatnumbered version or of any later version published by the Free Software FoundationIf the Program does not specify a version number of the GNU General Public Licenseyou may choose any version ever published by the Free Software FoundationIf the Program specifies that a proxy can decide which future versions of the GNUGeneral Public License can be used that proxyrsquos public statement of acceptance of aversion permanently authorizes you to choose that version for the ProgramLater license versions may give you additional or different permissions However noadditional obligations are imposed on any author or copyright holder as a result of yourchoosing to follow a later version

15 Disclaimer of WarrantyTHERE IS NO WARRANTY FOR THE PROGRAM TO THE EXTENT PER-MITTED BY APPLICABLE LAW EXCEPT WHEN OTHERWISE STATED INWRITING THE COPYRIGHT HOLDERS ANDOR OTHER PARTIES PROVIDETHE PROGRAM ldquoAS ISrdquo WITHOUT WARRANTY OF ANY KIND EITHER EX-PRESSED OR IMPLIED INCLUDING BUT NOT LIMITED TO THE IMPLIEDWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULARPURPOSE THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCEOF THE PROGRAM IS WITH YOU SHOULD THE PROGRAM PROVE DEFEC-TIVE YOU ASSUME THE COST OF ALL NECESSARY SERVICING REPAIR ORCORRECTION

16 Limitation of LiabilityIN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO INWRITING WILL ANY COPYRIGHT HOLDER OR ANY OTHER PARTY WHOMODIFIES ANDOR CONVEYS THE PROGRAM AS PERMITTED ABOVE BELIABLE TO YOU FOR DAMAGES INCLUDING ANY GENERAL SPECIAL IN-CIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE ORINABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TOLOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUS-TAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAMTO OPERATE WITH ANY OTHER PROGRAMS) EVEN IF SUCH HOLDER OROTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAM-AGES

17 Interpretation of Sections 15 and 16If the disclaimer of warranty and limitation of liability provided above cannot be givenlocal legal effect according to their terms reviewing courts shall apply local law thatmost closely approximates an absolute waiver of all civil liability in connection with

Licenses 125

the Program unless a warranty or assumption of liability accompanies a copy of theProgram in return for a fee

END OF TERMS AND CONDITIONS

126 OpenSS7 SS7 Stack

How to Apply These Terms to Your New Programs

If you develop a new program and you want it to be of the greatest possible use to the publicthe best way to achieve this is to make it free software which everyone can redistribute andchange under these termsTo do so attach the following notices to the program It is safest to attach them to thestart of each source file to most effectively state the exclusion of warranty and each fileshould have at least the ldquocopyrightrdquo line and a pointer to where the full notice is found

one line to give the programrsquos name and a brief idea of what it does

Copyright (C) year name of author

This program is free software you can redistribute it andor modify

it under the terms of the GNU General Public License as published by

the Free Software Foundation either version 3 of the License or (at

your option) any later version

This program is distributed in the hope that it will be useful but

WITHOUT ANY WARRANTY without even the implied warranty of

MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE See the GNU

General Public License for more details

You should have received a copy of the GNU General Public License

along with this program If not see httpwwwgnuorglicenses

Also add information on how to contact you by electronic and paper mailIf the program does terminal interaction make it output a short notice like this when itstarts in an interactive mode

program Copyright (C) year name of author

This program comes with ABSOLUTELY NO WARRANTY for details type lsquoshow wrsquo

This is free software and you are welcome to redistribute it

under certain conditions type lsquoshow crsquo for details

The hypothetical commands lsquoshow wrsquo and lsquoshow crsquo should show the appropriate parts of theGeneral Public License Of course your programrsquos commands might be different for a GUIinterface you would use an ldquoabout boxrdquoYou should also get your employer (if you work as a programmer) or school if any to signa ldquocopyright disclaimerrdquo for the program if necessary For more information on this andhow to apply and follow the GNU GPL see httpwwwgnuorglicensesThe GNU General Public License does not permit incorporating your program into propri-etary programs If your program is a subroutine library you may consider it more usefulto permit linking proprietary applications with the library If this is what you want to douse the GNU Lesser General Public License instead of this License But first please readhttpwwwgnuorgphilosophywhy-not-lgplhtml

Licenses 127

GNU Lesser General Public License

GNU LESSER GENERAL PUBLIC LICENSEVersion 3 29 June 2007

Copyright ccopy 2007 Free Software Foundation Inc httpfsforg

Everyone is permitted to copy and distribute verbatim copies of thislicense document but changing it is not allowed

Terms and Conditions

This version of the GNU Lesser General Public License incorporates the terms and con-ditions of version 3 of the GNU General Public License supplemented by the additionalpermissions listed below0 Additional Definitions

As used herein ldquothis Licenserdquo refers to version 3 of the GNU Lesser General PublicLicense and the ldquoGNU GPLrdquo refers to version 3 of the GNU General Public LicenseldquoThe Libraryrdquo refers to a covered work governed by this License other than an Appli-cation or a Combined Work as defined belowAn ldquoApplicationrdquo is any work that makes use of an interface provided by the Librarybut which is not otherwise based on the Library Defining a subclass of a class definedby the Library is deemed a mode of using an interface provided by the LibraryA ldquoCombined Workrdquo is a work produced by combining or linking an Application withthe Library The particular version of the Library with which the Combined Work wasmade is also called the ldquoLinked VersionrdquoThe ldquoMinimal Corresponding Sourcerdquo for a Combined Work means the CorrespondingSource for the Combined Work excluding any source code for portions of the CombinedWork that considered in isolation are based on the Application and not on the LinkedVersionThe ldquoCorresponding Application Coderdquo for a Combined Work means the object codeandor source code for the Application including any data and utility programs neededfor reproducing the Combined Work from the Application but excluding the SystemLibraries of the Combined Work

1 Exception to Section 3 of the GNU GPLYou may convey a covered work under sections 3 and 4 of this License without beingbound by section 3 of the GNU GPL

2 Conveying Modified VersionsIf you modify a copy of the Library and in your modifications a facility refers to afunction or data to be supplied by an Application that uses the facility (other than asan argument passed when the facility is invoked) then you may convey a copy of themodified versiona under this License provided that you make a good faith effort to ensure that in

the event an Application does not supply the function or data the facility stilloperates and performs whatever part of its purpose remains meaningful or

128 OpenSS7 SS7 Stack

b under the GNU GPL with none of the additional permissions of this Licenseapplicable to that copy

3 Object Code Incorporating Material from Library Header FilesThe object code form of an Application may incorporate material from a header file thatis part of the Library You may convey such object code under terms of your choiceprovided that if the incorporated material is not limited to numerical parameters datastructure layouts and accessors or small macros inline functions and templates (tenor fewer lines in length) you do both of the followinga Give prominent notice with each copy of the object code that the Library is used

in it and that the Library and its use are covered by this Licenseb Accompany the object code with a copy of the GNU GPL and this license docu-

ment4 Combined Works

You may convey a Combined Work under terms of your choice that taken togethereffectively do not restrict modification of the portions of the Library contained in theCombined Work and reverse engineering for debugging such modifications if you alsodo each of the followinga Give prominent notice with each copy of the Combined Work that the Library is

used in it and that the Library and its use are covered by this Licenseb Accompany the Combined Work with a copy of the GNU GPL and this license

documentc For a Combined Work that displays copyright notices during execution include

the copyright notice for the Library among these notices as well as a referencedirecting the user to the copies of the GNU GPL and this license document

d Do one of the following0 Convey the Minimal Corresponding Source under the terms of this License

and the Corresponding Application Code in a form suitable for and underterms that permit the user to recombine or relink the Application with a mod-ified version of the Linked Version to produce a modified Combined Work inthe manner specified by section 6 of the GNU GPL for conveying Correspond-ing Source

1 Use a suitable shared library mechanism for linking with the Library Asuitable mechanism is one that (a) uses at run time a copy of the Libraryalready present on the userrsquos computer system and (b) will operate properlywith a modified version of the Library that is interface-compatible with theLinked Version

e Provide Installation Information but only if you would otherwise be required toprovide such information under section 6 of the GNU GPL and only to the extentthat such information is necessary to install and execute a modified version ofthe Combined Work produced by recombining or relinking the Application witha modified version of the Linked Version (If you use option 4d0 the InstallationInformation must accompany the Minimal Corresponding Source and Correspond-ing Application Code If you use option 4d1 you must provide the InstallationInformation in the manner specified by section 6 of the GNU GPL for conveyingCorresponding Source)

Licenses 129

5 Combined LibrariesYou may place library facilities that are a work based on the Library side by side ina single library together with other library facilities that are not Applications and arenot covered by this License and convey such a combined library under terms of yourchoice if you do both of the followinga Accompany the combined library with a copy of the same work based on the

Library uncombined with any other library facilities conveyed under the terms ofthis License

b Give prominent notice with the combined library that part of it is a work basedon the Library and explaining where to find the accompanying uncombined formof the same work

6 Revised Versions of the GNU Lesser General Public LicenseThe Free Software Foundation may publish revised andor new versions of the GNULesser General Public License from time to time Such new versions will be similarin spirit to the present version but may differ in detail to address new problems orconcernsEach version is given a distinguishing version number If the Library as you receivedit specifies that a certain numbered version of the GNU Lesser General Public Licenseldquoor any later versionrdquo applies to it you have the option of following the terms andconditions either of that published version or of any later version published by theFree Software Foundation If the Library as you received it does not specify a versionnumber of the GNU Lesser General Public License you may choose any version of theGNU Lesser General Public License ever published by the Free Software FoundationIf the Library as you received it specifies that a proxy can decide whether future versionsof the GNU Lesser General Public License shall apply that proxyrsquos public statementof acceptance of any version is permanent authorization for you to choose that versionfor the Library

END OF TERMS AND CONDITIONS

130 OpenSS7 SS7 Stack

GNU Free Documentation License

GNU FREE DOCUMENTATION LICENSEVersion 11 March 2000

Copyright ccopy 2000 Free Software Foundation Inc59 Temple Place Suite 330 Boston MA 02111-1307 USA

Everyone is permitted to copy and distribute verbatim copiesof this license document but changing it is not allowed

Preamble

The purpose of this License is to make a manual textbook or other written document freein the sense of freedom to assure everyone the effective freedom to copy and redistributeit with or without modifying it either commercially or noncommercially Secondarily thisLicense preserves for the author and publisher a way to get credit for their work while notbeing considered responsible for modifications made by others

This License is a kind of ldquocopyleftrdquo which means that derivative works of the documentmust themselves be free in the same sense It complements the GNU General Public Licensewhich is a copyleft license designed for free software

We have designed this License in order to use it for manuals for free software because freesoftware needs free documentation a free program should come with manuals providing thesame freedoms that the software does But this License is not limited to software manualsit can be used for any textual work regardless of subject matter or whether it is publishedas a printed book We recommend this License principally for works whose purpose isinstruction or reference

Terms and Conditions for Copying Distribution and Modification

1 APPLICABILITY AND DEFINITIONS

This License applies to any manual or other work that contains a notice placed bythe copyright holder saying it can be distributed under the terms of this License TheldquoDocumentrdquo below refers to any such manual or work Any member of the public isa licensee and is addressed as ldquoyourdquo

A ldquoModified Versionrdquo of the Document means any work containing the Document ora portion of it either copied verbatim or with modifications andor translated intoanother language

A ldquoSecondary Sectionrdquo is a named appendix or a front-matter section of the Documentthat deals exclusively with the relationship of the publishers or authors of the Documentto the Documentrsquos overall subject (or to related matters) and contains nothing thatcould fall directly within that overall subject (For example if the Document is in part atextbook of mathematics a Secondary Section may not explain any mathematics) Therelationship could be a matter of historical connection with the subject or with relatedmatters or of legal commercial philosophical ethical or political position regardingthem

Licenses 131

The ldquoInvariant Sectionsrdquo are certain Secondary Sections whose titles are designated asbeing those of Invariant Sections in the notice that says that the Document is releasedunder this LicenseThe ldquoCover Textsrdquo are certain short passages of text that are listed as Front-CoverTexts or Back-Cover Texts in the notice that says that the Document is released underthis LicenseA ldquoTransparentrdquo copy of the Document means a machine-readable copy representedin a format whose specification is available to the general public whose contents canbe viewed and edited directly and straightforwardly with generic text editors or (forimages composed of pixels) generic paint programs or (for drawings) some widely avail-able drawing editor and that is suitable for input to text formatters or for automatictranslation to a variety of formats suitable for input to text formatters A copy madein an otherwise Transparent file format whose markup has been designed to thwart ordiscourage subsequent modification by readers is not Transparent A copy that is notldquoTransparentrdquo is called ldquoOpaquerdquoExamples of suitable formats for Transparent copies include plain ascii withoutmarkup Texinfo input format LaTEX input format SGML or XML using apublicly available DTD and standard-conforming simple HTML designed for humanmodification Opaque formats include PostScript PDF proprietary formats that canbe read and edited only by proprietary word processors SGML or XML for which theDTD andor processing tools are not generally available and the machine-generatedHTML produced by some word processors for output purposes onlyThe ldquoTitle Pagerdquo means for a printed book the title page itself plus such followingpages as are needed to hold legibly the material this License requires to appear in thetitle page For works in formats which do not have any title page as such ldquoTitle Pagerdquomeans the text near the most prominent appearance of the workrsquos title preceding thebeginning of the body of the text

2 VERBATIM COPYINGYou may copy and distribute the Document in any medium either commercially ornoncommercially provided that this License the copyright notices and the licensenotice saying this License applies to the Document are reproduced in all copies andthat you add no other conditions whatsoever to those of this License You may not usetechnical measures to obstruct or control the reading or further copying of the copiesyou make or distribute However you may accept compensation in exchange for copiesIf you distribute a large enough number of copies you must also follow the conditionsin section 3You may also lend copies under the same conditions stated above and you may publiclydisplay copies

3 COPYING IN QUANTITYIf you publish printed copies of the Document numbering more than 100 and theDocumentrsquos license notice requires Cover Texts you must enclose the copies in coversthat carry clearly and legibly all these Cover Texts Front-Cover Texts on the frontcover and Back-Cover Texts on the back cover Both covers must also clearly andlegibly identify you as the publisher of these copies The front cover must present thefull title with all words of the title equally prominent and visible You may add other

132 OpenSS7 SS7 Stack

material on the covers in addition Copying with changes limited to the covers as longas they preserve the title of the Document and satisfy these conditions can be treatedas verbatim copying in other respectsIf the required texts for either cover are too voluminous to fit legibly you should putthe first ones listed (as many as fit reasonably) on the actual cover and continue therest onto adjacent pagesIf you publish or distribute Opaque copies of the Document numbering more than 100you must either include a machine-readable Transparent copy along with each Opaquecopy or state in or with each Opaque copy a publicly-accessible computer-networklocation containing a complete Transparent copy of the Document free of added ma-terial which the general network-using public has access to download anonymously atno charge using public-standard network protocols If you use the latter option youmust take reasonably prudent steps when you begin distribution of Opaque copiesin quantity to ensure that this Transparent copy will remain thus accessible at thestated location until at least one year after the last time you distribute an Opaquecopy (directly or through your agents or retailers) of that edition to the publicIt is requested but not required that you contact the authors of the Document wellbefore redistributing any large number of copies to give them a chance to provide youwith an updated version of the Document

4 MODIFICATIONSYou may copy and distribute a Modified Version of the Document under the conditionsof sections 2 and 3 above provided that you release the Modified Version under preciselythis License with the Modified Version filling the role of the Document thus licensingdistribution and modification of the Modified Version to whoever possesses a copy ofit In addition you must do these things in the Modified VersionA Use in the Title Page (and on the covers if any) a title distinct from that of the

Document and from those of previous versions (which should if there were anybe listed in the History section of the Document) You may use the same title asa previous version if the original publisher of that version gives permission

B List on the Title Page as authors one or more persons or entities responsible forauthorship of the modifications in the Modified Version together with at least fiveof the principal authors of the Document (all of its principal authors if it has lessthan five)

C State on the Title page the name of the publisher of the Modified Version as thepublisher

D Preserve all the copyright notices of the DocumentE Add an appropriate copyright notice for your modifications adjacent to the other

copyright noticesF Include immediately after the copyright notices a license notice giving the public

permission to use the Modified Version under the terms of this License in the formshown in the Addendum below

G Preserve in that license notice the full lists of Invariant Sections and required CoverTexts given in the Documentrsquos license notice

H Include an unaltered copy of this License

Licenses 133

I Preserve the section entitled ldquoHistoryrdquo and its title and add to it an item statingat least the title year new authors and publisher of the Modified Version asgiven on the Title Page If there is no section entitled ldquoHistoryrdquo in the Documentcreate one stating the title year authors and publisher of the Document as givenon its Title Page then add an item describing the Modified Version as stated inthe previous sentence

J Preserve the network location if any given in the Document for public access toa Transparent copy of the Document and likewise the network locations given inthe Document for previous versions it was based on These may be placed in theldquoHistoryrdquo section You may omit a network location for a work that was publishedat least four years before the Document itself or if the original publisher of theversion it refers to gives permission

K In any section entitled ldquoAcknowledgmentsrdquo or ldquoDedicationsrdquo preserve the sec-tionrsquos title and preserve in the section all the substance and tone of each of thecontributor acknowledgments andor dedications given therein

L Preserve all the Invariant Sections of the Document unaltered in their text andin their titles Section numbers or the equivalent are not considered part of thesection titles

M Delete any section entitled ldquoEndorsementsrdquo Such a section may not be includedin the Modified Version

N Do not retitle any existing section as ldquoEndorsementsrdquo or to conflict in title withany Invariant Section

If the Modified Version includes new front-matter sections or appendices that qualifyas Secondary Sections and contain no material copied from the Document you may atyour option designate some or all of these sections as invariant To do this add theirtitles to the list of Invariant Sections in the Modified Versionrsquos license notice Thesetitles must be distinct from any other section titlesYou may add a section entitled ldquoEndorsementsrdquo provided it contains nothing butendorsements of your Modified Version by various partiesmdashfor example statements ofpeer review or that the text has been approved by an organization as the authoritativedefinition of a standardYou may add a passage of up to five words as a Front-Cover Text and a passage of upto 25 words as a Back-Cover Text to the end of the list of Cover Texts in the ModifiedVersion Only one passage of Front-Cover Text and one of Back-Cover Text may beadded by (or through arrangements made by) any one entity If the Document alreadyincludes a cover text for the same cover previously added by you or by arrangementmade by the same entity you are acting on behalf of you may not add another butyou may replace the old one on explicit permission from the previous publisher thatadded the old oneThe author(s) and publisher(s) of the Document do not by this License give permissionto use their names for publicity for or to assert or imply endorsement of any ModifiedVersion

5 COMBINING DOCUMENTSYou may combine the Document with other documents released under this Licenseunder the terms defined in section 4 above for modified versions provided that you

134 OpenSS7 SS7 Stack

include in the combination all of the Invariant Sections of all of the original documentsunmodified and list them all as Invariant Sections of your combined work in its licensenoticeThe combined work need only contain one copy of this License and multiple identicalInvariant Sections may be replaced with a single copy If there are multiple InvariantSections with the same name but different contents make the title of each such sectionunique by adding at the end of it in parentheses the name of the original author orpublisher of that section if known or else a unique number Make the same adjustmentto the section titles in the list of Invariant Sections in the license notice of the combinedworkIn the combination you must combine any sections entitled ldquoHistoryrdquo in the variousoriginal documents forming one section entitled ldquoHistoryrdquo likewise combine any sec-tions entitled ldquoAcknowledgmentsrdquo and any sections entitled ldquoDedicationsrdquo You mustdelete all sections entitled ldquoEndorsementsrdquo

6 COLLECTIONS OF DOCUMENTSYou may make a collection consisting of the Document and other documents releasedunder this License and replace the individual copies of this License in the variousdocuments with a single copy that is included in the collection provided that youfollow the rules of this License for verbatim copying of each of the documents in allother respectsYou may extract a single document from such a collection and distribute it individu-ally under this License provided you insert a copy of this License into the extracteddocument and follow this License in all other respects regarding verbatim copying ofthat document

7 AGGREGATION WITH INDEPENDENT WORKSA compilation of the Document or its derivatives with other separate and independentdocuments or works in or on a volume of a storage or distribution medium does notas a whole count as a Modified Version of the Document provided no compilationcopyright is claimed for the compilation Such a compilation is called an ldquoaggregaterdquoand this License does not apply to the other self-contained works thus compiled withthe Document on account of their being thus compiled if they are not themselvesderivative works of the DocumentIf the Cover Text requirement of section 3 is applicable to these copies of the Documentthen if the Document is less than one quarter of the entire aggregate the DocumentrsquosCover Texts may be placed on covers that surround only the Document within theaggregate Otherwise they must appear on covers around the whole aggregate

8 TRANSLATIONTranslation is considered a kind of modification so you may distribute translationsof the Document under the terms of section 4 Replacing Invariant Sections withtranslations requires special permission from their copyright holders but you mayinclude translations of some or all Invariant Sections in addition to the original versionsof these Invariant Sections You may include a translation of this License provided thatyou also include the original English version of this License In case of a disagreementbetween the translation and the original English version of this License the originalEnglish version will prevail

Licenses 135

9 TERMINATIONYou may not copy modify sublicense or distribute the Document except as expresslyprovided for under this License Any other attempt to copy modify sublicense ordistribute the Document is void and will automatically terminate your rights underthis License However parties who have received copies or rights from you under thisLicense will not have their licenses terminated so long as such parties remain in fullcompliance

10 FUTURE REVISIONS OF THIS LICENSEThe Free Software Foundation may publish new revised versions of the GNU FreeDocumentation License from time to time Such new versions will be similar in spiritto the present version but may differ in detail to address new problems or concernsSee httpwwwgnuorgcopyleftEach version of the License is given a distinguishing version number If the Documentspecifies that a particular numbered version of this License ldquoor any later versionrdquoapplies to it you have the option of following the terms and conditions either of thatspecified version or of any later version that has been published (not as a draft) bythe Free Software Foundation If the Document does not specify a version number ofthis License you may choose any version ever published (not as a draft) by the FreeSoftware Foundation

END OF TERMS AND CONDITIONS

136 OpenSS7 SS7 Stack

How to use this License for your documents

To use this License in a document you have written include a copy of the License in thedocument and put the following copyright and license notices just after the title page

Copyright (C) year your name

Permission is granted to copy distribute andor modify this document

under the terms of the GNU Free Documentation License Version 11

or any later version published by the Free Software Foundation

with the Invariant Sections being list their titles with the

Front-Cover Texts being list and with the Back-Cover Texts being list

A copy of the license is included in the section entitled lsquolsquoGNU

Free Documentation Licensersquorsquo

If you have no Invariant Sections write ldquowith no Invariant Sectionsrdquo instead of saying whichones are invariant If you have no Front-Cover Texts write ldquono Front-Cover Textsrdquo insteadof ldquoFront-Cover Texts being listrdquo likewise for Back-Cover TextsIf your document contains nontrivial examples of program code we recommend releasingthese examples in parallel under your choice of free software license such as the GNUGeneral Public License to permit their use in free software

Indices 137

Indices

Index of Concepts

Aapplications 19apt 48 51Architectures 36authors 5

Bbinary debs 54 63 80binary rpms 51 62 79 80bug reports automatic generation 99bug reports generating 98bug reports stand along generation 100bugs 43bugs history 44bugs known 44bugs reporting 97building 77building source dscs 78building source srpm 77building tar ball 78

Ccheckout cvs 59compatibility 34configuration 61configure environment variables 74configure options 67configuring binary debs 63configuring binary rpms 62configuring source dscs 67configuring source srpm 63configuring tar ball 67conformance 31contributors 5conventions 16credits 4cvs 59

Ddefinitions 16device 28device drivers 28downloading 49downloading apt 51downloading binary rpms 51downloading debian debs 54downloading debian dscs 57downloading source srpm 57

downloading tar ball 58downloading yum 49drivers 28

Ggenerating bug reports 98 100generating bug reports automatically 99generating problem reports 98generating problem reports automatically 99generating problem reports stand alone 100GNULinux Distributions 34

Hhistory 46history bugs 44

Iindices 137installation 47installing 79installing binary debs 80installing binary rpms 79installing tar ball 80introduction 15

KKernel 36known bugs 44known problems 101

Llicense AGPL 104license FDL 130license GNU Affero General Public License 104license GNU Free Documentation License 130license GNU General Public License 115license GPL 115license Lesser General Public License 127license LGPL 127licenses 103licensing 1Linux Fast-STREAMS 37Linux STREAMS 37loading 81

138 OpenSS7 SS7 Stack

Mmaintainer 5manual abstract 1manual audience 1manual disclaimer 4manual intent 1manual notice 1manual objective 1manual revisions 2maturity 42

Oobjective 17organization 15overview 15

Ppost-installation checks 96pre-installation checks 93prerequisites 33problem reports 97problems known 101

Qquick start guide 9

Rreference 19release notes 37release strss7-09a-1 42release strss7-09a-2 41release strss7-09a-3 41release strss7-09a-4 41release strss7-09a5 40release strss7-09a6 39release strss7-09a7 38release strss7-09a8 37releases 33removing 80removing binary debs 80removing binary rpms 80removing source dscs 81removing source srpm 81

removing tar ball 81reporting bugs 97repositories 47repositories apt 48repositories yum 47

Sschedule 45source dscs 57 67 78 81source rpms 57 63 77 81sponsors 4ss7 protocol stack 20strss7-dev-09a8-172i686rpm 62strss7-devel-09a8-172i686rpm 62strss7-doc-09a8-172i686rpm 62strss7-LiS-core-2420-287-09a8-172i686rpm

62strss7-LiS-info-2420-287-09a8-172i686rpm

62strss7-LiS-lib-09a8-172i686rpm 62strss7-LiS-util-09a8-172i686rpm 63strss7-source-09a8-172i686rpm 63strss7-streams-core-2420-287-09a8-172i686-

rpm 62strss7-streams-info-2420-287-09a8-172i686-

rpm 62strss7-streams-lib-09a8-172i686rpm 62strss7-streams-util-09a8-172i686rpm 63

Ttar ball 58 67 78 80 81test suites 93test suites running 97troubleshooting 93

Wweb resources 6

Xx400p t400p t100p e400p e100p te405p te410p 29

Yyum 47 49

Indices 139

Index of Data Types

Aapt-get(8) 38

Y

yum(8) 38

140 OpenSS7 SS7 Stack

Index of Functions and Macros

(Index is nonexistent)

Indices 141

Index of Variables and Constants

AAUTOM4TE 77AUTOTEST 77

BBZIP2 75BZIP2_CMD 75

CCHKCONFIG 75

DDEB_BUILD_ARCH 75DEB_BUILD_GNU_CPU 76DEB_BUILD_GNU_SYSTEM 76DEB_BUILD_GNU_TYPE 76DEB_HOST_ARCH 76DEB_HOST_GNU_CPU 76DEB_HOST_GNU_SYSTEM 76DEB_HOST_GNU_TYPE 76DEPMOD 76DESTDIR 76DPKG 75DPKG_BUILDPACKAGE 75DPKG_SOURCE 75

GGENKSYMS 77GNUPGHOME 74GNUPGUSER 74GPG 74GPGPASSWD 74GZIP 75GZIP_CMD 75

IIRQF_DISABLED 37IRQF_SHARED 37

KKGENKSYMS 77

LLDCONFIG 76LSMOD 76LSOF 76

MMAKEWHATIS 75MODPOST_CACHE 77MODPROBE 76MODULE_VERSION 38

NNM 77

OOBJDUMP 77

PPACKAGE_KVERSION 64PIC 75

RREFER 74RPM 75RPMBUILD 75

SSA_INTERRUPT 37SA_SHIRQ 37SOELIM 74

TTBL 74

142 OpenSS7 SS7 Stack

Index of Files and Programs

libmodules2420-287streams 82

Indices 143

Index of Configuration Options

332bit-libs 68

Aarch 69autotest 68

Bbase-major 74

Cchecks 65 68compress-manpages 68cooked-manpages 65 71

Ddeb-epoch 72deb-release 72deb-topdir 72devel 66 69devfs 70docs 66 69

Ggpg-home 71gpg-user 70

Iindep 69initscripts 68

Kk-archdir 73k-build 72k-config 73

k-debug 65 70k-inline 66 70k-linkage 72k-machdir 73k-modules 72k-modversions 66 70k-optimize 65 73k-release 64 72k-safe 66 70k-sysmap 73k-test 65 70

Llfs 67 74lis 67 73

Mmodules 67 69

Ppkg-distdir 71pkg-epoch 71pkg-release 71public 65 68

Rrpm-epoch 71rpm-extra 71rpm-release 71rpm-topdir 71

Sstrconf-master 74

Ttools 66 69

144 OpenSS7 SS7 Stack

Index of Makefile Targets

Aall 82 83

Ccheck 83check-clean 86checklog 88clean 85compilelog 88csig 92

Ddebs 91dist 85distlog 88distcheck 85distchecklog 88distclean 85doxy 92dsc 91

Fforced-release 87forced-release-sign 87

Iinstall 82 83install-mans 86install-strip 82 83installlog 88installcheck 84installchecklog 88

Mmaintainer-clean 86

mans 86mostlyclean 85

Ppr 89 99

Rrebuild 91rebuildlog 88release 87release-archives 89release-clean 87release-clean-archives 90release-sign 87release-sign-archives 90release-signlog 89releaselog 88remove 84removelog 88resign 91resignlog 88retest 84rpms 90

Ssend-pr 89sign 90sigs 91srpm 90srpm-sign 90srpmlog 88

Uuninstall 84uninstall-mans 86uninstalllog 88

Indices 145

Index of Authors

Bidulock Brian 5

146 OpenSS7 SS7 Stack

Index of Manual Pages Referenced

Aapt(8) 9 47 51autoconf(1) 9 52 55 58 60 61 67 79 84autom4te(1) 77automake(1) 60 65 66 67 69 70 80 81 83

84 85 86 87 88autoreconf(1) 83

Bbzip2(1) 75

Cchkconfig(8) 75cvs(1) 9 59

Ddepmod(8) 76devfsd(1) 66devfsd(8) 70doxygen(1) 92dpkg(1) 47 49 58 61 69 71 75 84dpkg(8) 80 81dpkg-buildpackage(1) 75dpkg-source(1) 75

Eethereal(1) 46

Ggcc(1) 11genksyms(8) 60 77gettext(1) 67git(1) 9gpg(1) 70grefer(1) 60 65 71groff(1) 60 65 71gzip(1) 75

Iinit_install(8) 75init_remove(8) 75

Lldconfig(8) 76libtool(1) 67lsmod(8) 76lsof(1) 76

Mmake(1) 61 68makewhatis(8) 75modpost(1) 77modprobe(8) 76

Nnm(1) 77

Oobjdump(1) 77

Ppcap(3) 46pic(1) 65 71 75

Rrefer(1) 65 71 74rpm(1) 47 49 51 58 61 69 71 75 77 79 80

84 87 90rpm(8) 63 79rpmbuild(1) 64 75

Ssoelim(1) 65 71 74STREAMS(9) 1

Ttar(1) 58 85tbl(1) 65 71 74tee(1) 87texinfo(1) 66 69

Wwget(1) 47 58wireshark(1) 46

Yyast(8) 47yum(8) 9 47 49 51

Zzypper(8) 47 49

  • Preface
    • Notice
    • Abstract
      • Objective
      • Intent
      • Audience
        • Revisions
          • Version Control
          • ISO 9000 Compliance
            • Disclaimer
              • US Government Restricted Rights
                • Acknowledgements
                  • Sponsors
                  • Contributors
                    • Authors
                    • Maintainer
                    • Web Resources
                      • Quick Start Guide
                        • OpenSS7 SS7 Stack
                          • Release
                          • Prerequisites
                          • Installation
                          • Brief Installation Instructions
                          • Detailed Installation Instructions
                              • Introduction
                                • Overview
                                • Organization of this Manual
                                • Conventions and Definitions
                                  • Objective
                                  • Reference
                                    • Applications
                                    • SS7 Protocol Stack
                                      • Signalling Data Link (SDL)
                                      • Signalling Data Terminal (SDT)
                                      • Signalling Link (SL)
                                      • Message Transfer Part (MTP)
                                      • Signalling Connection Control Part (SCCP)
                                      • Transaction Capabilities Application Part (TCAP)
                                      • Base Station System Application Part (BSSAP)
                                        • Device Drivers
                                          • Digium Drivers
                                          • SeaLevel ACB56 Drivers
                                              • Conformance
                                              • Releases
                                                • Prerequisites
                                                • Compatibility
                                                  • GNULinux Distributions
                                                  • Kernel
                                                  • Architectures
                                                  • Linux STREAMS
                                                  • Linux Fast-STREAMS
                                                    • Release Notes
                                                      • Major changes for release strss7-09a8
                                                      • Major changes for release strss7-09a7
                                                      • Major changes for release strss7-09a6
                                                      • Major changes for release strss7-09a5
                                                      • Major changes for release strss7-09a-4
                                                      • Major changes for release strss7-09a-3
                                                      • Major changes for release strss7-09a-2
                                                      • Initial release strss7-09a-1
                                                        • Maturity
                                                          • Pre-Alpha Releases
                                                          • Alpha Releases
                                                          • Beta Releases
                                                          • Gamma Releases
                                                          • Production Releases
                                                          • Unstable Releases
                                                            • Bugs
                                                              • Defect Notices
                                                              • Known Defects
                                                              • Defect History
                                                                • Schedule
                                                                • History
                                                                  • Installation
                                                                    • Repositories
                                                                      • Repositories for YUM
                                                                      • Repositories for APT
                                                                        • Downloading
                                                                          • Downloading with YUM
                                                                          • Downloading with APT
                                                                          • Downloading the Binary RPM
                                                                          • Downloading the Debian DEB
                                                                          • Downloading the Source RPM
                                                                          • Downloading the Debian DSC
                                                                          • Downloading the Tar Ball
                                                                          • Downloading from CVS
                                                                            • Configuration
                                                                              • Configuring the Binary RPM
                                                                              • Configuring the Debian DEB
                                                                              • Configuring the Source RPM
                                                                              • Configuring the Debian DSC
                                                                              • Configuring the Tar Ball
                                                                                • Configure Options
                                                                                • Environment Variables
                                                                                • Build
                                                                                    • Building
                                                                                      • Building from the Source RPM
                                                                                      • Building from the Debian DSC
                                                                                      • Building from the Tar Ball
                                                                                        • Native Build
                                                                                        • Cross-Build
                                                                                            • Installing
                                                                                              • Installing the Binary RPM
                                                                                              • Installing the Debian DEB
                                                                                              • Installing the Tar Ball
                                                                                                • Removing
                                                                                                  • Removing the Binary RPM
                                                                                                  • Removing the Debian DEB
                                                                                                  • Removing the Source RPM
                                                                                                  • Removing the Debian DSC
                                                                                                  • Removing the Tar Ball
                                                                                                    • Loading
                                                                                                      • Normal Module Loading
                                                                                                        • Linux Fast-STREAMS Module Loading
                                                                                                        • Linux STREAMS Module Loading
                                                                                                            • Maintenance
                                                                                                              • Makefile Targets
                                                                                                                • User Targets
                                                                                                                • Maintainer Targets
                                                                                                                • Clean Targets
                                                                                                                • Manual Page Targets
                                                                                                                • Release Targets
                                                                                                                • Logging Targets
                                                                                                                • Problem Report Targets
                                                                                                                • Release Archive Targets
                                                                                                                • RPM Build Targets
                                                                                                                • Debian Build Targets
                                                                                                                • Documentation Targets
                                                                                                                  • Troubleshooting
                                                                                                                    • Test Suites
                                                                                                                      • Pre-installation Checks
                                                                                                                        • Pre-Installation System Checks
                                                                                                                        • Pre-Installation Maintenance Checks
                                                                                                                        • Specific Pre-Installation Checks
                                                                                                                          • Post-installation Checks
                                                                                                                            • Running Test Suites
                                                                                                                                • Problem Reports
                                                                                                                                  • Problem Report Guidelines
                                                                                                                                  • Generating Problem Reports
                                                                                                                                  • Automatic Problem Reports
                                                                                                                                  • Stand Alone Problem Reports
                                                                                                                                    • Known Problems
                                                                                                                                      • Licenses
                                                                                                                                        • GNU Affero General Public License
                                                                                                                                          • Preamble
                                                                                                                                          • How to Apply These Terms to Your New Programs
                                                                                                                                            • GNU General Public License
                                                                                                                                              • Preamble
                                                                                                                                              • How to Apply These Terms to Your New Programs
                                                                                                                                                • GNU Lesser General Public License
                                                                                                                                                  • Terms and Conditions
                                                                                                                                                    • GNU Free Documentation License
                                                                                                                                                      • Preamble
                                                                                                                                                      • Terms and Conditions for Copying Distribution and Modification
                                                                                                                                                      • How to use this License for your documents
                                                                                                                                                          • Indices
                                                                                                                                                            • Index of Concepts
                                                                                                                                                            • Index of Data Types
                                                                                                                                                            • Index of Functions and Macros
                                                                                                                                                            • Index of Variables and Constants
                                                                                                                                                            • Index of Files and Programs
                                                                                                                                                            • Index of Configuration Options
                                                                                                                                                            • Index of Makefile Targets
                                                                                                                                                            • Index of Authors
                                                                                                                                                            • Index of Manual Pages Referenced
Page 7: OpenSS7 SS7 Stack Installation and Reference Manual · 2008. 10. 31. · vi OpenSS7 SS7 Stack 6.8.1.5 Release Targets:::::86 6.8.1.6 Logging Targets::::: 87 6.8.1.7 Problem Report

vi OpenSS7 SS7 Stack

6815 Release Targets 866816 Logging Targets 876817 Problem Report Targets 896818 Release Archive Targets 896819 RPM Build Targets 9068110 Debian Build Targets 9168111 Documentation Targets 92

7 Troubleshooting 9371 Test Suites 93

711 Pre-installation Checks 937111 Pre-Installation System Checks 937112 Pre-Installation Maintenance Checks 947113 Specific Pre-Installation Checks 94

712 Post-installation Checks 967121 Running Test Suites 97

72 Problem Reports 97721 Problem Report Guidelines 98722 Generating Problem Reports 98723 Automatic Problem Reports 99724 Stand Alone Problem Reports 100

73 Known Problems 101

Licenses 103GNU Affero General Public License 104

Preamble 104How to Apply These Terms to Your New Programs 114

GNU General Public License 115Preamble 115How to Apply These Terms to Your New Programs 126

GNU Lesser General Public License 127Terms and Conditions 127

GNU Free Documentation License 130Preamble 130Terms and Conditions for Copying Distribution and Modification

130How to use this License for your documents 136

Indices 137Index of Concepts 137Index of Data Types 139Index of Functions and Macros 140Index of Variables and Constants 141Index of Files and Programs 142Index of Configuration Options 143Index of Makefile Targets 144Index of Authors 145Index of Manual Pages Referenced 146

Preface 1

Preface

Notice

This package is released and distributed under the AGPL (see [GNU Affero General PublicLicense] page 104) Please note however that there are different licensing terms for themanual pages and some of the documentation (derived from OpenGroup1 publications andother sources) Consult the permission notices contained in the documentation for moreinformationThis manual is released under the FDL (see [GNU Free Documentation License] page 130)with no sections invariant

Abstract

This manual provides a Installation and Reference Manual for OpenSS7 SS7 Stack

Objective

The objective of this manual is to provide a guide for the STREAMS programmer whendeveloping STREAMS modules drivers and application programs for OpenSS7 SS7 StackThis guide provides information to developers on the use of the STREAMS mechanism atuser and kernel levelsSTREAMS was incorporated in UNIX System V Release 3 to augment the character in-putoutput (IO) mechanism and to support development of communication servicesSTREAMS provides developers with integral functions a set of utility routines and facilitiesthat expedite software design and implementation

Intent

The intent of this manual is to act as an introductory guide to the STREAMS programmerIt is intended to be read alone and is not intended to replace or supplement the OpenSS7 SS7Stack manual pages For a reference for writing code the manual pages (see STREAMS(9))provide a better reference to the programmer Although this describes the features of theOpenSS7 SS7 Stack package OpenSS7 Corporation is under no obligation to provide anysoftware system or feature listed herein

Audience

This manual is intended for a highly technical audience The reader should already befamiliar with Linux kernel programming the Linux file system character devices driverinput and output interrupts software interrupt handling scheduling process contextsmultiprocessor locks etcThe guide is intended for network and systems programmers who use the STREAMSmechanism at user and kernel levels for Linux and UNIX system communication servicesReaders of the guide are expected to possess prior knowledge of the Linux and UNIX systemprogramming networking and data communication

1 Formerly XOpen and UNIX International

2 OpenSS7 SS7 Stack

Revisions

Take care that you are working with a current version of this manual you will not benotified of updates To ensure that you are working with a current version contact theAuthor or check The OpenSS7 Project website for a current versionA current version of this manual is normally distributed with the OpenSS7 SS7 Stackpackage strss7-09a82

Version Controlstrss7texiv

Revision 09227 2008-09-20 110426 brian

- added package patchlevel

Revision 09226 2008-08-03 060328 brian

- protected agains texinfo commands in log entries

Revision 09225 20080727 084858 brian

- no invariant sections more libtool ignores

Revision 09224 2008-04-29 071035 brian

- updating headers for release

Revision 09223 2008-04-25 115046 brian

- updates to AGPLv3

Revision 09222 20070815 051816 brian

- GPLv3 updates

Revision 09221 20070812 064407 brian

- updated licenses in manuals

Revision 09220 20070803 133451 brian

- manual updates put ss7 modules in public release

Revision 09219 20070228 063035 brian

- updates and corrections ifdef instead of if

Revision 09218 20061002 113129 brian

- changes to get master builds working for RPM and DEB

- added outside licenses to package documentation

- added LICENSE automated release file

- copy MANUAL to source directory

- add and remove devices in -dev debian subpackages

- get debian rules working better

- release library version files

- added notes to debian changelog

- corrections for cooked manual pages in spec files

- added release documentation to spec and rules files

- copyright header updates

- moved controlling tty checks in stream head

- missing some defines for LiS build in various source files

- added OSI headers to striso package

- added includes and manual page paths to acincludes for various packages

- added sunrpc uidlpi uinpi and uitpi licenses to documentation and release

files

2 httpwwwopenss7orgtarballsstrss7-09a8tarbz2

Preface 3

- moved pragma weak statements ahead of declarations

- changes for master build of RPMS and DEBS with LiS

Revision 09217 20060828 104655 brian

- correction

Revision 09216 20060828 103246 brian

- updated references

Revision 09215 20060827 122638 brian

- finalizing auto release files

Revision 09214 20060826 091650 brian

- better release file generation

Revision 09213 20060823 110028 brian

- added preface corrections and updates for release

Revision 09212 20060822 124409 brian

- documentation updates

Revision 09211 20060322 100200 brian

- added makefile target index

Revision 09210 20060303 120609 brian

- 3264-bit compatibility

Revision 0929 20050708 131556 brian

- updates to documentation

Revision 0928 20050624 133859 brian

- added troubleshooting section to manuals

Revision 0927 20050514 083346 brian

- copyright header correction

Revision 0926 20050412 092906 brian

- corrections

Revision 0925 20050411 204840 brian

- documentation updates and corrections

Revision 0924 20050315 005650 brian

- Updated version numbering in texinfo files

Revision 0923 20050315 005147 brian

- Updated version numbering in texinfo files

Revision 0922 20050217 200011 brian

- Fixes for texi documentation

Revision 0921 20050126 082418 brian

- Changed name of texinfo file

Revision 09 20050126 082418 brian

file strss7texi was initially added on branch OpenSS7-0_9_2

4 OpenSS7 SS7 Stack

ISO 9000 Compliance

Only the TEX texinfo or roff source for this manual is controlled An opaque (printedpostscript or portable document format) version of this manual is an UNCONTROLLEDVERSION

Disclaimer

OpenSS7 Corporation disclaims all warranties with regard to this documentation includingall implied warranties of merchantability fitness for a particular purpose non-infringementor title that the contents of the manual are suitable for any purpose or that the implemen-tation of such contents will not infringe on any third party patents copyrights trademarksor other rights In no event shall OpenSS7 Corporation be liable for any direct indirectspecial or consequential damages or any damages whatsoever resulting from loss of usedata or profits whether in an action of contract negligence or other tortious action arisingout of or in connection with any use of this manual or the performance or implementationof the contents thereof

OpenSS7 Corporation reserves the right to revise this software and documentation for anyreason including but not limited to conformity with standards promulgated by variousagencies utilization of advances in the state of the technical arts or the reflection of changesin the design of any techniques or procedures embodied described or referred to hereinOpenSS7 Corporation is under no obligation to provide any feature listed herein

US Government Restricted Rights

If you are licensing this Software on behalf of the US Government (Government) thefollowing provisions apply to you If the Software is supplied by the Department of Defense(DoD) it is classified as Commercial Computer Software under paragraph 252227-7014of the DoD Supplement to the Federal Acquisition Regulations (DFARS) (or any successorregulations) and the Government is acquiring only the license rights granted herein (thelicense rights customarily provided to non-Government users) If the Software is suppliedto any unit or agency of the Government other than DoD it is classified as RestrictedComputer Software and the Governmentrsquos rights in the Software are defined in paragraph52227-19 of the Federal Acquisition Regulations (FAR) (or any successor regulations) orin the cases of NASA in paragraph 1852227-86 of the NASA Supplement to the FAR (orany successor regulations)

Acknowledgements

As with most open source projects this project would not have been possible withoutthe valiant efforts and productive software of the Free Software Foundation and the LinuxKernel Community

Sponsors

Funding for completion of the OpenSS7 OpenSS7 SS7 Stack package was provided in partby

bull OpenSS7 Corporation

Additional funding for The OpenSS7 Project was provided by

Preface 5

bull OpenSS7 Corporationbull Lockheed Martin Cobull Motorolabull HOB Internationalbull Comverse Ltdbull Sonus Networks Incbull France Telecombull SS8 Networks Incbull Nortel Networksbull Verisignbull eServGlobal (NZ) Pty Ltdbull NetCentrex S Abull SysMaster Corporationbull GeoLink SAbull AirNet Communicationsbull TECOREbull Tumsan Oybull Vodare Ltdbull Excel Telecommunications

Contributors

The primary contributor to the OpenSS7 OpenSS7 SS7 Stack package is Brian F G Bidu-lock The following is a list of significant contributors to The OpenSS7 Project

minus Per Berquistminus John Boydminus Chuck Wintersminus Peter Courtneyminus Tom Chandlerminus Gurol Ackmanminus Kutluk Testiciogluminus John Wenkerminus Others

Authors

The authors of the OpenSS7 OpenSS7 SS7 Stack package includeminus Brian Bidulock

See [Index of Authors] page 145 for a complete listing and cross-index of authors to sectionsof this manual

Maintainer

The maintainer of the OpenSS7 OpenSS7 SS7 Stack package isminus Brian Bidulock

Please send bug reports to bugsopenss7org using the lsquosend-prrsquo script included in thepackage only after reading the lsquoBUGSrsquo file in the release or See Section 72 [Problem Re-ports] page 97

6 OpenSS7 SS7 Stack

Web Resources

The OpenSS7 Project provides a website dedicated to the software packages released by theOpenSS7 Project

Bug Reports

Please send bug reports to bugsopenss7org using the lsquosend-prrsquo script included inthe OpenSS7 SS7 Stack package only after reading the lsquoBUGSrsquo file in the release or SeeSection 72 [Problem Reports] page 97 You can access the OpenSS7 GNATS databasedirectly via the web however the preferred method for sending new bug reports is viamail with the lsquosend-prrsquo script

Mailing Lists

The OpenSS7 Project provides a number of general discussion Mailing Lists for discussionconcerning the OpenSS7 OpenSS7 SS7 Stack package as well as other packages released byThe OpenSS7 ProjectThese are mailman mailing lists and so have convenient web interfaces for subscribers tocontrol their settings See httpwwwopenss7orgmailinglisthtmlThe mailing lists are as follows

lsquoopenss7rsquo The lsquoopenss7rsquo mailing list is for general enquiries information exchange andannouncements regarding the OpenSS7 Project This is our original mailinglist and takes the highest amount of traffic

lsquoopenss7-announcersquoThe lsquoopenss7-announcersquo mailing list is for announcements related to theOpenSS7 Project This list will accept announcements posted by subscribersSubscribe to this list if you are interested in announcements from theOpenSS7 Project subscribers and sponsors related to the OpenSS7 Projector STREAMS SS7 SIGTRAN or SCTP in general

lsquoopenss7-cvsrsquoThe lsquoopenss7-cvsrsquo mailing list is for automatic CVS log reporting You mustget permission of the owner to subscribe to this list Subscribers are not allowedto post to this list this is merely for distributing notification of changes to theCVS repositoryh

lsquoopenss7-developrsquoThe lsquoopenss7-developrsquo mailing list is for email exchange related to the de-velopment projects under the OpenSS7 Project This includes developmentrequests proposals requests for comment or proposal Subscribe to this listif you are interested in ongoing development details regarding the OpenSS7Project

lsquoopenss7-testrsquoThe lsquoopenss7-testrsquo mailing list is for email exchange related to the testingof code under the OpenSS7 Project This specifically relates to conformancetesting verification testing interoperability testing and beta testing Subscribeto this list if you are interested in participating in and receiving ongoing detailsof test activities under the OpenSS7 Project

Preface 7

lsquoopenss7-bugsrsquoThe lsquoopenss7-bugsrsquo mailing list is specifically tailored to bug tracking Themailing list takes a feed from the OpenSS7 GNATS bug tracking system andaccepts posting of responses to bug reports tracking and resolution Subscribeto this list if you are interested in receiving detailed OpenSS7 release code bugtracking information This list is not archived for historical information onproblem reports see our GNATS databases

lsquoopenss7-updatesrsquoThe lsquoopenss7-updatesrsquo mailing list provides updates on OpenSS7 Project codereleases and ongoing activities Subscribers are not allowed to post to this listthis list is for official OpenSS7 Project announcements only Subscribe to thislist if you are interested in receiving updates concerning official releases andactivities of the OpenSS7 Project

lsquoopenss7-streamsrsquoThe lsquoopenss7-streamsrsquo mailing list is for email exchange related to theSTREAMS development projects under the OpenSS7 Project This includesdevelopment requests proposals requests for comment or proposal Subscribeto this list if you are interested in ongoing development details regarding theOpenSS7 Project STREAMS components

lsquolinux-streamsrsquoThe lsquolinux-streamsrsquo mailing list is for mail exchange related to LinuxFast-STREAMS or Linux STREAMS This includes patches developmentrequests proposals requests for comment or proposal Subscribe to this list ifyou are interested in ongoing development details regarding the STREAMSfor Linux components This is the the new (September 2006) home of thelsquolinux-streamsrsquo list formerly of gsycesceturjces

Spam

To avoid spam being sent to the members of the OpenSS7 mailing list(s) we have blockedmail from non-subscribers Please subscribe to the mailing list before attempting to postto them (Attempts to post when not subscribed get bounced)As an additional measure against spam subscriber lists for all OpenSS7 mailing lists arenot accessible to non-subscribers for most lists subscriber lists are only accessible to thelist administrator This keeps your mailing address from being picked off our website bybulk mailers

Acceptable Use Policy

It is acceptable to post professional and courteous messages regarding the OpenSS7 packageor any general information or questions concerning STREAMS SS7 SIGTRAN SCTP ortelecommunications applications in general

Large Attachments

The mailing list is blocked from messages of greater than 40k If you have attachments(patches test programs etc) and you mail them to the list it will bounce to the listadministrator If you are interested in making your patches test programs test results or

8 OpenSS7 SS7 Stack

other large attachments available to the members of the mailing list state in the messagethat you would like them posted and the list administrator will place them in the mailarchives

Quick Start Guide 9

Quick Start Guide

OpenSS7 SS7 Stack

Package strss7-09a8 was released under AGPLv3 2008-10-31

The OpenSS7 SS7 Stack package includes a wide array of kernel modules SVR 42STREAMS drivers modules libraries utilities test programs daemons and developmentenvironment for the development and execution of Signalling System Number 7 (SS7)Signalling Transport (SIGTRAN) Integrated Services Digital Network (ISDN) and Voiceover IP (VoIP) protocol stack components and applications for the Linux Fast-STREAMSenvironment

However the current package has had ISDN components moved to the lsquostrisdnrsquo packageSIGTRAN components moved to the lsquosigtranrsquo package and VoIP components moved tothe lsquostrvoiprsquo package Only SS7 components remain in the lsquostrss7rsquo package

This distribution is only currently applicable to Linux 24 and 26 kernels and was tar-geted at ix86 x86_64 ppc and ppc64 architectures but should build and install for otherarchitectures as well

Release

This is the strss7-09a8 package released 2008-10-31 This lsquo09a8rsquo release and thelatest version can be obtained from the download area of The OpenSS7 Project websiteusing a command such as

$gt wget httpwwwopenss7orgtarballsstrss7-09a8tarbz2

The release is available as an autoconf(1) tarball lsquosrcrpmrsquo or lsquodscrsquo as a set of binarylsquorpmrsquos or lsquodebrsquos or as a yum(8) or apt(8) repository See the download page for theautoconf(1) tarballs lsquosrcrpmrsquos lsquodscrsquos or repository access instructions See the strss7package page for tarballs source and binary packages

Please see the lsquoNEWSrsquo file for release notes and history of user visible changes for the currentversion and the lsquoChangeLogrsquo file for a more detailed history of implementation changesThe lsquoTODOrsquo file lists features not yet implemented and other outstanding items

Please see the lsquoINSTALLrsquo lsquoINSTALL-strss7rsquo and lsquoREADME-makersquo files (or see Chapter 6[Installation] page 47) for installation instructions

When working from cvs(1) or git(1) please see the lsquoREADME-cvsrsquo file (or see Section 628[Downloading from CVS] page 59) An abbreviated installation procedure that works formost applications appears below

This release of the package is published strictly under Version 3 of the GNU Affero PublicLicense which can be found in the file lsquoCOPYINGrsquo Package specific licensing terms (if any)can be found in the file lsquoLICENSESrsquo Please respect these licensing arrangements If youare interested in different licensing terms please contact the copyright holder or OpenSS7Corporation ltsalesopenss7comgt

See lsquoREADME-alpharsquo (if it exists) for alpha release information

10 OpenSS7 SS7 Stack

Prerequisites

The quickest and easiest way to ensure that all prerequisites are met is to download andinstall this package from within the OpenSS7 Master Package openss7-092G insteadof separatelyPrerequisites for the OpenSS7 SS7 Stack package are as follows1 Linux distribution somewhat Linux Standards Base compliant with a 24 or 26 kernel

and the appropriate tool chain for compiling out-of-tree kernel modules Most recentLinux distributions are usable out of the box but some development packages must beinstalled For more information see Section 52 [Compatibility] page 34

minus A fairly LSB compliant GNULinux distribution1

minus Linux 24 kernel (2410 - 2427) orminus Linux 26 kernel (263 - 2626)minus glibc2 or betterminus GNU groff (for man pages)2

minus GNU texinfo (for info files)minus GNU bison and flex (for config programs)minus net-snmp (for SNMP agents)3

(Note If you acquired strss7 a part of the OpenSS7 Master Package then the dependencieslisted below will already have been met by unpacking the master package)2 OpenSS7 Linux Fast-STREAMS streams-09244

3 OpenSS7 STREAMS Compatibility Modules strcompat-09274 OpenSS7 STREAMS XNS strxns-09275 OpenSS7 STREAMS XTITLI strxnet-092126 OpenSS7 STREAM Network Services Library strnsl-0924 (Optional)7 OpenSS7 STREAMS Sockets strsock-0924 (Optional)8 OpenSS7 STREAMS INET strinet-09279 OpenSS7 STREAMS SCTP strsctp-0929

10 OpenSS7 STREAMS Channels strchan-092411 OpenSS7 STREAMS X25 strx25-092112 OpenSS7 STREAMS ISO striso-092413 OpenSS7 STREAMS ISDN strisdn-0924

When configuring and building multiple OpenSS7 Project release packages place all of thesource packages (unpacked tarballs) at the same directory level and all build directories atthe same directory level (eg all source packages under lsquousrsrcrsquo)When installing packages that install as kernel modules it is necessary to have the correctkernel development package installed For the following distributions use the followingcommands

1 See Section 521 [GNULinux Distributions] page 34 for more information2 If you are using a Debian release please make sure to install the groff extension package (lsquogroff_extrsquo) as

it contains the refer or grefer commands necessary for including references in the manual pages3 A wide range of net-snmp releases are supported from UCD-SNMP 425 through net-snmp 544 Although at one time this package supported LiS LiS is now deprecated and unsupported

Quick Start Guide 11

Ubuntu $gt apt-get install linux-headersDebian $gt apt-get install kernel-headersFedora $gt yum install kernel-devel

You also need the same version of gcc(1) compiler with which the kernel was built If it isnot the default add lsquoCC=kgccrsquo on the line after lsquoconfigurersquo for example

$gt strss7-09a8configure CC=rsquogcc-34rsquo

Installation

The following commands will download configure build check install validate uninstalland remove the package

$gt wget httpwwwopenss7orgtarballsstrss7-09a8tarbz2$gt tar -xjvf strss7-09a8tarbz2$gt mkdir build$gt pushd build$gt strss7-09a8configure --enable-autotest$gt make$gt make check$gt sudo make install$gt sudo make installcheck$gt sudo make uninstall$gt popd$gt sudo rm -rf build$gt rm -rf strss7-09a8$gt rm -f strss7-09a8tarbz2

If you have problems try building with the logging targets instead If the make of a loggingtarget fails an automatic problem report will be generated that can be mailed to TheOpenSS7 Project5 Installation steps using the logging targets proceed as follows

$gt wget httpwwwopenss7orgtarballsstrss7-09a8tarbz2$gt tar -xjvf strss7-09a8tarbz2$gt mkdir build$gt pushd build$gt strss7-09a8configure --enable-autotest$gt make compilelog$gt make checklog$gt sudo make installlog$gt sudo make installchecklog$gt sudo make uninstalllog$gt popd$gt sudo rm -rf build$gt rm -rf strss7-09a8$gt rm -f strss7-09a8tarbz2

See lsquoREADME-makersquo for additional specialized make targets

5 Please see Section 72 [Problem Reports] page 97 or the file lsquoPROBLEMSrsquo in the release directory for moreinformation on filing a proper Problem Report

12 OpenSS7 SS7 Stack

For custom applications see the lsquoINSTALLrsquo and lsquoINSTALL-strss7rsquo files or the see Chapter 6[Installation] page 47 as listed below If you encounter troubles see Chapter 7 [Trou-bleshooting] page 93 before issuing a bug report

Brief Installation Instructions

The OpenSS7 SS7 Stack package is available from the downloads area of The OpenSS7Project website using a command such as

$gt wget httpwwwopenss7orgtarballsstrss7-09a8tarbz2

Unpack the tarball using a command such as$gt tar -xjvf strss7-09a8tarbz2

The tarball will unpack into the relative subdirectory named after the package name strss7-09a8The package builds using the GNU autoconf utilities and the lsquoconfigurersquo script To buildthe package we recommend using a separate lsquobuildrsquo directory as follows

$gt mkdir build$gt cd build$gt strss7-09a8configure

In general the package configures and builds without adding any special options to thelsquoconfigurersquo script For general options to the lsquoconfigurersquo script see the GNU lsquoINSTALLrsquofile in the distribution

$gt less strss7-09a8INSTALL

For specific options to the lsquoconfigurersquo script see the lsquoINSTALL-strss7rsquo file in the distri-bution or simply execute the configure script with the lsquo--helprsquo option like so

$gt strss7-09a8configure --help

After configuring the package the package can be compiled simply by issuing the lsquomakersquocommand

$gt make

Some specialized makefile targets exists see the lsquoREADME-makersquo file in the distribution orsimply invoke the lsquohelprsquo target like so

$gt make help | less

After successfully building the package the package can be checked by invoking the lsquocheckrsquomake target like so

$gt make check

After successfully checking the package the package can be installed by invoking thelsquoinstallrsquo make target (as root) like so

$gt sudo make install

The test suites that ship with the package can be invoked after the package has been installedby invoking the lsquoinstallcheckrsquo target This target can either be invoked as root or as anormal user like so

$gt make installcheck

(Note you must add the lsquo--enable-autotestrsquo flag to lsquoconfigurersquo above for the test suitesto be invoked with lsquomake installcheckrsquo)The package can be cleanly removed by invoking the lsquouninstallrsquo target (as root)

Quick Start Guide 13

$gt sudo make uninstall

Then the build directory and tarball can be simply removed$gt cd $gt rm -rf build$gt rm -rf strss7-09a8$gt rm -f strss7-09a8tarbz2

Detailed Installation Instructions

More detailed installation instructions can be found in the Chapter 6 [Installation] page 47contained in the distribution in lsquotextrsquo lsquoinforsquo lsquohtmlrsquo and lsquopdfrsquo formats

$gt cd strss7-09a8$gt less docmanualstrss7txt$gt lynx docmanualstrss7html$gt info docmanualstrss7info$gt xpdf docmanualstrss7pdf

The lsquotextrsquo version of the manual is always available in the lsquoMANUALrsquo file in the releaseThe current manual is also always available online from The OpenSS7 Project website at

$gt lynx httpwwwopenss7orgstrss7_manualhtml

Chapter 1 Introduction 15

1 Introduction

This manual documents the design implementation installation operation and future de-velopment schedule of the OpenSS7 SS7 Stack package

11 Overview

This manual documents the design implementation installation operation and future de-velopment of the OpenSS7 SS7 Stack packageThe OpenSS7 SS7 Stack package is an SS7 SIGTRAN ISDN VoIP package for Linux thatcan be used with Linux Fast-STREAMS1 or Linux STREAMS2 It includes developmenttools header files and manual pages forbull Communications Device Interface (CDI)bull Data Link Provider Interface (DLPI)bull Network Provider Interface (NPI)bull Transport Provider Interface (TPI)bull Signalling Data Link Interface (SDLI)bull Signalling Data Terminal Interface (SDTI)bull Message Transfer Part Interface (MTPI)bull Call Control Interface (CCI)bull Transaction Interface (TRI)bull Transaction Component Interface (TCI) andbull Mobile Application Part Interface (MAPI)

Also it provides STREAMS drivers and modules for SS7 SIGTRAN ISDN and VoIPincludingbull

The OpenSS7 SS7 Stack package is essential to the development and support of SS7 andISDN networking and call control modules and drivers and provides a fundamental set ofSS7 header files and manual pages for such developmentThe OpenSS7 SS7 Stack does not provide the STREAMS components See the manualsreferenced above

12 Organization of this Manual

This manual is organized (loosely) into several sections as followsChapter 1 [Introduction] page 15 This introductionChapter 2 [Objective] page 17 Objective of the packageChapter 3 [Reference] page 19 Contents of the packageChapter 4 [Conformance] page 31 Conformance of the packageChapter 5 [Releases] page 33 Releases of the packageChapter 6 [Installation] page 47 Installation of the packageChapter 7 [Troubleshooting] page 93 Troubleshooting of the package

1 See Section ldquoAbout This Manualrdquo in Linux Fast-STREAMS (LfS) Reference Manual2 See Section ldquoAbout This Manualrdquo in Linux STREAMS (LiS) Reference Manual

16 OpenSS7 SS7 Stack

13 Conventions and Definitions

This manual uses texinfo typographic conventions

Chapter 2 Objective 17

2 Objective

Chapter 3 Reference 19

3 Reference

31 Applications

20 OpenSS7 SS7 Stack

32 SS7 Protocol Stack

The SS7 Protocol Stack consists of a number of components

Chapter 3 Reference 21

321 Signalling Data Link (SDL)

22 OpenSS7 SS7 Stack

322 Signalling Data Terminal (SDT)

Chapter 3 Reference 23

323 Signalling Link (SL)

24 OpenSS7 SS7 Stack

324 Message Transfer Part (MTP)

Chapter 3 Reference 25

325 Signalling Connection Control Part (SCCP)

26 OpenSS7 SS7 Stack

326 Transaction Capabilities Application Part (TCAP)

Chapter 3 Reference 27

327 Base Station System Application Part (BSSAP)

28 OpenSS7 SS7 Stack

33 Device Drivers

Chapter 3 Reference 29

331 Digium Drivers

30 OpenSS7 SS7 Stack

332 SeaLevel ACB56 Drivers

Chapter 4 Conformance 31

4 Conformance

Chapter 5 Releases 33

5 Releases

This is the OpenSS7 Release of the OpenSS7 SS7 Stack tools drivers and modules usedwith the Linux Fast-STREAMS or Linux STREAMS1 SVR 42 STREAMS releasesThe purpose of providing a separate release of this package was to separate the OpenSS7SS7 Stack tools headers drivers and modules from the Linux STREAMS2 package for usewith both Linux STREAMS3 and Linux Fast-STREAMS in preparation for replacement ofthe former by the laterThe following sections provide information on OpenSS7 SS7 Stack releases as well as com-patibility information of OpenSS7 release to the original GCOM releases of these modulesand drivers as well as Linux kernel compatibility

51 Prerequisites

The quickest and easiest way to ensure that all prerequisites are met is to download andinstall this package from within the OpenSS7 Master Package openss7-092G insteadof separatelyPrerequisites for the OpenSS7 SS7 Stack package are as follows1 Linux distribution somewhat Linux Standards Base compliant with a 24 or 26 kernel

and the appropriate tool chain for compiling out-of-tree kernel modules Most recentLinux distributions are usable out of the box but some development packages must beinstalled For more information see Section 52 [Compatibility] page 34

minus A fairly LSB compliant GNULinux distribution4

minus Linux 24 kernel (2410 - 2427) orminus Linux 26 kernel (263 - 2626)minus glibc2 or betterminus GNU groff (for man pages)5

minus GNU texinfo (for info files)minus GNU bison and flex (for config programs)minus net-snmp (for SNMP agents)6

(Note If you acquired strss7 a part of the OpenSS7 Master Package then the dependencieslisted below will already have been met by unpacking the master package)2 OpenSS7 Linux Fast-STREAMS streams-09247

3 OpenSS7 STREAMS Compatibility Modules strcompat-09274 OpenSS7 STREAMS XNS strxns-09275 OpenSS7 STREAMS XTITLI strxnet-09212

1 Linux STREAMS is buggy unsupported and deprecated Do not use it2 Linux STREAMS is buggy unsupported and deprecated Do not use it3 Linux STREAMS is buggy unsupported and deprecated Do not use it4 See Section 521 [GNULinux Distributions] page 34 for more information5 If you are using a Debian release please make sure to install the groff extension package (lsquogroff_extrsquo) as

it contains the refer or grefer commands necessary for including references in the manual pages6 A wide range of net-snmp releases are supported from UCD-SNMP 425 through net-snmp 547 Although at one time this package supported LiS LiS is now deprecated and unsupported

34 OpenSS7 SS7 Stack

6 OpenSS7 STREAM Network Services Library strnsl-0924 (Optional)7 OpenSS7 STREAMS Sockets strsock-0924 (Optional)8 OpenSS7 STREAMS INET strinet-09279 OpenSS7 STREAMS SCTP strsctp-0929

10 OpenSS7 STREAMS Channels strchan-092411 OpenSS7 STREAMS X25 strx25-092112 OpenSS7 STREAMS ISO striso-092413 OpenSS7 STREAMS ISDN strisdn-0924

If you need to rebuild the package from sources with modifications you will need a largerGNU tool chain as described in See Section 628 [Downloading from CVS] page 59

52 Compatibility

This section discusses compatibility with major prerequisites

521 GNULinux Distributions

OpenSS7 SS7 Stack is compatible with the following Linux distributions8

bull CentOS Enterprise Linux 34 (centos34) TBDbull CentOS Enterprise Linux 40 (centos4) TBDbull CentOS Enterprise Linux 492 (centos49) TBDbull CentOS Enterprise Linux 50 (centos5)bull CentOS Enterprise Linux 51 (centos51)bull CentOS Enterprise Linux 52 (centos52)bull Debian 30r2 Woody (deb30) TBDbull Debian 31r0a Sarge (deb31) TBDbull Debian 40r1 Etch (deb40)bull Debian 40r2 Etch (deb40)bull Debian 40r3 Etch (deb40)bull Fedora Core 1 (FC1) TBDbull Fedora Core 2 (FC2) TBDbull Fedora Core 3 (FC3) TBDbull Fedora Core 4 (FC4) TBDbull Fedora Core 5 (FC5) TBDbull Fedora Core 6 (FC6) TBDbull Fedora 7 (FC7)bull Fedora 8 (FC8)bull Fedora 9 (FC9)bull Gentoo 20061 (untested) TBD

8 Items marked as lsquoTBDrsquo are scheduled to have support deprecated That is in a future release the distributionsmarked lsquoTBDrsquo will not longer be validated before release

Chapter 5 Releases 35

bull Gentoo 20071 (untested) TBDbull Lineox 4026 (LEL4) TBDbull Lineox 4053 (LEL4) TBDbull Mandrakelinux 92 (MDK92) TBDbull Mandrakelinux 100 (MDK100) TBDbull Mandrakelinux 101 (MDK101) TBDbull Mandriva Linux LE2005 (MDK102) TBDbull Mandriva Linux LE2006 (MDK103) TBDbull Mandriva One (untested)bull RedHat Linux 72 (RH7)bull RedHat Linux 73 (RH7)bull RedHat Linux 80 (RH8) TBDbull RedHat Linux 9 (RH9) TBDbull RedHat Enterprise Linux 30 (EL3) TBDbull RedHat Enterprise Linux 4 (EL4)bull RedHat Enterprise Linux 5 (EL5)bull SuSE 80 Professional (SuSE80) TBDbull SuSE 91 Personal (SuSE91) TBDbull SuSE 92 Professional (SuSE92) TBDbull SuSE OpenSuSE (SuSEOSS) TBDbull SuSE 100 (SuSE100) TBDbull SuSE 101 (SuSE101) TBDbull SuSE 102 (SuSE102) TBDbull SuSE 103 (SuSE103) TBDbull SuSE 110 (SuSE110)bull SLES 9 (SLES9) TBDbull SLES 9 SP2 (SLES9) TBDbull SLES 9 SP3 (SLES9) TBDbull SLES 10 (SLES10)bull Ubuntu 510 (ubu510) TBDbull Ubuntu 603 LTS (ubu603) TBDbull Ubuntu 610 (ubu610) TBDbull Ubuntu 704 (ubu704) TBDbull Ubuntu 710 (ubu710)bull Ubuntu 804 (ubu804)bull WhiteBox Enterprise Linux 30 (WBEL3) TBDbull WhiteBox Enterprise Linux 4 (WBEL4) TBD

When installing from the tarball (see Section 653 [Installing the Tar Ball] page 80) thisdistribution is probably compatible with a much broader array of distributions than thoselisted above These are the distributions against which the current maintainer creates andtests builds

36 OpenSS7 SS7 Stack

522 Kernel

The OpenSS7 SS7 Stack package compiles as a Linux kernel module It is not necessaryto patch the Linux kernel to build or use the package9 Nor do you have to recompile yourkernel to build or use the package OpenSS7 packages use autoconf scripts to adapt thepackage source to your existing kernel The package builds and runs nicely against produc-tion kernels from the distributions listed above Rather than relying on kernel versions theautoconf scripts interrogate the kernel for specific features and variants to better adaptto distribution production kernels that have had patches applied over the official kernelorgsources

The OpenSS7 SS7 Stack package is compatible with 24 kernel series after 2410 and hasbeen tested up to and including 2427 It has been tested from 263 up to and including2626 (with Fedora 9 openSUSE 110 and Ubuntu 804 patchsets) Please note that yourmileage may vary if you use a kernel more recent than 26264 it is difficult to anticipatechanges that kernel developers will make in the future Many kernels in the 26 seriesnow vary widely by release version and if you encounter problems try a kernel within thesupported series

UP validation testing for kernels is performed on all supported architectures SMP valida-tion testing was initially performed on UP machines as well as on an Intel 30GHz PentiumIV 630 with HyperThreading enabled (2x) Because HyperThreading is not as independentas multiple CPUs SMP validation testing was limited Current releases have been testedon dual 18GHz Xeon HP servers (2x) as well as dual quad-core SunFire (8x) servers

It should be noted that while the packages will configure build and install against XENkernels that problems running validation test suites against XEN kernels has been reportedXEN kernels are explicitly not supported This may change at some point in the future ifsomeone really requires running OpenSS7 under a XEN kernel

523 Architectures

The OpenSS7 SS7 Stack package compiles and installs on a wide range of architecturesAlthough it is believed that the package will work on all architectures supported by theLinux kernel being used validation testing has only been performed with the followingarchitectures

bull ix86

bull x86 64

bull ppc (MPC 860)

bull ppc64

32-bit compatibility validation testing is performed on all 64-bit architectures supporting32-bit compatibility If you would like to validate an OpenSS7 package on a specific machinearchitecture you are welcome to sponsor the project with a test machine

9 At a later date it is possible to move this package into the kernel however with continued resistance toSTREAMS from within the Linux developer community this is currently unlikely

Chapter 5 Releases 37

524 Linux STREAMS

The OpenSS7 SS7 Stack package is currently compatible with Linux STREAMS10 howeverto use the OpenSS7 SS7 Stack package with LiS requires use of the OpenSS7 release packagesof LiS The OpenSS7 SS7 Stack package is compatible with the OpenSS7 LiS-2187 releasethat is available from the The OpenSS7 Project Downloads Page But do not use LiS itis buggy unsupported and deprecated Use Linux Fast-STREAMS instead

525 Linux Fast-STREAMS

The OpenSS7 SS7 Stack package is currently compatible with Linux Fast-STREAMS (LfS)The OpenSS7 SS7 Stack package is compatible with the OpenSS7 streams-0924 releasethat is available from the The OpenSS7 Project Downloads Page

53 Release Notes

The sections that follow provide information on OpenSS7 releases of the OpenSS7 SS7 Stackpackage

Major changes for release strss7-09a8

The OpenSS7 SS7 Stack package contains a wide array of SS7 drivers and components forLinux Fast-STREAMS This is the public release package which has most of the componentsremoved Subscribers and sponsors of the OpenSS7 Project have access to the full array ofcomponents

This is the eighth release of the OpenSS7 SS7 Stack strss7 package that contains SS7(Signalling System No 7) signalling stack components for Linux Fast-STREAMS Thepackage contains the necessary header files manual pages and other documentation for SS7components in a separate autoconf tarball

The release includes maintenance support for recent distributions and tool chain but alsoincludes some performance and feature upgrades and inspection bug fixes It deprecatesprevious releases Please upgrade before reporting bugs on previous releases

This release is primarily a maintenance release

Major features since the last public release are as follows

- Minor documentation corrections- Kernel module license made explicit GPL v2 And then changed back to GPL- License upgrade to AGPL Version 3- Modifications to build under Fedora lsquo26225-49rsquo kernel These changes also sup-

port lsquo26229-91fc7rsquo kernel Use IRQF_DISABLED and IRQF_SHARED instead ofdeprecated SA_INTERRUPT and SA_SHIRQ Use pci_register_driver instead of pci_module_init

- Ability to strap out major documentation build and installation primarily for embeddedtargets

- Improvements to common build process for embedded and cross-compile targets- Modifications to build under Fedora lsquo2625-45fc9rsquo and lsquo26265-45fc9rsquo kernels

10 Linux STREAMS is buggy unsupported and deprecated Do not use it

38 OpenSS7 SS7 Stack

- Updated tool chain to lsquom4-1412rsquo lsquoautoconf-263rsquo and lsquotexinfo-413rsquo- Conversion of RPM spec files to common approach for major subpackages- Updated references database for manual pages and roff documents- Build system now builds yum(8) repositories for RPMs and apt-get(8) repositories

for DEBs Installation documentation has been updated to include details of repositoryinstall sourcesref

- Added MODULE_VERSION to all modules and drivers- Corrections for recent RHAS4 kernels defining irq handler t with 3 argument function

template- Added sdl-pmod and sdt-pmod STREAMS modules and manual pages These

two STREAMS modules simluate an SDT and SDL interface connection using aSTREAMS-based pipe for testing purposes

- Added MTPI specification texinfo (info html pdf) document- Added CNAM project document The CNAM projects provides a locally attached

TCAP CNAM database front-end that performs SS7 stack functions local to the switch-ing office and queries a back-end CNAM database using IP over the Internet

- Added SDLI SDTI and SLI specifications texinfo (info html pdf) document- Added manual pages for LMI and all LMI primitives- Added manual pages for SDLI and all SDLI primitives- Added manual pages for SDTI and all SDTI primitives- Added manual pages for SLI and all SLI primitives

This is a public beta release of the package it deprecates previous releases Please upgradeto the current release before reporting bugs Please see lsquoREADME-alpharsquo in the release orSection 54 [Maturity] page 42

As with other OpenSS7 releases this release configures compiles installs and builds RPMsand DEBs for a wide range of Linux 24 and 26 RPM- and DPKG-based distributions andcan be used on production kernels without patching or recompiling the kernel

This package is publicly released under the GNU Affero General Public License Version 3The release is available as an autoconf tarball SRPM DSC and set of binary RPMs andDEBs See the downloads page for the autoconf tarballs SRPMs and DSCs For tarballsSRPMs DSCs and binary RPMs and DEBs see the strss7 package page

See httpwwwopenss7orgcodefilesstrss7-09a8ChangeLog andhttpwwwopenss7orgcodefilesstrss7-09a8NEWS in the release formore information Also see the lsquostrss7pdfrsquo manual in the release (also in htmlhttpwwwopenss7orgstrss7_manualhtml)

For the news release see httpwwwopenss7orgrel20081029_5html

Major changes for release strss7-09a7

The OpenSS7 SS7 Stack package contains a wide array of SS7 drivers and components forLinux Fast-STREAMS This is the public release package which has most of the componentsremoved Subscribers and sponsors of the OpenSS7 Project have access to the full array ofcomponents

Chapter 5 Releases 39

This is the seventh release of the OpenSS7 SS7 Stack strss7 package that contains SS7(Signalling System No 7) signalling stack components for Linux Fast-STREAMS Thepackage contains the necessary header files manual pages and other documentation for SS7components in a separate autoconf tarball

This release is primarily to support recent compilers kernels and distributions

Major features since the last public release are as follows

- Support build on openSUSE 102

- Support build on Fedora 7 with 2621 kernel

- Support build on CentOS 50 (RHEL5)

- Support build on Ubuntu 704

- Updated to gettext 0161

- Changes to support build on 2620-12307fc5 and 2620-12933fc6 kernel

- Supports build on Fedora Core 6

- Support for recent distributions and tool chains

Major changes for release strss7-09a6

The OpenSS7 SS7 Stack package contains a wide array of SS7 drivers and components forLinux Fast-STREAMS This is the public release package which has most of the componentsremoved Subscribers and sponsors of the OpenSS7 Project have access to the full array ofcomponents

This is the sixth release of the OpenSS7 SS7 Stack strss7 package that contains SS7 (Sig-nalling System No 7) signalling stack components for Linux Fast-STREAMS The packagecontains the necessary header files manual pages and other documentation for SS7 compo-nents in a separate autoconf tarball

This release is primarily to support recent compilers kernels and distributions

Major features since the last public release are as follows

- Corrected support for the DS2152213522155221542135221555 chips present inolder V400P cards (See httpwwwopenss7orgcodefilesstrss7-09a8BUGSin the release for more information)

- Support for the DS2156 chip present in recent V401PE cards (Seehttpwwwopenss7orgcodefilesstrss7-09a8BUGS in the releasefor more information)

- Corrections for timer bugs in the X400P-SS7 driver (See httpwwwopenss7orgcodefilesstrss7-09a8BUGSin the release for more information)

- Improvements to the common build environment with better support for standalonepackage builds on 24 kernels

- Support for autoconf 261 automake 110 and gettext 016

- Support for Ubuntu 610 distribution and bug fixes for i386 kernels

- The package now looks for other subpackages with a version number as unpacked byseparate tarball

40 OpenSS7 SS7 Stack

Major changes for release strss7-09a5

The OpenSS7 SS7 Stack package contains a wide array of SS7 SIGTRAN ISDN and VoIPdrivers and components for Linux Fast-STREAMS This is the public release package whichhas most of the components removed Subscribers and sponsors of the OpenSS7 Projecthave access to the full array of components

This is the fifth release of the OpenSS7 SS7 Stack strss7 package that contains SS7 (Sig-nalling System No 7) SIGTRAN (SIGnalling TRANsport) ISDN (Integrated ServicesDigital Network) and VoIP (Void over Internet Protocol) signalling stack components forLinux Fast-STREAMS The package contains the necessary header files manual pages andother documentation for SS7SIGTRANISDNVoIP components in a separate autoconftarball

This release is primarily to support recent compilers kernels and distributions and toupgrade the X400P-SS7 driver with support for the Varion V401P (Tormenta III) cardsAlso this is the first release that has ISDN SIGTRAN and VoIP components moved toseparate packages (but will still build all components)

- The X400P-SS7 driver has been upgraded to support the Varion V401P (Tormenta III)card This driver passes all validation test suites and is production grade The driverstill supports the older cards Also an autoconf style validation test suite was addedand the lsquotest-x400prsquo test case executable upgraded

- Support for most recent 2618 kernels (including Fedora Core 5 with inode diet patch-set)

- The package will now build doxygen(1) html documentation with the rsquodoxyrsquo maketarget See rsquomake helprsquo or README-make in the distribution for more information

- Now builds 32-bit compatibility libraries and tests them against 64-bit kernel modulesand drivers The lsquomake installcheckrsquo target will now automatically test both 64-bitnative and 32-bit compatibility versions one after the other on 64-bit platforms

- Added versions to all library symbols

- Many documentation updates for all OpenSS7 packages Automated release file gener-ation making for vastly improved and timely text documentation present in the releasedirectory

- Dropped support for LiS

- Package will now support extended ranges of minor devices on 26 kernels under LinuxFast-STREAMS only

- Better detection of SUSE distributions release numbers and SLES distributions sup-port for additional SuSE distributions on ix86 as well as x86_64 Added distributionsupport includes SLES 9 SLES 9 SP2 SLES 9 SP3 SLES 10 SuSE 101

- Improved compiler flag generation and optimizations for recent gcc compilers and someidiosyncratic behaviour for some distributions (primarily SUSE)

- Optimized compilation is now available also for user level programs in addition to kernelprograms Added new lsquo--with-optimizersquo option to configure to accomplish this

- Automated release file generation making for vastly improved and timely text docu-mentation present in the release directory

Chapter 5 Releases 41

- Added --disable-devel configure option to suppress building and installing devel-opment environment This feature is for embedded or pure runtime targets that do notneed the development environment (static libraries manual pages documentation)

- Added send-pr script for automatic problem report generation

Major changes for release strss7-09a-4

This release is primarily to support additional compilers (gcc 402) architectures (x86 64SMP 32-bit compatibility) recent Linux distributions (EL4 SuSE 10 LE2006 OpenSuSE)and kernels (2615)

- Changes necessary for LP64 compatible builds Changes to support 32-bit ioctlcompatibility for LP64 architectures Binary compatibility should not have beendisrupted At the same time as the ioctl32 changes TRANSPARENT ioctl supportfor most of the IO controls for the ldl(4) driver has been added

- Changes to satisfy gcc 402 compiler

- Corrections for and testing of 64-bit clean compile and test runs on x86 64 architectureSome bug corrections resulting from gcc 402 compiler warnings

- Corrected build flags for Gentoo and 2615 kernels as reported on mailing list

- Initial corrections for and testing of SMP operation on Intel 630 Hyper-Threaded SMPon x86 64 This package should now run well on N-way Xeons even with Hyper-Threading enabled

- Corrections and validation of 32-bit compatibility over 64-bit on x86 64 Should applywell to other 64-bit architectures as well

This is a public alpha release of the package

Major changes for release strss7-09a-3

This is primarily a bug fixes release and corrections resulting from testing This isa major bug fix release The previous release was largely untested This release hasbeen verified (conformance test suite passes) for operation with Linux Fast-STREAMS(lsquostreams-07a4rsquo)

With this release version numbers were changed to reflect an upstream version only tobe consistent with other OpenSS7 package releases All RPM release numbers will belsquo-1$(PACKAGE_RPMEXTRA)rsquo and all Debian release numbers will be lsquo_0rsquo If you wish toapply patches and release the package please bump up the release number and apply asuitable release suffix for your organization We leave Debian release number lsquo_1rsquo reservedfor your use so you can still bundle the source in the lsquodscrsquo file

Major changes for this release include build against Linux 26 kernels and popular distri-butions based on the 26 kernel as well as wider distribution support The package alsosupports both lsquoLiS-2181rsquo as well as lsquostreams-07arsquo on both kernels

Not publicly released

Major changes for release strss7-09a-2

Not publicly released

42 OpenSS7 SS7 Stack

Initial release strss7-09a-1

Initial autoconfRPM packaging of the strss7 releaseNot publicly released

54 Maturity

The OpenSS7 Project adheres to the following release philosophybull pre-alpha releasebull alpha releasebull beta releasebull gamma releasebull production releasebull unstable release

541 Pre-Alpha Releases

Pre-alpha releases are releases that have received no testing whatsoever Code in the releaseis not even known to configure or compile The purpose of a pre-alpha release is to makecode and documentation available for inspection only and to solicit comments on the designapproach or other characteristics of the software packagePre-alpha release packages ship containing warnings recommending that the user not evenexecute the contained code

542 Alpha Releases

Alpha releases are releases that have received little to no testing or that have been testedand contains known bugs or defects that make the package unsuitable even for testing Thepurpose for an alpha release are the same as for the pre-alpha release with the additionalpurpose that it is an early release of partially functional code that has problems that anexternal developer might be willing to fix themselves and contribute back to the projectAlpha release packages ship containing warnings that executing the code can crash machinesand might possibly do damage to systems upon which it is executed

543 Beta Releases

Beta releases are releases that have received some testing but the testing to date is notexhaustive Beta release packages do not ship with known defects All known defectsare resolved before distribution however as exhaustive testing has not been performedunknown defects may exist The purpose for a beta release is to provide a baseline for otherorganizations to participate in the rigorous testing of the packageBeta release packages ship containing warnings that the package has not been exhaustivelytested and that the package may cause systems to crash Suitability of software in thiscategory for production use is not advised by the project however as always is at thediscretion of the user of the software

544 Gamma Releases

Gamma releases are releases that have received exhaustive testing within the project butexternal testing has been minimal Gamma release packages do not ship with known defects

Chapter 5 Releases 43

As exhaustive internal testing has been performed unknown defects should be few Pleaseremember that there is NO WARRANTY on public release packagesGamma release packages typically resolve problems in previous beta releases and mightnot have had full regression testing performed Suitability of software in this categoryfor production use is at the discretion of the user of the software The OpenSS7 Projectrecommends that the complete validation test suites provided with the package be performedand pass on target systems before considering production use

545 Production Releases

Production releases are releases that have received exhaustive testing within the projectand validated on specific distributions and architectures Production release packages donot ship with known defects Please remember that there is NO WARRANTY on publicrelease packagesProduction packages ship containing a list of validated distributions and architectures Fullregression testing of any maintenance changes is performed Suitability of software in thiscategory for production use on the specified target distributions and architectures is at thediscretion of the user It should not be necessary to preform validation tests on the set ofsupported target systems before considering production use

546 Unstable Releases

Unstable releases are releases that have received extensive testing within the project andvalidated on a a wide range of distributions and architectures however is has tested un-stable and found to be suffering from critical problems and issues that cannot be resolvedMaintenance of the package has proved impossible Unstable release packages ship withknown defects (and loud warnings) Suitability of software in this category for productionuse is at the discretion of the user of the software The OpenSS7 Project recommendsthat the problems and issues be closely examined before this software is used even in anon-production environment Each failing test scenario should be completely avoided bythe application OpenSS7 beta software is more stable that software in this category

55 Bugs

551 Defect Notices

OpenSS7 SS7 Stack has unknown defects This is an alpha release Some defects couldbe harmful No validation testing whatsoever has been performed by the OpenSS7 Projecton this software The software might fail to configure or compile on some systems TheOpenSS7 Project recommends that you do not use this software for purposes other thandeveloment or evaluation and then only with great care Use at your own risk Rememberthat there is NO WARRANTY11

This software is alpha software As such it can likely crash your kernel Installation of thesoftware can irreparably mangle your header files or Linux distribution in such a way asto make it unusable Crashes could lock your system and rebooting the system might notrepair the problem You can possibly lose all the data on your system Because this software

11 See sections Disclaimer of Warranty and Limitation of Liability under [GNU Affero General Public License]page 104

44 OpenSS7 SS7 Stack

can crash your kernel the resulting unstable system could destroy computer hardware orperipherals making them unusable You could void the warranty on any system on whichyou run this software YOU HAVE BEEN WARNED

552 Known Defects

With the exception of packages not originally created by the OpenSS7 Project the OpenSS7Project software does not ship with known bugs in any release stage except pre-alphaOpenSS7 SS7 Stack had no known bugs at the time of release

553 Defect History

This section contains historical bugs that were encountered during development and theirresolutions This list serves two purposes1 It captures bugs encountered between releases during development that could possibly

reoccur (and the Moon is made of blue cheese) It therefore provides a place for usersto look if they encounter a problem

2 It provides a low overhead bug list between releases for developers to use as a lsquoTODOrsquolist

Bugs

006 2008-08-17T034223+0000The xnet library was discovered to contain a thread-safety bug caused by newerbehaviour of pthread once() causing the library to core dump when used onrecent implementations of pthreads (nptl)The xnet library is no longer normally compiled as part of the lsquostrss7rsquo packagefixed in strss7-09a8

005 2007-07-21T171502-0600It was discovered that recent kernel on RHAS4 are defining irq handler t buthave the old 3 argument function template for irq handlers The detectionlogic assumed that if irq hander t existed that the newer 2 argument functiontemplate for irq handlers were in effect This caused builds to fail on theseRHAS4 kernelsfixed in strss7-09a8rc1A check was added to the configure script to test whether the irq handler t hasthe newer 2 argument template

004 2007-03-13T233637-0600 (x400p-ss75766)Older chips were not being recognized correctly either Reflected device tableand a few missing break statements was the causefixed in strss7-09a6

003 2007-03-13T024038-0600 (x400p-ss75766)It appears that V401PE cards were almost loading (configuring mappingdownloading firmware) but were failing to configure at the final stage of theprocess (matching device id to board type) The device id for the 2155 is sup-posed to be b4 regardless of E1 or T1 but I just guess that the card is reporting

Chapter 5 Releases 45

34 instead of b4 for E1 (it might be the firmware setting or unsetting the highbit as was done for the other devices) I changed the sl x400pc driver to printerror messages when loading if such mismatches occur and set the device idsto accept 0x3X as an E1 2155 device and 0bX as a T1J1 2155 device (eventhough they are all the same)As it turns out the V401PE cards have a DS2156 chip instead of a DS2155chip The only difference is the lack of Tx fixed gain control (register 0x7d)and the DS2156 supports a UTOPIA II bus that is not used on the V401PEI changed the driver to recognize the DS2156 and skip register 0x7d when itexists The DS2156 chip will work for both V401T (D33D) and V401E (D44D)cardsfixed in strss7-09a6

002 2007-03-08T210547-0700Timers were message up (using HZ instead of milliseconds) on the X400P driverThis did not affect architectures with 1000 HZ or 1024 HZ tick clocks but 100HZ systems objectfixed in strss7-09a6

001 2007-03-05T155814-0700For some reason the package was always building and installing the lsquolibxnetrsquotexinfo document which was keeping the RPM from installing after thelsquostrxnetrsquo package This was fixed in lsquodocmanualMakefileamrsquo with theaddition of a lsquoWITH_XNETrsquo conditionalfixed in strss7-09a6

56 Schedule

Current Plan

The current plan includes the public production release of SCCP ISUP and TCAP com-ponents MTP3 has not yet been publicly released and is not currently scheduled (Imple-menting the AS-side of M3UA is taking precedence) The first public production releases ofSCCP ISUP and TCAP are planned for the end of July 2007 This will be followed by laband limitied field trial testing with a lead customer in August and production deploymentin the lead customerrsquos network in 1Q2008 Expect that over the next 8 months releases ofthis package will include major new development and validation testing as well as includingSCCP ISUP and TCAP components that have nor heretofore been publicly released

Things to Do

There is a great long list of these but here is a crack at the first onesminus Compile entire (private) package against Linux Fast-STREAMSminus Convert test programs into conformance test suites under GNU autotest This should

be straight forward matterminus Start retesting SIGTRAN components against SCTP and Linux Fast-STREAMS start-

ing with M2PAminus Start retesting SS7 Device Drivers under Linux Fast-STREAMS starting with X400P

46 OpenSS7 SS7 Stack

minus Start retesting SS7 Stack components (MTP2 MTP3 SCCP ISUP TCAP) underLinux Fast-STREAMS

minus Package a public release It has been way too long since a public release of this packageThe package has almost a million lines of code in it most of which the public has neverseen

minus Complete the SL-MUX driver and utility programsminus Complete the libslpcap library (pcap(3)) for live capture of SS7 link SDUs using

ethereal(1) or wireshark(1)

57 History

For the latest developments with regard to history of changes please see the lsquoChangeLogrsquofile in the release package

Chapter 6 Installation 47

6 Installation

61 Repositories

The OpenSS7 SS7 Stack package release can be accessed from the repositories of TheOpenSS7 Project For rpm(1) based systems the package is available in a yum(8) reposi-tory based on lsquorepomdrsquo XML and may also be accessed using zypper(8) or yast(8) Fordpkg(1) based systems the package is available in a apt(8) repository

By far the easiest (most repeatable and manageable) form for installing and using OpenSS7packages is to install packages from the yum(8) or apt(8) repositories If your distributiondoes not support yum(8) zypper(8) yast(8) or apt(8) then it is still possible to installthe RPMs or DEBs from the repositories using rpm(1) dpkg(1) or by using wget(1) andthen installing them from RPM or DEB using rpm(1) or dpkg(1) locally

If binaries are not available for your distribution or specific kernel but your distributionsupports rpm(1) or dpkg(1) the next best method for installing and using OpenSS7 pack-ages is to download and rebuild the source RPMs or DSCs from the repository This canalso be performed with yum(8) zypper(8) yast(8) apt(8) or directly using wget(1)rpm(1) or dpkg(1)

If your architecture does not support rpm(1) or dpkg(1) at all or you have special needs(such as cross-compiling for embedded targets) the final resort method is to downloadconfigure build and install from tarball In this later case the easiest way to build andinstall OpenSS7 packages from tarball is to use the tarball for the OpenSS7 Master Packageopenss7-092G

611 Repositories for YUM

To install or upgrade from the OpenSS7 lsquorepomdrsquo repositories you will need a file inyour lsquoetcyumrepodrsquo directory This file can be obtained directly from the OpenSS7repository like so

$gt REPOS=httpwwwopenss7orgreposrpms$gt wget $REPOScentos52x86_64repodataopenss7repo$gt sudo cp -f openss7repo etcyumrepod$gt sudo yum makecache

This example assumes the the distribution is lsquocentosrsquo and the distribution releaseis lsquo52rsquo and the architecture requires is lsquox86_64rsquo Another example would belsquo$REPOSi686suse110i686repodataopenss7reporsquo for using yum(8) with SUSE

Once the repository is set up OpenSS7 includes a number of virtual package definitionsthat eas the installation and removal of kernel modules libraries and utilities Downloadingconfiguring building and installation for a single-kernel distribution is as easy as

$gt sudo yum install strss7

Removing the package is as easy as

$gt sudo yum remove strss7

If you have difficulty downloading the lsquoopenss7reporsquo file edit the following informationinto the file and place it into the lsquoetcyumrepodopenss7reporsquo file

48 OpenSS7 SS7 Stack

-| [openss7]-| enabled = 1-| name = OpenSS7 Repository-| baseurl = httpwwwopenss7orgreposrpmscentos52x86_64-| gpgcheck = 1-| gpgkey = httpwwwopenss7orgpubkeyasc

Note that it is also possible to point to these repositories as an additional installation sourcewhen installing CentOS RedHat Fedora or others You will have an additional STREAMScategory from which to choose installation packagesSome additional installation real or virtual package names and the installations they ac-complish are as follows

lsquostrss7rsquoThis package can be used to install or remove the entire OpenSS7 SS7 Stackpackage When installing kernel modules will be installed automatically forthe highest version kernel on your system When removing all correspondingkernel modules will also be removed

lsquostrss7-develrsquoThis package can be used to install or remove the development components ofthe OpenSS7 SS7 Stack package When installing lsquostrss7rsquo and appropriatekernel module and kernel module development and debug packages will alsobe installed When removing the development package and all kernel moduledevelopment and debug packages will also be removed

lsquostrss7-2420-287rsquoThis package can be used to install or remove the package for a specific kernelversion When installing the lsquostrss7rsquo package will also be installed if necessaryWhen removing the last kernel module package the lsquostrss7rsquo package will alsobe removedNote that the version lsquo2420-287rsquo is just an example Use the version re-turned by lsquo$(uname -r)rsquo for the kernel for which you wish to install or removethe packages

lsquostrss7-2420-287-develrsquoThis package can be used to install or remove the development and debugpackages for a specific kernel version When installing the lsquostrss7rsquo andlsquostrss7-develrsquo packages will also be installed if necessary When removingthe development and debug for kernel modules for the last kernel thelsquostrss7-develrsquo package will also be removedNote that the version lsquo2420-287rsquo is just an example Use the version re-turned by lsquo$(uname -r)rsquo for the kernel for which you wish to install or removethe packages

For assistance with specific RPMs see Section 623 [Downloading the Binary RPM]page 51

612 Repositories for APT

For assistance with specific DEBs see Section 624 [Downloading the Debian DEB] page 54

Chapter 6 Installation 49

62 Downloading

The OpenSS7 SS7 Stack package releases can be downloaded from the downloads page ofThe OpenSS7 Project The package is available as a binary RPM (for popular architectures)a source RPM Debian binary DEB and source DSC or as a tar ball If you are using abrowsable viewer you can obtain the OpenSS7 release of strss7 from the links in thesections that followBy far the easiest (most repeatable and manageable) form for installing and using OpenSS7packages is to download and install individual packages from binary RPM or DEB If binaryRPMs or DEBs are not available for your distribution but your distribution supportsrpm(1) or dpkg(1) the next best method for installing and using OpenSS7 packages is todownload and rebuild the source RPMs or DSCsIf your architecture does not support rpm(1) or dpkg(1) at all or you have special needs(such as cross-compiling for embedded targets) the final resort method is to downloadconfigure build and install from tarball In this later case the easiest way to build andinstall OpenSS7 packages from tarball is to use the tarball for the OpenSS7 Master Packageopenss7-092G

621 Downloading with YUM

OpenSS7 repositories support yum(8) and zypper(8) in repomd XML format as well asYaST and YaST2 formatsOpenSS7 includes virtual packages that ease the installation and removal of kernel moduleslibraries and utilities Downloading configuration building and installation for a signle-kernel distribution installation is as easy as sudo yum install strss7

This and additional packages for installation are detailed as follows

lsquostrss7rsquo Install this package if you need the runtime lsquostrss7rsquo package sudo yum install strss7

This will install the lsquostrss7rsquo lsquostrss7-librsquo and lsquostrss7-KVERSIONrsquo RPMswhere lsquoKVERSIONrsquo is the highest version number kernel on your systemRemove this package if you need to remove all vestages of the lsquostrss7rsquo package

sudo yum remove strss7

This will remove the lsquostrss7rsquo lsquostrss7-librsquo lsquostrss7-develrsquolsquostrss7-KVERSIONrsquo and lsquostrss7-devel-KVERSIONrsquo RPMs for allkernels on your system

lsquostrss7-develrsquoInstall this package if you need the development lsquostrss7rsquo package

sudo yum install strss7-devel

This will install the lsquostrss7rsquo lsquostrss7-librsquo lsquostrss7-develrsquolsquostrss7-KVERSIONrsquo and lsquostrss7-devel-KVERSIONrsquo RPMs wherelsquoKVERSIONrsquo is the highest version number kernel on your systemRemove this package if you do not need development capabilities for thelsquostrss7rsquo package for any kernel

50 OpenSS7 SS7 Stack

sudo yum remove strss7-devel

This will remove the lsquostrss7-develrsquo and lsquostrss7-devel-KVERSIONrsquo RPMs forall kernels on your system

lsquostrss7-2420-287rsquoInstall this package if you need the runtime lsquostrss7rsquo for kernel versionlsquo2420-287rsquo The value lsquo2420-287rsquo is just an example For the runningkernel you can install the runtime lsquostrss7rsquo components with

sudo yum install strss7-$(uname -r)

This will install the lsquostrss7rsquo lsquostrss7-librsquo and lsquostrss7-2420-287rsquo RPMswhere lsquo2420-287rsquo is the kernel version specified

Remove this package if you no longer need the runtime lsquostrss7rsquo for kernelversion lsquo2420-287rsquo The value lsquo2420-287rsquo is just an example For therunning kernel you can remove the runtime lsquostrss7rsquo components with

sudo yum remove strss7-$(uname -r)

This will remove the lsquostrss7-2420-287rsquo and lsquostrss7-devel-2420-287rsquoRPMs where lsquo2420-287rsquo is the kernel version specified Also if this is thelast kernel for which lsquostrss7rsquo was installed the lsquostrss7rsquo lsquostrss7-librsquo andlsquostrss7-develrsquo RPMs will also be removed

Note that this is a virtual package name the actual RPMs installed or removedfrom the system is a kernel module package whose precise name will dependupon the system being used

lsquostrss7-devel-2420-287rsquoInstall this package if you need the development lsquostrss7rsquo package for kernelversion lsquo2420-287rsquo The value lsquo2420-287rsquo is just an example For therunning kernel you can install the kernel development lsquostrss7rsquo componentswith

sudo yum install strss7-devel-$(uname -r)

This will install the lsquostrss7rsquo lsquostrss7-librsquo lsquostrss7-develrsquolsquostrss7-2420-287rsquo and lsquostrss7-devel-2420-287rsquo RPMswhere lsquo2420-287rsquo is the kernel version specified

Remove this package if you no longer need the development capabilities for thelsquostrss7rsquo package for kernel version lsquo2420-287rsquo The value lsquo2420-287rsquo isjust an example For the running kernel you can remove the kernel developmentlsquostrss7rsquo components with

sudo yum remove strss7-devel-$(uname -r)

This will remove the lsquostrss7-devel-2420-287rsquo RPMs wherelsquo2420-287rsquo is the kernel version specified Also if this is the last kernel forwhich lsquostrss7rsquo was installed the lsquostrss7-develrsquo RPMs will also be removed

Note that this is a virtual package name the actual RPMs installed or removedfrom the system is a kernel module package whose precise name will dependupon the system being used

Chapter 6 Installation 51

lsquostrss7-librsquoThis package is an auxillary package that should be removed and inserted au-tomatically by yum(8) In rare instances you might need to remove or installthis package explicitly

622 Downloading with APT

OpenSS7 repositries support apt(8) repositorie digests and signatures

623 Downloading the Binary RPM

To install from binary RPM you will need several of the RPM for a complete installationBinary RPM fall into several categories To download and install a complete packagerequires the appropriate RPM from each of the several categories below as applicableSome release packages do not provide RPMs in each of the several categories

To install from Binary RPM you will need all of the following kernel independent packagesfor your architecture and one of the kernel-dependent packages from the next section

Independent RPM

Independent RPM are dependent on neither the Linux kernel version nor the STREAMSpackage For example the source package lsquostrss7-source-09a8-172noarchrpmrsquo isnot dependent on kernel nor STREAMS package

All of the following kernel and STREAMS independent RPM are required for your architec-ture Binary RPMs listed here are for example only additional binary RPMs are availablefrom the downloads site If your architecture is not available you can build binary RPMfrom the source RPM (see see Section 641 [Building from the Source RPM] page 77)

Architecture Independent

strss7-dev-09a8-172noarchrpmThe lsquostrss7-devrsquo package contains the device definitions necessary to run ap-plications programs developed for OpenSS7 SS7 Stack1

strss7-doc-09a8-172noarchrpmThe lsquostrss7-docrsquo package contains this manual in plain text postscript lsquopdfrsquoand lsquohtmlrsquo forms along with the meta-information from the lsquostrss7rsquo packageIt also contains all of the manual pages necessary for developing OpenSS7 SS7Stack applications and OpenSS7 SS7 Stack STREAMS modules or drivers

strss7-init-09a8-172noarchrpmThe lsquostrss7-initrsquo package contains the init scripts and provides thelsquopostinstrsquo scripts necessary to create kernel module preloads and modulesdefinitions for all kernel module lsquocorersquo subpackages

1 Not all distributions support the lsquodevrsquo RPM macro a case in point is the SuSE 80 distribution whichuses an older version of rpm(1) Distributions that do not support the lsquodevrsquo macro will build devices asa lsquopostrsquo operation Note also that not all release packages contain devices Only packages that provideSTREAMS character device drivers need devices and then only when the lsquospecfsrsquo or lsquodevfsdrsquo is not beingused

52 OpenSS7 SS7 Stack

strss7-source-09a8-172noarchrpmThe lsquostrss7-sourcersquo package contains the source code necessary for buildingthe OpenSS7 SS7 Stack release It includes the autoconf(1) configurationutilities necessary to create and distribute tarballs lsquorpmrsquo and lsquodebrsquolsquodscrsquo2

Architecture Dependent

strss7-devel-09a8-172i686rpmThe lsquostrss7-develrsquo package contains library archives for static compilationheader files to develop OpenSS7 SS7 Stack modules and drivers This alsoincludes the header files and static libraries required to compile OpenSS7 SS7Stack applications programs

strss7-lib-09a8-172i686rpmThe lsquostrss7-librsquo package contains the run-time shared libraries necessary torun application programs and utilities developed for the lsquostrss7rsquo package3

STREAMS-Dependent RPM

STREAMS-Dependent RPM are dependent upon the specific STREAMS package beingused either Linux STREAMS or Linux Fast-STREAMS Packages dependent uponLinux STREAMS will have lsquoLiSrsquo in the package name Packages dependent uponLinux Fast-STREAMS will have lsquostreamsrsquo in the package name Note that someSTREAMS-Dependent RPM are also Kernel-Dependent RPM as described below

One of the following STREAMS-Dependent packages is required for your architecture Ifyour architecture is not on the list you can build binary RPM from the source RPM (seesee Section 641 [Building from the Source RPM] page 77)

strss7-LiS-util-09a8-172i686rpmThe lsquostrss7-LiS-utilrsquo package provides administrative and configuration testutilities and commands associated with the OpenSS7 SS7 Stack package Be-cause this package must link a STREAMS-specific library it is a STREAMS-Dependent package Use the lsquostrss7-LiS-utilrsquo package if you have LiS in-stalled

strss7-streams-util-09a8-172i686rpmThe lsquostrss7-streams-utilrsquo package provides administrative and configura-tion test utilities and commands associated with the OpenSS7 SS7 Stack pack-age Because this package must link a STREAMS-specific library it is aSTREAMS-Dependent package Use the lsquostrss7-streams-utilrsquo package ifyou have streams installed

Kernel-Dependent RPM

Kernel-Dependent RPM are dependent on specific Linux Kernel Binary RPM releasesPackages are provided for popular released RedHat kernels Packages dependent upon Red-

2 Note that not all releases have source RPM packages Release packages that do not contain kernel modulesdo not generate a source RPM package

3 Note that not all release packages contain shared libraries and therefore not all release packages containthis package

Chapter 6 Installation 53

Hat or other kernel RPM will have the lsquo_kversionrsquo kernel package version in the packagenameOne of the following Kernel-Dependent packages is required for your architecture and kernelversion If your architecture or kernel version is not on the list you can build binary RPMfrom the source RPM (see see Section 641 [Building from the Source RPM] page 77)4

strss7-core-2420-287-09a8-172i686rpmThe lsquostrss7-corersquo package contains the loadable kernel modules that dependonly on the kernel This package is heavily tied to the kernel for which it wascompiled This particular package applies to kernel version lsquo2420-287rsquo5

strss7-info-2420-287-09a8-172i686rpmThe lsquostrss7-inforsquo package6 contains the module symbol version informationfor the lsquocorersquo subpackage above It is possible to load this subpackage andcompile modules that use the exported symbols without loading the actualkernel modules (from the lsquocorersquo subpackage above) This package is heavilytied to the kernel for which it was compiled This particular package applies tokernel version lsquo2420-287rsquo7

strss7-LiS-core-2420-287-09a8-172i686rpmThe lsquostrss7-LiS-corersquo package contains the kernel modules that providethe OpenSS7 SS7 Stack STREAMS modules and drivers This package isheavily tied to the STREAMS package and kernel for which it was compiledThis particular package applies to lsquoLiSrsquo (Linux STREAMS) on kernel versionlsquo2420-287rsquo8

strss7-streams-core-2420-287-09a8-172i686rpmThe lsquostrss7-streams-corersquo package contains the kernel modules that pro-vide the OpenSS7 SS7 Stack STREAMS modules and drivers This package isheavily tied to the STREAMS package and kernel for which it was compiledThis particular package applies to lsquostreamsrsquo (Linux Fast-STREAMS) on kernelversion lsquo2420-287rsquo9

strss7-LiS-info-2420-287-09a8-172i686rpmThe lsquostrss7-LiS-inforsquo package10 contains the module symbol version infor-mation for the lsquoLiS-corersquo subpackage above It is possible to load this sub-package and compile modules that use the exported symbols without loaded the

4 Note that on Mandrakelinux unlike other RPM kernel distributions kernel packages for the ix86 architec-tures are always placed in i586 architecture packages regardless of the true processor architecture of thekernel package lsquoconfigurersquo detects this and builds the appropriate packages

5 Note that the lsquo_kversionrsquo of lsquo2420-287rsquo is only an example Note also that only release packages thatcontain kernel modules will contain a lsquocorersquo subpackage

6 Note that only release packages that contain kernel modules and that export versioned symbols will containa lsquoinforsquo subpackage Also this subpackage is only applicable to 24 series kernels and is not necessary andnot built for 26 series kernels

7 Note that the lsquo_kversionrsquo of lsquo2420-287rsquo is only an example8 Note that the lsquo_kversionrsquo of lsquo2420-287rsquo is only an example9 Note that the lsquo_kversionrsquo of lsquo2420-287rsquo is only an example

10 Note that only release packages that contain kernel modules and that export versioned symbols will containa lsquoLiS-inforsquo subpackage

54 OpenSS7 SS7 Stack

actual kernel modules (from the lsquoLiS-corersquo subpackage above) This packageis heavily tied to the STREAMS package and kernel for which it was compiledThis particular package applies to lsquoLiSrsquo (Linux STREAMS) on kernel versionlsquo2420-287rsquo11

strss7-streams-info-2420-287-09a8-172i686rpmThe lsquostrss7-streams-inforsquo package12 contains the module symbol version in-formation for the lsquostreams-corersquo subpackage above It is possible to loadthis subpackage and compile modules that use the exported symbols withoutloaded the actual kernel modules (from the lsquostreams-corersquo subpackage above)This package is heavily tied to the STREAMS package and kernel for whichit was compiled This particular package applies to lsquostreamsrsquo (Linux Fast-STREAMS) on kernel version lsquo2420-287rsquo13

Configuration and Installation

To configure build and install the binary RPM See Section 631 [Configuring the BinaryRPM] page 62

624 Downloading the Debian DEB

To install from binary DEB you will need several of the DEB for a complete installationBinary DEB fall into several categories To download and install a complete package requiresthe appropriate DEB from each of the several categories below as applicable Some releasepackages do not provide DEBs in each of the several categories

To install from Binary DEB you will need all of the following kernel independent packagesfor your architecture and one of the kernel-dependent packages from the next section

Independent DEB

Independent DEB are dependent on neither the Linux kernel version nor the STREAMSpackage For example the source package lsquostrss7-source_09a8-0_i386debrsquo is notdependent on kernel nor STREAMS package

All of the following kernel and STREAMS independent DEB are required for your architec-ture Binary DEBs listed here are for example only additional binary DEBs are availablefrom the downloads site If your architecture is not available you can build binary DEBfrom the Debian DSC (see see Section 642 [Building from the Debian DSC] page 78)

Architecture Independent

strss7-dev 09a8-0 alldebThe lsquostrss7-devrsquo package contains the device definitions necessary to run ap-plications programs developed for OpenSS7 SS7 Stack14

11 Note that the lsquo_kversionrsquo of lsquo2420-287rsquo is only an example12 Note that only release packages that contain kernel modules and that export versioned symbols will contain

a lsquostreams-inforsquo subpackage13 Note that the lsquo_kversionrsquo of lsquo2420-287rsquo is only an example14 Note that not all release packages contain devices Only packages that provide STREAMS character device

drivers need devices and then only when the lsquospecfsrsquo or lsquodevfsdrsquo is not being used

Chapter 6 Installation 55

strss7-doc 09a8-0 alldebThe lsquostrss7-docrsquo package contains this manual in plain text postscript lsquopdfrsquoand lsquohtmlrsquo forms along with the meta-information from the lsquostrss7rsquo packageIt also contains all of the manual pages necessary for developing OpenSS7 SS7Stack applications and OpenSS7 SS7 Stack STREAMS modules or drivers

strss7-init 09a8-0 alldebThe lsquostrss7-initrsquo package contains the init scripts and provides the postinstscripts necessary to create kernel module preloads and modules definitions forall kernel module lsquocorersquo subpackages

strss7-source 09a8-0 alldebThe lsquostrss7-sourcersquo package contains the source code necessary for buildingthe OpenSS7 SS7 Stack release It includes the autoconf(1) configurationutilities necessary to create and distribute tarballs rpms and debdscs15

Architecture Dependent

strss7-devel 09a8-0 i386debThe lsquostrss7-develrsquo package contains library archives for static compilationheader files to develop OpenSS7 SS7 Stack modules and drivers This alsoincludes the header files and static libraries required to compile OpenSS7 SS7Stack applications programs

strss7-lib 09a8-0 i386debThe lsquostrss7-librsquo package contains the run-time shared libraries necessary torun application programs and utilities developed for the lsquostrss7rsquo package16

STREAMS-Dependent DEB

STREAMS-Dependent DEB are dependent upon the specific STREAMS package beingused either Linux STREAMS or Linux Fast-STREAMS Packages dependent uponLinux STREAMS will have lsquoLiSrsquo in the package name Packages dependent uponLinux Fast-STREAMS will have lsquostreamsrsquo in the package name Note that someSTREAMS-Dependent DEB are also Kernel-Dependent DEB as described below

One of the following STREAMS-Dependent packages is required for your architecture Ifyour architecture is not on the list you can build binary DEB from the Debian DSC (seesee Section 642 [Building from the Debian DSC] page 78)

strss7-LiS-util 09a8-0 i386debThe lsquostrss7-LiS-utilrsquo package provides administrative and configuration testutilities and commands associated with the OpenSS7 SS7 Stack package Be-cause this package must link a STREAMS-specific library it is a STREAMS-Dependent package Use the lsquostrss7-LiS-utilrsquo package if you have LiS in-stalled

15 Note that not all releases have source DEB packages Release packages that do not contain kernel modulesdo not generate a source DEB package

16 Note that not all release packages contain shared libraries and therefore not all release packages containthis package

56 OpenSS7 SS7 Stack

strss7-streams-util 09a8-0 i386debThe lsquostrss7-streams-utilrsquo package provides administrative and configura-tion test utilities and commands associated with the OpenSS7 SS7 Stack pack-age Because this package must link a STREAMS-specific library it is aSTREAMS-Dependent package Use the lsquostrss7-streams-utilrsquo package ifyou have streams installed

Kernel-Dependent DEB

Kernel-Dependent DEB are dependent on specific Linux Kernel Binary DEB releases Pack-ages are provided for popular released Debian kernels Packages dependent upon Debian orother kernel DEB will have the lsquo_kversionrsquo kernel package version in the package nameOne of the following Kernel-Dependent packages is required for your architecture and kernelversion If your architecture or kernel version is not on the list you can build binary DEBfrom the source DEB (see see Section 642 [Building from the Debian DSC] page 78)17

strss7-core-2420-287 09a8-0 i386debThe lsquostrss7-corersquo package contains the loadable kernel modules that dependonly on the kernel This package is heavily tied to the kernel for which it wascompiled This particular package applies to kernel version lsquo2420-287rsquo18

strss7-info-2420-287 09a8-0 i386debThe lsquostrss7-inforsquo package19 contains the module symbol version informationfor the lsquocorersquo subpackage above It is possible to load this subpackage andcompile modules that use the exported symbols without loading the actualkernel modules (from the lsquocorersquo subpackage above) This package is heavilytied to the kernel for which it was compiled This particular package applies tokernel version lsquo2420-287rsquo20

strss7-LiS-core-2420-287 09a8-0 i386debThe lsquostrss7-LiS-corersquo package contains the kernel modules that providethe OpenSS7 SS7 Stack STREAMS modules and drivers This package isheavily tied to the STREAMS package and kernel for which it was compiledThis particular package applies to lsquoLiSrsquo (Linux STREAMS) on kernel versionlsquo2420-287rsquo21

strss7-streams-core-2420-287 09a8-0 i386debThe lsquostrss7-streams-corersquo package contains the kernel modules that pro-vide the OpenSS7 SS7 Stack STREAMS modules and drivers This package isheavily tied to the STREAMS package and kernel for which it was compiled

17 Note that on Mandrakelinux unlike other DEB kernel distributions kernel packages for the ix86 architecturesare always placed in i586 architecture packages regardless of the true processor architecture of the kernelpackage lsquoconfigurersquo detects this and builds the appropriate packages

18 Note that the lsquo_kversionrsquo of lsquo2420-287rsquo is only an example Note also that only release packages thatcontain kernel modules will contain a lsquocorersquo subpackage

19 Note that only release packages that contain kernel modules and that export versioned symbols will containa lsquoinforsquo subpackage Also this subpackage is only applicable to 24 series kernels and is not necessary andnot built for 26 series kernels

20 Note that the lsquo_kversionrsquo of lsquo2420-287rsquo is only an example21 Note that the lsquo_kversionrsquo of lsquo2420-287rsquo is only an example

Chapter 6 Installation 57

This particular package applies to lsquostreamsrsquo (Linux Fast-STREAMS) on kernelversion lsquo2420-287rsquo22

strss7-LiS-info-2420-287 09a8-0 i386debThe lsquostrss7-LiS-inforsquo package23 contains the module symbol version infor-mation for the lsquoLiS-corersquo subpackage above It is possible to load this sub-package and compile modules that use the exported symbols without loaded theactual kernel modules (from the lsquoLiS-corersquo subpackage above) This packageis heavily tied to the STREAMS package and kernel for which it was compiledThis particular package applies to lsquoLiSrsquo (Linux STREAMS) on kernel versionlsquo2420-287rsquo24

strss7-streams-info-2420-287 09a8-0 i386debThe lsquostrss7-streams-inforsquo package25 contains the module symbol version in-formation for the lsquostreams-corersquo subpackage above It is possible to loadthis subpackage and compile modules that use the exported symbols withoutloaded the actual kernel modules (from the lsquostreams-corersquo subpackage above)This package is heavily tied to the STREAMS package and kernel for whichit was compiled This particular package applies to lsquostreamsrsquo (Linux Fast-STREAMS) on kernel version lsquo2420-287rsquo26

Configuration and Installation

To configure build and install the Debian DEB See Section 632 [Configuring the DebianDEB] page 63

625 Downloading the Source RPM

If you cannot obtain a binary RPM for your architecture or would like to roll you ownbinary RPM download the following source RPM

strss7-09a8-1srcrpmThis is the source RPM for the package From this source RPM it is possible tobuild binary RPM for any supported architecture and for any 24 or 26 kernelfor either Linux STREAMS or Linux Fast-STREAMS

Configuration

To configure the source RPM See Section 633 [Configuring the Source RPM] page 63

626 Downloading the Debian DSC

If you cannot obtain a binary DEB for your architecture or would like to roll your ownDEB download the following Debian DSC

22 Note that the lsquo_kversionrsquo of lsquo2420-287rsquo is only an example23 Note that only release packages that contain kernel modules and that export versioned symbols will contain

a lsquoLiS-inforsquo subpackage24 Note that the lsquo_kversionrsquo of lsquo2420-287rsquo is only an example25 Note that only release packages that contain kernel modules and that export versioned symbols will contain

a lsquostreams-inforsquo subpackage26 Note that the lsquo_kversionrsquo of lsquo2420-287rsquo is only an example

58 OpenSS7 SS7 Stack

strss7 09a8-0dscstrss7 09a8-0targz

This is the Debian DSC for the package From this Debian DSC it is possible tobuild binary DEB for any supported architecture and for any 24 or 26 kernelfor either Linux STREAMS or Linux Fast-STREAMS

Configuration

To configure the source RPM See Section 634 [Configuring the Debian DSC] page 67

627 Downloading the Tar Ball

For non-rpm(1) and non-dpkg(1) architectures download the tarball as follows

strss7-09a8targzstrss7-09a8tarbz2

These are the tar(1) balls for the release These tar(1) balls contain theautoconf(1) distribution which includes all the source necessary for buildingand installing the package These tarballs will even build Source RPM andBinary RPM on rpm(1) architectures and Debian DSC and DEB on dpkg(1)architectures

The tar ball may be downloaded easily with wget(1) as follows wget httpwwwopenss7orgstrss7-09a8tarbz2

or wget httpwwwopenss7orgstrss7-09a8targz

Note that you will need an OpenSS7 Project user name and password to download releasecandidates (which are only available to subscribers and sponsors of the OpenSS7 Project)

Unpacking the Archive

After downloading one of the tar balls unpack the archive using one of the following com-mands wget httpwwwopenss7orgstrss7-09a8targz tar -xzvf strss7-09a8targz

or wget httpwwwopenss7orgstrss7-09a8tarbz2 tar -xjvf strss7-09a8tarbz2

Either will create a subdirectory name lsquostrss7-09a8rsquo containing all of the files andsubdirectories for the strss7 package

Chapter 6 Installation 59

Configuration

To configure and install the tar ball See Section 635 [Configuring the Tar Ball] page 67

628 Downloading from CVS

If you are a subscriber or sponsor of The OpenSS7 Project with CVS archive access privilegesthen you can download release mid-release or release candidate versions of the lsquostrss7rsquopackage from the project CVS archiveThe OpenSS7 SS7 Stack package is located in the lsquostrss7rsquo module of lsquovarcvsrsquo Forrelease tag information see Chapter 5 [Releases] page 33To access the archive from the project CVS pserver use the following commands to checkout a version from the archive export CVSROOT=rsquo-dpserverusernamecvsopenss7com2401varcvsrsquo cvs loginPassword cvs co -r strss7_09a8 strss7 cvs logout

It is of course possible to check out by date or by other criteria For more informationsee cvs(1)

Preparing the CVS Working Directory

Although public releases of the lsquostrss7rsquo package do not require reconfiguration creating aconfigurable directory from the CVS archive requires tools not normally distributed withthe other releasesThe build host requires the following GNU toolsbull m4 1412

bull autoconf 263

bull automake 1101

bull libtool 224

bull gettext 017

bull flex 2533

bull bison 23

Most desktop development GNULinux distributions wil have these tools however somenon-development or server-style installations might not and they must be installed sepa-rately27

Also these tools can be acquired from the FSF website in the free software directory andalso at the following locationsbull m4-1412bull autoconf-263

27 Older version of bison (20) and the older version of flex (254a) are also suitable Where possible use themore recent bison 23 and flex 2533

60 OpenSS7 SS7 Stack

bull automake-1101bull libtool-224bull gettext-017bull flex-2533bull bison-23

It should be stressed that in particular the autoconf(1) and automake(1) must be atversion releases 263 and 1101 The versions normally distributed in some mainstreamGNULinux distributions are in fact much older than these versions28 GNU version ofthese packages configured and installed to default directories will install in lsquousrlocalrsquoallowing them to coexist with distribution installed versionsFor building documentation the build host also requires the following documentation toolsbull gs 651 or ghostscript 651 or newerbull tetex 30 or texlive 2007 or newerbull texinfo 413a or newerbull transfig 323d or newerbull imagemagick 538 or ImageMagick 538 or newerbull groff 1172 or newerbull gnuplot 37 or newerbull latex2html 162 or newer

Most desktop GNULinux distributions will have these tools however some server-styleinstallations (eg Ubuntu-server SLES 9 or Fedora 6 or 7) will not and they must beinstalled separately29

Note that texinfo 412 must not be used as it breaks the build processFor uncooked manual pages the entire groff(1) package is required on older Debian andUbuntu systems (the base package did not include grefer(1) which is used extensively byuncooked manual pages) The following will get what you need on older systems Debian apt-get install groff_extUbuntu apt-get install groff

On newer systems simply apt-get install groff

In addition the build host requires a complete tool chain for compiling for the target hostincluding kernel tools such as genksyms(8) and others

28 A notable exception is Debian and Fedora 7 Note that on Fedora 7 the gettext-devel package must beinstalled

29 In particular for CentOS Fedora 6 or 7 the tetex-latex and gnuplot packages must be loaded as wellNote also that the latex2html used to be part of the textex package (or subpackages) but is now oftenpackaged on its own Recent distributions such as SUSE 110 and Fedora 9 use the texlive package insteadof the tetex package

Chapter 6 Installation 61

If you wish to package lsquorpmsrsquo on an rpm(1) system or lsquodebsrsquo on a dpkg(1) system you willneed the appropriate tool chain Systems based on rpm(1) typically have the necessary toolchain available however dpkg(1) systems do not The following on a Debian or Ubuntusystem will get what you need apt-get install debhelper apt-get install fakeroot

To generate a configuration script and the necessary scriptlets required by the GNUautoconf(1) system execute the following commands on the working directory autoreconf -fiv strss7

where lsquostrss7rsquo is the name of the directory to where the working copy was checked outunder the previous step This command generates the lsquoconfigurersquo script and other missingpieces that are normally distributed with the release Tar Balls SRPMs and DSCs

Make sure that lsquoautoreconf --versionrsquo returns lsquo263rsquo Otherwise you may need to per-form something like the following PATH=usrlocalbin$PATH autoreconf -fiv strss7

After reconfiguring the directory the package can then be configured and built using thesame instructions as are used for the Tar Ball see Section 635 [Configuring the Tar Ball]page 67 and Section 643 [Building from the Tar Ball] page 78

Do note however that make(1) will rebuild the documentation that is normally releasedwith the package Additional tools may be necessary for building the documentationTo avoid building and installing the documentation use the lsquo--disable-develrsquo orlsquo--disable-docsrsquo option to configure described in Section 635 [Configuring the Tar Ball]page 67

When configuring the package in a working directory and while working a change-compile-test cycle that involves configuration macros or documentation I find it ofgreat advantage to invoke the GNU lsquoconfigurersquo options lsquo--enable-maintainer-modersquolsquo--enable-dependency-trackingrsquo and lsquo--disable-develrsquo The first of these threeoptions will add maintainer-specific targets to any generated lsquoMakefilersquo the second optionwill invoke automatic dependency tracking within the lsquoMakefilersquo so rebuilds after changesto macro source or documentation files will be automatically rebuilt and the last optionwill suppress rebuilding and reinstalling documentation manual pages and header filesHeader files will still be available under the lsquousrsrcrsquo directory

63 Configuration

62 OpenSS7 SS7 Stack

631 Configuring the Binary RPM

In general the binary RPM do not require any configuration however during installationit is possible to relocate some of the installation directories This allows some degree ofcustomization Relocations that are available on the binary RPM are as follows

lsquostrss7-LiS-core-2420-287-09a8-172i686rpmrsquolsquostrss7-streams-core-2420-287-09a8-172i686rpmrsquo

lsquolibmodules2420-287rsquoThis relocatable directory contains the kernel modules that providethe strss7 STREAMS core drivers and modules30

lsquostrss7-LiS-info-2420-287-09a8-172i686rpmrsquolsquostrss7-streams-info-2420-287-09a8-172i686rpmrsquo

lsquousrincludestrss72420-287rsquoThis relocatable directory contains the kernel module exportedsymbol information that allows other kernel modules to be com-piled against the correct version of the strss7 package31

lsquostrss7-dev-09a8-172i686rpmrsquo(not relocatable)

lsquostrss7-devel-09a8-172i686rpmrsquolsquousrlibrsquo

This relocatable directory contains strss7 libraries

lsquousrincludestrss7rsquoThis relocatable directory contains strss7 header files

lsquostrss7-doc-09a8-172i686rpmrsquolsquousrsharedocrsquo

This relocatable directory contains all package specific documenta-tion (including this manual) The subdirectory in this directory isthe lsquostrss7-09a8rsquo directory

lsquousrshareinforsquoThis relocatable directory contains info files (including the info ver-sion of this manual)

lsquousrsharemanrsquoThis relocatable directory contains manual pages

lsquostrss7-LiS-lib-09a8-172i686rpmrsquolsquostrss7-streams-lib-09a8-172i686rpmrsquo

lsquousrlibrsquoThis relocatable directory contains the run-time shared librariesnecessary to run applications programs and utilities developed forOpenSS7 SS7 Stack

30 Note that the lsquo_kversionrsquo of lsquo2420-287rsquo is only an example31 Note that the lsquo_kversionrsquo of lsquo2420-287rsquo is only an example Also note that the lsquoinforsquo subpackage is

only applicable to the 24 kernel series

Chapter 6 Installation 63

lsquousrsharelocalersquoThis relocatable directory contains the locale information for sharedlibrary files

lsquostrss7-source-09a8-172i686rpmrsquo

lsquousrsrcrsquoThis relocatable directory contains the source code

lsquostrss7-LiS-util-09a8-172i686rpmrsquolsquostrss7-streams-util-09a8-172i686rpmrsquo

lsquousrbinrsquoThis relocatable directory contains binary programs and utilities

lsquousrsbinrsquoThis relocatable directory contains system binary programs andutilities

lsquousrlibexecrsquoThis relocatable directory contains test programs

lsquoetcrsquo This relocatable directory contains init scripts and configurationinformation

Installation

To install the binary RPM See Section 651 [Installing the Binary RPM] page 79

632 Configuring the Debian DEB

In general the binary DEB do not require any configuration

Installation

To install the Debian DEB See Section 652 [Installing the Debian DEB] page 80

633 Configuring the Source RPM

When building from the source RPM (see Section 641 [Building from the Source RPM]page 77) the rebuild process uses a number of macros from the userrsquos lsquorpmmacrosrsquo file asdescribed in rpm(8)

Following is an example of the lsquo~rpmmacrosrsquo file that I use for rebuilding RPMS

64 OpenSS7 SS7 Stack

RPM macros for building rpms

vendor OpenSS7 Corporation

distribution OpenSS7

disturl httpwwwopenss7org

packager Brian Bidulock ltbidulockopenss7orggt

url httpwwwopenss7org

_signature gpg

_gpg_path homebriangnupg

_gpg_name openss7openss7org

_gpgbin usrbingpg

_source_payload w9bzdio

_binary_payload w9bzdio

_unpackaged_files_terminate_build 1

_missing_doc_files_terminate_build 1

_use_internal_dependency_generator 0

_repackage_all_erasures 0

_rollback_transaction_on_failure 0

configure2_5x configure

make make When building from the source RPM (see Section 641 [Building from the Source RPM]page 77) it is possible to pass a number of additional configuration options to therpmbuild(1) process

The additional configuration options are described below

Note that distributions that use older versions of rpm do not have the lsquo--withrsquo orlsquo--withoutrsquo options defined To achieve the same effect as

--with someparm=somearg

do

--define _with_someparm --with-someparm=somearg

This is a generic description of common rpmbuild(1) options Not all rpmbuild(1) optionsare applicable to all SRPMs Options that are kernel module specific are only applicable toSRPMs that build kernel modules STREAMS options are only applicable to SRPMs thatprovide or require STREAMS

--define _kversion $PACKAGE_KVERSIONSpecifies the kernel version other than the running kernel for which tobuild If _kversion is not defined when rebuilding the environmentvariable PACKAGE KVERSION is used If the environment variablePACKAGE KVERSION is not defined then the version of the runningkernel (ie discovered with lsquouname -rrsquo) is used as the target version forkernel-dependent packages This option can also be defined in an lsquorpmspecrsquofile using the macro name lsquo_kversionrsquo

Chapter 6 Installation 65

--with checks--without checks

Enable or disable preinstall checks Each packages supports a number ofpreinstall checks that can be performed by invoking the lsquocheckrsquo target withautomake(1) These currently consist of checking each kernel module forunresolved kernel symbols checking for documentation for exported kernelmodule symbols checking for documentation for exported library symbolschecking for standard options for build and installable programs checkingfor documentation for built and installable programs Normally these checksare only run in maintainer mode but can be enabled and disabled with thisoption

--with k-optimize=HOW--without k-optimize

Specify lsquoHOWrsquo optimization normal size speed or quick size compiles kernelmodules -Os speed compiles kernel modules -O3 and quick compiles kernelmodules -O0 The default is normal Use with care

--with cooked-manpages--without cooked-manpages

Some systems do not like grefer(1) references in manual pages32 This optionwill cook soelim(1) refer(1) tbl(1) and pic(1) commands from the man-ual pages and also strip groff(1) comments The default is to leave manualpages uncooked they are actually smaller that way

--with public--without public

Release public packages or private packages This option has no effect on thelsquostrss7rsquo package The default is to release public packages

--with k-debug--without k-debug

Specifies whether kernel debugging is to be performed on the build kernel mod-ules Mutually exclusive with test and safe below This has the effect ofremoving static and inline attributes from functions and invoking all debuggingmacros in the code The default is to not perform kernel debugging

--with k-test--without k-test

Specifies whether kernel testing is to be performed Mutually exclusive withdebug above and safe below This has the effect of removing static and inlineattributes from functions and invoking most debugging macros in the code Thedefault is to not perform kernel testing

32 In particular some Debian systems do not load the groff(1) extensions package and do not have grefer(1)

installed Although this is an oversight on the configuration of the particular Debian system we accomodatesuch misconfiguration with this feature

66 OpenSS7 SS7 Stack

--with k-safe--without k-safe

Specifies whether kernel saftey is to be performed Mutually exclusive withdebug and test above This has the effect of invoking some more pedanticassertion macros in the code The default is not to apply kernel safety

--with k-inline--without k-inline

Specifies whether kernel inline functions are to be placed inline This hasthe effect of adding the lsquo-finline-functionsrsquo flag to CFLAGS for compil-ing kernel modules Linux 24 kernels are normally compiled lsquo-O2rsquo whichdoes not respect the inline directive This compiles kernel modules withlsquo-finline-functionsrsquo to get closer to lsquo-O3rsquo optimization For better opti-mization controls See Section 635 [Configuring the Tar Ball] page 67

--with k-modversions--without k-modversions

Specifies whether kernel symbol versions are to be applied to symbols exportedby package kernel modules The default is to version exported module symbolsThis package does not export symbols so this option has no effect

--with devfs--without devfs

Specifies whether the build is for a device file system daemon enabled systemwith autoloading or not The default is to build for devfsd(1) autoloadingwhen CONFIG DEVFS FS is defined in the target kernel The lsquorebuildrsquo tar-get uses this option to signal to the RPM spec file that the lsquodevrsquo subpackageneed not be built This option does not appear when the package has no devices

--with devel--without devel

Specifies whether to build development environment packages such as those thatinclude header files static libraries manual pages and texinfo(1) documen-tation The default is to build development environment packages This optioncan be useful when building for an embedded target where only the runtimecomponents are desired

--with docs--without docs

Specifies whether to build and install major documentation such manual pagesand texinfo(1) documentation The default is to build and install documen-tation This option can be useful when building for an embedded target whereonly the runtime and static compile components are desired but not majordocumentation This option does not override the setting of --without devel

--with tools--without tools

Specifies whether user space packages are to be built The default is to builduser space packages This option can be useful when rebuilding for multiplearchitectures and target kernels The lsquorebuildrsquo automake(1) target uses this

Chapter 6 Installation 67

feature when rebuilding for all available architectures and kernels to rebuilduser packages once per architecture instead of once per kernel

--with modules--without modules

Specifies whether kernel modules packages are to be built The default is tobuild kernel module packages This option can be useful when rebuilding formultiple architectures and target kernels The lsquorebuildrsquo automake(1) targetuses this feature to rebuild for all available architectures and kernels

--with lis--without lis

Specifies that the package is to be rebuilt against Linux STREAMS The defaultis to automatically identify whether lsquoLiSrsquo or lsquostreamsrsquo is loaded on the buildsystem and build accordingly

--with lfs--without lfs

Specifies that the package is to be rebuilt against Linux Fast-STREAMS Thedefault is to automatically identify whether lsquoLiSrsquo or lsquostreamsrsquo is loaded on thebuild system and build accordingly

In general the default values of these options are sufficient for most purposes and no optionsneed be provided when rebuilding the Source RPMs

Build

To build from the source RPM See Section 641 [Building from the Source RPM] page 77

634 Configuring the Debian DSC

The Debian DSC can be configured by passing options in the environment variableBUILD DEBOPTIONS The options placed in this variable take the same form as thosepassed to the lsquoconfigurersquo script See Section 635 [Configuring the Tar Ball] page 67 Foran example See Section 642 [Building from the Debian DSC] page 78

Build

To build from the Debian DSC See Section 642 [Building from the Debian DSC] page 78

635 Configuring the Tar Ball

All of the normal GNU autoconf(1) configuration options and environment variables applyAdditional options and environment variables are provided to tailor or customize the buildand are described below

6351 Configure Options

This is a generic description of common lsquoconfigurersquo options that are in addition to thoseprovided by autoconf(1) automake(1) libtool(1) and gettext(1)Not all lsquoconfigurersquo options are applicable to all release packages Options that arekernel module specific are only applicable to release packages that build kernel modulesSTREAMS options are only applicable to release packages that provide or requireSTREAMS

68 OpenSS7 SS7 Stack

Following are the additional lsquoconfigurersquo options their meaning and use

--enable-checks--disable-checks

Enable or disable preinstall checks Each release package supports a numberof preinstall checks that can be performed by invoking the lsquocheckrsquo target withmake(1) These currently consist of checking each kernel module for unresolvedkernel symbols checking for documentation for exported kernel module sym-bols checking for documentation for exported library symbols checking forstandard options for build and installable programs checking for documenta-tion for built and installable programs Normally these checks are only run inmaintainer mode but can be enabled and disabled with this option

--enable-autotest--disable-autotest

Enable or disable pre- and post-installation testing Each release package sup-ports a number of autotest test suites that can be performed by invokingthe lsquoinstallcheckrsquo target with make(1) These currently consist of runninginstalled modules commands and binaries against a number of specific testcases Normally these checks are only run in maintainer mode but can beenabled and disabled with this option

--disable-compress-manpagesCompress manual pages with lsquogzip -9rsquo or lsquobzip2 -9rsquo or leave them uncom-pressed The default is to compress manual pages with lsquogzip -9rsquo or lsquobzip2 -9rsquoif a single compressed manual page exists in the target installation directory(lsquo--mandirrsquo) This disables automatic compression

--disable-publicDisable public release This option is not usable on public releases and only hasa usable effect on OpenSS7 SS7 Stack when the package is acquired from CVSIn particular the STREAMS SS7VoIPISDNSIGTRAN Stacks (strss7-09a8) release package has a large number of non-public components Speci-fying this option will cause the package to build and install all private releasecomponents in addition to the public release components This option affects allrelease packages Most release packages do not have private release components

--disable-initscriptsDisables the installation of init scripts The default is to configure and installinit scripts and their associated configuration filesAlthough the default is to install init scripts installation attempts to detect aSystem V init script configuration and if one is not found the init scripts areinstalled into the appropriate directories but the symbolic links to the run levelscript directories are not generated and the script is not invoked Therefore itis safe to leave this option unchanged even on distributions that do not supportSystem V init script layout

--disable-32bit-libsDisables the build and install of 32-bit compatibility libraries and test binarieson 64-bit systems that support 32-bit compatibility The default is to build

Chapter 6 Installation 69

and install 32-bit compatibility libraries and test binaries This option canbe usefule when configuring for an embedded target where only native sharedlibraries and binaries are desired

--disable-develDisables the installation of development environment components such asheader files static libraries manual pages and texinfo(1) documentationThe default is to install development environment components This optioncan be useful when configuring for an embedded target where only the runtimecomponents are desired or when performing a edit-compile-test cycle

--disable-docsDisables the build and installation of major documentation such manual pagesand texinfo(1) documentation The default is to build and install documen-tation This option can be useful when building for an embedded target whereonly the runtime and static compile components are desired but not major doc-umentation This option does not override the setting of lsquo--disable-develrsquo

--enable-toolsSpecifies whether user space programs and libraries are to be built and installedThe default is to build and install user space programs and libraries This optioncan be useful when rebuilding for multiple architectures and target kernelsparticularly under rpm(1) or dpkg(1) The lsquorebuildrsquo automake(1) target usesthis feature when rebuilding RPMs for all available architectures and kernelsto rebuild user packages once per architecture instead of once per kernel

--enable-modulesSpecifies whether kernel modules are to be built and installed The default is tobuild and install kernel modules This option can be useful when rebuilding formultiple architectures and target kernels particularly under rpm(1) or dpkg(1)The lsquorebuildrsquo automake(1) target uses this feature to rebuild for all availablearchitectures and kernels This option has no effect for release packages thatdo not provide kernel modules

--enable-archSpecifies whether architectural dependent package components are to be builtand installed This option can be useful when rebuilding for multiple architec-tures and target kernels particularly under dpkg(1) The default is to config-ure build and install architecture dependent package components This optionhas no effect for release packages that do not provide architecture dependentcomponents

--enable-indepSpecifies whether architecture independent package components are to be builtand installed This option can be useful when rebuilding for multiple architec-tures and target kernels particularly under dpkg(1) The default is to con-figure build and install architecture independent package components Thisoptions has no effect for release packages that do not provide architecture in-dependent components

70 OpenSS7 SS7 Stack

--enable-k-inlineEnable kernel inline functions Most Linux kernels build withoutlsquo-finline-functionsrsquo This option adds the lsquo-finline-functionsrsquo andlsquo-Winlinersquo flags to the compilation of kernel modules Use with care Thisoption has no effect for release packages that do not provide kernel modules

--enable-k-safeEnable kernel module run-time safety checks Specifies whether kernel safety isto be performed This option is mutually exclusive with lsquo--enable-k-testrsquo andlsquo--enable-k-debugrsquo below This has the effect of invoking some more pedanticassertion macros in the code The default is not to apply kernel safety Thisoption has no effect for release packages that have are no kernel modules

--enable-k-testEnable kernel module run-time testing Specifies whether kernel testing is to beperformed This option is mutually exclusive with lsquo--enable-k-safersquo aboveand lsquo--enable-k-debugrsquo below This has the effect of remove static andinline attributes from functions and invoking most non-performance affectingdebugging macros in the code The default is not to perform kernel testing Thisoption has no effect for release packages that do not provide kernel modules

--enable-k-debugEnable kernel module run-time debugging Specifies whether kernel debuggingis to be performed This option is mutually exclusive with lsquo--enable-k-safersquoand lsquo--enable-k-testrsquo above This has the effect of removing static andinline attributes from functions and invoking all debugging macros in thecode (including performance-affecting debug macros) The default is to notperform kernel debugging This option has no effect for release packages thatdo not provide kernel modules

--disable-k-modversionsDisable module versions on strss7 symbols Specifies whether kernel symbolversions are to be used on symbols exported from built strss7 modules Thedefault is to provide kernel symbol versions on all exported symbols Thisoption has no effect for release packages that do not provide kernel modules

--enable-devfs--disable-devfs

Specifies whether the build is for a device file system daemon enabled systemwith autoloading or not The default is to build for devfsd(8) autoload-ing when CONFIG DEVFS FS is defined in the target kernel The lsquoreuildrsquoautomake(1) target uses this option to signal to the RPM spec file that the lsquodevrsquosubpackage need not be built This option has no effect for release packagesthat do not provide devices

--with-gpg-user=GNUPGUSERSpecify the gpg(1) lsquoGNUPGUSERrsquo for signing RPMs and tarballs The defaultis the content of the environment variable GNUPGUSER If unspecified thegpg(1) program will normally use the user name of the account invoking thegpg(1) program For building source RPMs the RPM macro lsquo_gpg_namersquo willoverride this setting

Chapter 6 Installation 71

--with-gpg-home=GNUPGHOMESpecify the lsquoGNUPGHOMErsquo directory for signing RPMs and tarballs The defaultis the userrsquos lsquo~gpgrsquo directory For building source RPMs the RPM macrolsquo_gpg_pathrsquo will override this setting

--with-pkg-epoch=EPOCHSpecifies the epoch for the package This is neither used for rpm(1) nor dpkg(1)packages it applies to the tarball release as a whole The default is the contentsof the lsquopkgepochrsquo file in the release package source directory or if that file doesnot exist zero (0)

--with-pkg-release=RELEASESpecifies the release for the package This is neither used for rpm(1) nordpkg(1) packages it applies to the tarball release as a whole The defaultis the contents of the lsquopkgreleasersquo file in the release package source directoryor if that file does not exist one (1) This is the number after the last pointin the package version number

--with-pkg-distdir=DIRSpecifies the distribution directory for the package This is used by the main-tainer for building distributions of tarballs This is the directory into whicharchives are copied for distribution The default is the top build directory

--with-cooked-manpagesConvert manual pages to remove macro dependencies and grefer(1) refer-ences Some systems do not like grefer(1) references in manual pages33 Thisoption will cook soelim(1) refer(1) tbl(1) and pic(1) commands fromthe manual pages and also strip groff(1) comments The default is to leavemanual pages uncooked (they are actually smaller that way)

--with-rpm-epoch=PACKAGE_EPOCHSpecify the lsquoPACKAGE_EPOCHrsquo for the RPM spec file The default is to use theRPM epoch contained in the release package file lsquorpmepochrsquo

--with-rpm-release=PACKAGE_RPMRELEASESpecify the lsquoPACKAGE_RPMRELEASErsquo for the RPM lsquospecrsquo file The default is touse the RPM release contained in the release package file lsquorpmreleasersquo

--with-rpm-extra=PACKAGE_RPMEXTRASpecify the lsquoPACKAGE_RPMEXTRArsquo extra release information for the RPM specfile The default is to use the RPM extra release information contained in therelease package file lsquorpmextrarsquo Otherwise this value will be determined fromautomatic detection of the RPM distribution

--with-rpm-topdir=PACKAGE_RPMTOPDIRSpecify the lsquoPACKAGE_RPMTOPDIRrsquo top directory for RPMs If specified with anull lsquoPACKAGE_RPMTOPDIRrsquo the default directory for the RPM distribution willbe used If this option is not provided on the command line the top builddirectory will be used as the RPM top directory as well

33 In particular some Debian or Ubuntu systems do not load the groff(1) extensions package and do not havegrefer(1) installed Although this is an oversight on the configuration of the particular Debian or Ubuntusystem we accomodate such misconfiguration with this feature

72 OpenSS7 SS7 Stack

--with-deb-epoch=EPOCHSpecify the lsquoPACKAGE_DEBEPOCHrsquo for the DEB control file The default is to usethe DEB epoch contained in the release package file lsquodebepochrsquo

--with-deb-release=RELEASESpecify the lsquoPACKAGE_DEBRELEASErsquo for the DEB control file The default is touse the DEB release contained in the release package file lsquodebreleasersquo

--with-deb-topdir=DIRSpecify the lsquoPACKAGE_DEBTOPDIRrsquo top directory for DEBs If specified with anull lsquoPACKAGE_DEBTOPDIRrsquo the default directory for the DEB distribution willbe used If this option is not provided on the command line the top builddirectory will be used as the DEB top directory as well

--with-k-release=PACKAGE_KRELEASESpecify the lsquoPACKAGE_KRELEASErsquo release of the Linux kernel for which the buildis targeted When not cross compiling if this option is not set the build willbe targeted at the kernel running in the build environment (eg lsquouname -rrsquo)When cross-compiling this option must be specified or the configure script willgenerate an error and terminate

--with-k-linkage=PACKAGE_KLINKAGESpecify the lsquoPACKAGE_KLINKAGErsquo for kernel module linkage This can be one ofthe followingbull lsquoloadablersquo ndash loadable kernel modulesbull lsquolinkablersquo ndash linkable kernel objects

The default is to build loadable kernel modules

--with-k-modules=K-MODULES-DIRSpecify the lsquoK-MODULES-DIRrsquo directory to which kernel modules will be installedThe default is based on the option lsquo--with-k-releasersquo lsquo--with-k-prefixrsquoand lsquo--with-k-rootdirrsquo The default is lsquoDESTDIRrsquolsquoK-MODULES-DIRrsquo which istypically lsquoDESTDIRlibmodulesPACKAGE_KRELEASErsquo This directory is nor-mally located by the lsquoconfigurersquo script and need only be provided for specialcross-build environments or when requested by a lsquoconfigurersquo script error mes-sage

--with-k-build=K-BUILD-DIRSpecify the lsquoK-BUILD-DIRrsquo base kernel build directory in which configured kernelsource resides The default is lsquoDESTDIRK-MODULES-DIRbuildrsquo This direc-tory is normally located by the lsquoconfigurersquo script and need only be providedfor special cross-build environments or when requested by a lsquoconfigurersquo scripterror message

--with-k-source=K-SOURCE-DIRSpecify the lsquoK-SOURCE-DIRrsquo base kernel build directory in which configuredkernel source resides The default is lsquoDESTDIRK-MODULES-DIRsourcersquo Thisdirectory is normally located by the lsquoconfigurersquo script and need only be pro-vided for special cross-build environments or when requested by a lsquoconfigurersquoscript error message

Chapter 6 Installation 73

--with-k-modver=K-MODVER-FILESpecify the lsquoK-MODVER-FILErsquo kernel module versions file The default is lsquoK-BUILD-DIRModulesymversrsquo This file is normally located by the lsquoconfigurersquoscript and need only be provided for special cross-build environments or whenrequested by a lsquoconfigurersquo script error message

--with-k-sysmap=K-SYSMAP-FILESpecify the lsquoK-SYSMAP-FILErsquo kernel system map file The default is lsquoK-BUILD-DIRSystemmaprsquo This file is normally located by the lsquoconfigurersquo script andneed only be provided for special cross-build environments or when requestedby a lsquoconfigurersquo script error message

--with-k-archdir=K-ARCHDIRSpecify the lsquoK-ARCHDIRrsquo kernel source architecture specific directory The de-fault is lsquoDESTDIRK-SOURCE-DIRarchrsquo This directory is normally located bythe lsquoconfigurersquo script and need only be provided for special cross-build envi-ronments or when requested by a lsquoconfigurersquo script error message

--with-k-machdir=K-MACHDIRSpecify the lsquoK-MACHDIRrsquo kernel source machine specific directory The defaultis lsquoDESTDIRK-SOURCE-DIRtarget_cpu rsquo This directory is normally locatedby the lsquoconfigurersquo script and need only be provided for special cross-buildenvironments or when requested by a lsquoconfigurersquo script error message

--with-k-config=K-CONFIGSpecify the lsquoK-CONFIGrsquo kernel configuration file The default is lsquoBOOTconfig-K-RELEASE rsquo This configuration file is normally located by the lsquoconfigurersquoscript and need only be provided for special cross-build environments or whenrequested by a lsquoconfigurersquo script error message

--with-k-optimize=HOW--without-k-optimize

Specify lsquoHOWrsquo optimization normal size speed or quick size compiles kernelmodules -Os speed compiles kernel modules -O3 and quick compiles kernelmodules -O0 The default is normal Use with care The most common useof this option is to specify lsquo--with-k-optimize=speed --disable-k-safersquo tocompile for maximum performance Nevertheless even these setting are ricingand the resulting kernel modules will only be about 5 faster

--with-lis[=LIS-DIR]--without-lis

Specify the lsquoLIS-DIRrsquo directory in which to find LiS headers Also specifiesthat the build is to be made against Linux STREAMS The default is lsquousrincludeLiSrsquo if it exists lsquonorsquo otherwise This directory is normally located bythe lsquoconfigurersquo script and need only be provided for special cross-build envi-ronments or when requested by a lsquoconfigurersquo script error message This optionhas no effect on release packages that do not use the STREAMS subsystem

74 OpenSS7 SS7 Stack

--with-lfs[=LFS-DIR]--without-lfs

Specify the lsquoLFS-DIRrsquo directory in which to find LfS headers Also specifiesthat the build is to be made against Linux Fast-STREAMS The default islsquousrincludestreamsrsquo if it exists lsquonorsquo otherwise This directory is normallylocated by the lsquoconfigurersquo script and need only be provided for special cross-build environments or when requested by a lsquoconfigurersquo script error messageThis option has no effect on release packages that do not use the STREAMSsubsystem

--with-strconf-master=STRCONF_CONFIGSpecify the lsquoSTRCONF_CONFIGrsquo file name to which the configuration master fileis written The default is lsquoConfigmasterrsquo This option has no effect on releasepackages that do not use the STREAMS subsystem and the strconf scriptsThis option should not be specified when configuring the master package as thesetting for all add-on packages will conflict

--with-base-major=STRCONF_MAJBASEStart numbering for major devices at lsquoSTRCONF_MAJBASErsquo The default is lsquo230rsquoThis option has no effect on release packages that do not use the STREAMSsubsystem and the strconf scripts This option should not be specified whenconfiguring the master package as the setting for all add-on packages will con-flict

6352 Environment Variables

Following are additional environment variables to lsquoconfigurersquo their meaning and use

GPG GPG signature command This is used for signing distributions by the main-tainer By default lsquoconfigurersquo will search for this tool

GNUPGUSERGPG user name This is used for signing distributions by the maintainer

GNUPGHOMEGPG home directory This is used for signing distributions by the maintainer

GPGPASSWDGPG password for signing This is used for signing distributions by the main-tainer This environment variable is not maintained by the lsquoconfigurersquo scriptand should only be used on an isolated system

SOELIM Roff source elimination command soelim(1) This is only necessary when theoption lsquo--with-cooked-manpagesrsquo has been specified and lsquoconfigurersquo cannotfind the proper soelim(1) command By default lsquoconfigurersquo will search forthis tool

REFER Roff references command refer(1) This is only necessary when the optionlsquo--with-cooked-manpagesrsquo has been specified and lsquoconfigurersquo cannot find theproper refer(1) command By default lsquoconfigurersquo will search for this tool

TBL Roff table command tbl(1) This is only necessary when the optionlsquo--with-cooked-manpagesrsquo has been specified and lsquoconfigurersquo cannot findthe proper tbl(1) command By default lsquoconfigurersquo will search for this tool

Chapter 6 Installation 75

PIC Roff picture command pic(1) This is only necessary when the optionlsquo--with-cooked-manpagesrsquo has been specified and lsquoconfigurersquo cannot findthe proper pic(1) command By default lsquoconfigurersquo will search for this tool

GZIP Default compression options provided to GZIP_CMD

GZIP CMDManpages (and kernel modules) compression commands gzip(1) This is onlynecessary when the option lsquo--without-compressed-manpagesrsquo has not beenspecified and lsquoconfigurersquo cannot find the proper gzip(1) command By de-fault lsquoconfigurersquo will search for this tool

BZIP2 Default compression options provided to BZIP2_CMD

BZIP2 CMDManpages compression commands bzip2(1) This is only necessary whenthe option lsquo--without-compressed-manpagesrsquo has not been specifiedand lsquoconfigurersquo cannot find the proper bzip2(1) command By defaultlsquoconfigurersquo will search for this tool

MAKEWHATISManpages apropros database rebuild command makewhatis(8) By defaultlsquoconfigurersquo will search for this tool By default lsquoconfigurersquo will search forthis tool

CHKCONFIGChkconfig command chkconfig(8) This was used for installation of initscripts All packages now come with init_install(8) and init_remove(8)scripts used to install and remove init scripts on both RPM and Debian sys-tems

RPM Rpm command rpm(1) This is only necessary for RPM builds By defaultlsquoconfigurersquo will search for this tool

RPMBUILDBuild RPM command rpmbuild(1) This is only necessary for RPM buildsBy default lsquoconfigurersquo will search for this tool rpm(1) will be used insteadof rpmbuild(1) only if rpmbuild(1) cannot be found

DPKG Dpkg comand dpkg(1) This command is used for building Debian packagesBy default lsquoconfigurersquo will search for this tool

DPKG SOURCEDpkg-source command dpkg-source(1) This command is used for buildingDebian dsc packages By default lsquoconfigurersquo will search for this tool

DPKG BUILDPACKAGEDpkg-buildpackage command dpkg-buildpackage(1) This command is usedfor building Debian deb packages By default lsquoconfigurersquo will search for thistool

DEB BUILD ARCHDebian build architecture This variable is used for building Debian packagesThe default is the autoconf build architecture

76 OpenSS7 SS7 Stack

DEB BUILD GNU CPUDebian build cpu This variable is used for building Debian packages Thedefault is the autoconf build cpu

DEB BUILD GNU SYSTEMDebian build os This variable is used for building Debian packages The defaultis the autoconf build os

DEB BUILD GNU TYPEDebian build alias This variable is used for building Debian packages Thedefault is the autoconf build alias

DEB HOST ARCHDebian host architecture This variable is used for building Debian packagesThe default is the autoconf host architecture

DEB HOST GNU CPUDebian host cpu This variable is used for building Debian packages Thedefault is the autoconf host cpu

DEB HOST GNU SYSTEMDebian host os This variable is used for building Debian packages The defaultis the autoconf host os

DEB HOST GNU TYPEDebian host alias This variable is used for building Debian packages Thedefault is the autoconf host alias

LDCONFIGConfigure loader command ldconfig(8) Command used to configure theloader when libraries are installed By default lsquoconfigurersquo will search for thistool

DESTDIR Cross build root directory Specifies the root directory for build and installation

DEPMODBuild kernel module dependencies command depmod(8) This is used dur-ing installation of kernel modules to a running kernel to rebuild the modulesdependency database By default lsquoconfigurersquo will search for this tool

MODPROBEProbe kernel module dependencies command modprobe(8) This is used duringinstallation of kernel modules to a running kernel to remove old modules Bydefault lsquoconfigurersquo will search for this tool

LSMOD List kernel modules command lsmod(8) This is used during installation ofkernel modules to a running kernel to detect old modules for removal Bydefault lsquoconfigurersquo will search for this tool

LSOF List open files command lsof(1) This is used during installation of kernelmodules to a running kernel to detect old modules for removal Processes own-ing the old kernel modules will be killed and the module removed If the processrestarts the new module will be demand loaded By default lsquoconfigurersquo willsearch for this tool

Chapter 6 Installation 77

GENKSYMSGenerate kernel symbols command genksyms(8) This is used for generatingmodule symbol versions during build By default lsquoconfigurersquo will search forthis tool

KGENKSYMSLinux 26 generate kernel symbols command genksyms(8) This is used forgenerating module symbol version during build By default lsquoconfigurersquo willsearch for this tool

OBJDUMPObject dumping command objdump(1) This is used for listing informationabout object files By default lsquoconfigurersquo will search for this tool

NM Object symbol listing command nm(1) This is used for listing informationabout object files By default lsquoconfigurersquo will search for this tool

MODPOST CACHECache file for modpost(1) The version of the modpostsh script that ships witheach package can cache information to a cache file to speed multiple builds Thisenvironment variable is used to specify a cache file

AUTOM4TEAutom4te command autom4te(1) This is the executable used by autotestfor pre- and post-installation checks By default lsquoconfigurersquo will search forthis tool

AUTOTESTAutotest macro build command autom4te(1) This is the executable used byautotest for pre- and post-installation checks By default lsquoconfigurersquo willsearch for this tool

6353 Build

To build from the tar ball See Section 643 [Building from the Tar Ball] page 78

64 Building

641 Building from the Source RPM

If you have downloaded the necessary source RPM (see Section 625 [Downloading theSource RPM] page 57) then the following instructions will rebuild the binary RPMs onyour system Once the binary RPMs are rebuilt you may install them as described above(see Section 651 [Installing the Binary RPM] page 79)The source RPM is rebuilt to binary RPMs as follows wget httpwwwopenss7orgrpmsSRPMSstrss7-09a8-1srcrpm rpmbuild --rebuild -vv strss7-09a8-1srcrpm

The rebuild process can also recognize a number of options that can be used to tweak theresulting binaries See Section 633 [Configuring the Source RPM] page 63 These optionsare provided on the rpm(1) command line For example

78 OpenSS7 SS7 Stack rpmbuild --rebuild -vv --target athlon-redhat-linux

--define _kversion 2420-287 --with lfs -- strss7-09a8-1srcrpm

will rebuild binary RPM for the lsquo2420-287rsquo kernel for the lsquoathlonrsquo architecture againstthe Linux Fast-STREAMS STREAMS package34

Installation

To install the resulting binary RPM See Section 651 [Installing the Binary RPM] page 79

642 Building from the Debian DSC

If you have downloaded the necessary Debian DSC (see Section 626 [Downloading theDebian DSC] page 57) then the following instructions will rebuild the binary DEBs onyour system Once the binary DEBs are rebuilt you may install them as described above(see Section 652 [Installing the Debian DEB] page 80)The Debian DSC is rebuilt to binary DEBs as follows wget httpwwwopenss7orgdebianstrss7_09a8-0dsc wget httpwwwopenss7orgdebianstrss7_09a8-0targz dpkg-buildpackage -v strss7_09a8-0dsc

The rebuild process can also recognize a number of options that can be used to tweak theresulting binaries See Section 634 [Configuring the Debian DSC] page 67 These optionsare provided in the environment variable BUILD DPKGOPTIONS and have the same formas the options to lsquoconfigurersquo See Section 635 [Configuring the Tar Ball] page 67 Forexample BUILD_DEBOPTIONS=rsquo

--with-lfs--with-k-release=2420-287--host=athlon-debian-linux-gnursquo

dpkg-buildpackage -v strss7_09a8-0dsc

will rebuild binary DEB for the lsquo2420-287rsquo kernel for the lsquoathlonrsquo architecture againstthe Linux Fast-STREAMS STREAMS package35

Installation

To install the resulting binary DEB See Section 652 [Installing the Debian DEB] page 80

643 Building from the Tar Ball

If you have downloaded the tar ball (see Section 627 [Downloading the Tar Ball] page 58)then the following instructions will rebuild the package on your system (Note that thebuild process does not required root privilege)

34 Note that the lsquo_kversionrsquo of lsquo2420-287rsquo is only an example35 Note that the lsquo_kversionrsquo of lsquo2420-287rsquo is only an example

Chapter 6 Installation 79

6431 Native Build

Following is an example of a native build against the running kernel wget httpwwwopenss7orgstrss7-09a8tarbz2 tar -xjvf strss7-09a8tarbz2 pushd strss7-09a8 configure make popd 6432 Cross-Build

Following is an example for a cross-build The kernel release version must always be specifiedfor a cross-build36 If you are cross-building specify the root for the build with environmentvariable DESTDIR The cross-compile host must also be specified if different from thebuild host Either the compiler and other tools must be in the usual places where GNUautoconf(1) can find them or they must be specified with declarations such as lsquoCC=usrlibppc-linuxgccrsquo on the lsquoconfigurersquo command line wget httpwwwopenss7orgstrss7-09a8tarbz2 tar -xjvf strss7-09a8tarbz2 pushd strss7-09a8 configure DESTDIR=someotherroot --with-k-release=2418 --host sparc-linux make popd 65 Installing

651 Installing the Binary RPM

If you have downloaded the necessary binary RPMs (see Section 623 [Downloading the Bi-nary RPM] page 51) or have rebuilt binary RPMs using the source RPM (see Section 641[Building from the Source RPM] page 77) then the following instructions will install theRPMs on your system For additional information on rpm(1) see rpm(8) pushd RPMSi686 rpm -ihv strss7--09a8-172i686rpm

You must have the correct binary RPMs downloaded or built for this to be successfulSome of the packages are relocatable and can have final installation directories altered withthe lsquo--relocatersquo option to rpm(1) see rpm(8) For example the following will relocatethe documentation and info directories

36 Because it is a cross-build the kernel version on the build machine is unlikely to be the kernel version ofthe target machine except by coincidence

80 OpenSS7 SS7 Stack pushd RPMSi686 rpm -ihv

--relocate rsquousrsharedoc=usrlocalsharedocrsquo --relocate rsquousrshareinfo=usrlocalshareinforsquo -- strss7-doc-09a8-172i686rpm

The previous example will install the lsquostrss7-docrsquo package by will relocate the documen-tation an info directory contents to the lsquousrlocalrsquo version

652 Installing the Debian DEB

If you have downloaded the necessary Debian DEBs (see Section 624 [Downloading the De-bian DEB] page 54) or have rebuild binary DEBs using the Debian DSC (see Section 642[Building from the Debian DSC] page 78) then the following instructions will install theDEBs on your system For additional information see dpkg(8) pushd debian dpkg -iv strss7-_09a8-0_deb

You must have the correct lsquodebrsquo files downloaded or build for this to be successful

653 Installing the Tar Ball

After the build process (see Section 643 [Building from the Tar Ball] page 78) installationonly requires execution of one of two automake(1) targets

lsquomake installrsquoThe lsquoinstallrsquo automake(1) target will install all the components of the pack-age Root privilege is required to successfully invoke this target

lsquomake install-striprsquoThe lsquoinstall-striprsquo automake(1) target will install all the components of thepackage but will strip unnecessary information out of the objects and compressmanual pages Root privilege is required to successfully invoke this target

66 Removing

661 Removing the Binary RPM

To remove an installed version of the binary RPMs (whether obtained from the OpenSS7binary RPM releases or whether created by the source RPM) execute the following com-mand rpm -evv lsquorpm -qa | grep rsquo^strss7-rsquolsquo

For more information see rpm(1)

662 Removing the Debian DEB

To remove and installed version of the Debian DEB (whether obtained from the OpenSS7binary DEB releases or whether created by the Debian DSC) execute the following com-mand

Chapter 6 Installation 81 dpkg -ev lsquodpkg -l | grep rsquo^strss7-rsquolsquo

For more information see dpkg(8)

663 Removing the Source RPM

To remove all the installed binary RPM build from the source RPM see Section 661[Removing the Binary RPM] page 80 Then simply remove the binary RPM package filesand source RPM file A command such as find -name rsquostrss7-rpmrsquo -type f -print0 | xargs --null rm -f

should remove all lsquostrss7rsquo RPMs from your system

664 Removing the Debian DSC

To remove all the installed binary DEB build from the Debian DSC see Section 662[Removing the Debian DEB] page 80 Then simply remove the binary DEB package filesand Debian DSC file A command such as find ( -name rsquostrss7-debrsquo

-o -name rsquostrss7-dscrsquo -o -name rsquostrss7-tar ) -type f -print0 | xargs --null rm -f

should remove all lsquostrss7rsquo DEBs DSCs and TARs from your system

665 Removing the Tar Ball

To remove a version installed from tar ball change to the build directory where the packagewas built and use the lsquouninstallrsquo automake(1) target as follows cd usrsrcstrss7 make uninstall cd rm -fr strss7-09a8 rm -f strss7-09a8targz rm -f strss7-09a8tarbz2

If you have inadvertently removed the build directory and therefore no longer have aconfigured directory from which to execute lsquomake uninstallrsquo then perform all of the stepsfor configuration and installation (see Section 653 [Installing the Tar Ball] page 80) exceptthe final installation and then perform the steps above

67 Loading

671 Normal Module Loading

When OpenSS7 SS7 Stack installs modules and drivers belonging to release packages arenormally configured for demand loading The lsquoinstallrsquo and lsquoinstall-striprsquo automake(1)

82 OpenSS7 SS7 Stack

targets will make the necessary changes to the lsquoetcmodulesconfrsquo file and place the mod-ules in an appropriate place in lsquolibmodules2420-287strss7rsquo The lsquomake installrsquoprocess should have copied the kernel module files lsquostreams-orsquo to the directory lsquolibmodules2420-287strss7rsquo This means that to load any of these modules you cansimply execute for example lsquomodprobe stream-somedriver rsquo37

6711 Linux Fast-STREAMS Module Loading

The lsquostrss7rsquo demand load system supports both the old kerneld and the new kmod mech-anisms for demand loading kernel modules

The convention for lsquostrss7rsquo kernel loadable object files is

bull Their name start with streams-

bull They are placed in lsquolibmodules2420-287streamsrsquo where lsquo2420-287rsquo isan example kernel version

If your kernel has been built using the lsquokerneldrsquo daemon then lsquostrss7rsquo kernel moduleswill automatically load as soon as the STREAMS module is pushed or the driver is openedThe lsquomake installrsquo process makes the necessary changes to the lsquoetcmodulesconfrsquo fileAfter the install you will see lines like the following added to your lsquoetcmodulesconfrsquofile prune modulesstrss7if -f libmoduleslsquouname -rlsquomodulesstrss7include libmoduleslsquouname -rlsquomodulesstrss7endif

which will provide for demand loading of the modules if they have been built and installedfor the running kernel The lsquolibmoduleslsquouname -rlsquomodulesstrss7rsquo file looks likethis alias char-major-245 streams-some_driver

alias char-major-246 streams-other_driver Note that STREAMS modules are not listed in this file but will be loaded by name usinglsquokerneldrsquo if available

Linux Fast-STREAMS has a wider range of kernel module loading mechanisms than isprovided by the deprecated LiS For mechanisms used for kernel module loading underLinux Fast-STREAMS See Section ldquoToprdquo in Linux Fast-STREAMS Reference Manual

6712 Linux STREAMS Module Loading

LiS is deprecated and this section has been deleted

68 Maintenance

37 Note that the lsquo_kversionrsquo of lsquo2420-287rsquo is only an example

Chapter 6 Installation 83

681 Makefile Targets

automake(1) has many targets not all of which are obvious to the casual user In additionOpenSS7 automake(1) files have additional rules added to make maintaining and releasinga package somewhat easier This list of targets provides some help with what targets can beinvoked what they do and what they hope to achieve The available targets are as follows

6811 User Targets

The following are normal targets intended to be invoked by installers of the package Theyare concerned with compiling checking the compile installing checking the installationand removing the package

lsquo[all]rsquo This is also the default target It compiles the package and all release packagesselected by lsquoconfigurersquo This is performed after configuring the source withlsquoconfigurersquo A lsquoMakefilersquo stub is provided so that if the package has not hadautoreconf(1) run (such as when checked out from CVS the package willattempt to run lsquoautoreconf -fivrsquoAll OpenSS7 Project packages are configured without maintainer mode andwithout dependency tracking by default This speeds compilation of the packagefor one-time builds This also means that if you are developing using the sourcepackage (edit-compile-test cycle) changes made to source files will not causethe automatic rebuilding due to dependencies There are two ways to enabledependency tracking specify lsquo--enable-maintainer-modersquo to lsquoconfigurersquo orspecify lsquo--enable-dependency-trackingrsquo to lsquoconfigurersquo I use the formerduring my edit-compile-test cycleThis is a standard GNU automake(1) makefile target This target does notrequire root privilege

lsquocheckrsquo All OpenSS7 Project release packages provide check scripts for the check targetThis step is performed after compiling the package and will run all of the lsquocheckrsquoprograms against the compiled binaries Which checks are performed dependson whether lsquo--enable-maintainer-modersquo was specified to lsquoconfigurersquo If inmaintainer mode checks that assist with the release of the package will berun (such as checking that all manual pages load properly and that they haverequired sections) We recommend running the check stage before installingbecause it catches problems that might keep the installed package from func-tioning properlyAnother way to enable the greater set of checks without invoking maintainermode is to specify lsquo--enable-checksrsquo to lsquoconfigurersquo For more informationsee Section 711 [Pre-installation Checks] page 93This is a standard GNU automake(1) makefile target although the functionsperformed are customized for the OpenSS7 Project This target does not requireroot privilege

lsquoinstallrsquolsquoinstall-striprsquo

The lsquoinstallrsquo target installs the package by installing each release packageThis target also performs some actions similar to the pre- and post-install scripts

84 OpenSS7 SS7 Stack

used by packaging tools such as rpm(1) or dpkg(1) The lsquoinstall-striprsquotarget strips unnecessary symbols from executables and kernel modules beforeinstallingThis is a standard GNU automake(1) makefile target This target requiresroot privilege

lsquoinstallcheckrsquoAll OpenSS7 Project packages provide test scripts for the lsquoinstallcheckrsquo tar-get Test scripts are created and run using autotest (part of the autoconf(1)package) Which test suites are run and how extensive they are depends onwhether lsquo--enable-maintainer-modersquo was specified to lsquoconfigurersquo When inmaintainer mode all test suites will be run When not in maintainer modeonly a few post-install checks will be performed but the test suites themselveswill be installed in lsquousrlibexecstrss7rsquo38 for later useThis is a standard GNU automake(1) makefile target This target might re-quire root privilege Tests requiring root privilege will be skipped when run asa regular user Tests requiring regular account privileges will be skipped whenrun as root

lsquoretestrsquo To complement the lsquoinstallcheckrsquo target above all OpenSS7 Project pack-ages provide the lsquoretestrsquo target as a means to rerun failed conformance testsuite test cases The lsquoretestrsquo target is provided because some test cases in thetest suites have delicate timing considerations that allow them to fail sporadi-cally Invoking this target will retest the failed cases until no cases that are notexpected failures remainThis is an OpenSS7 Project specific makefile target As with lsquoinstallcheckrsquothis target might require root privilege Tests requiring root privilege will beskipped when run as a regular user Tests requiring regular account privilegeswill be skipped when run as root

lsquouninstallrsquoThis target will reverse the steps taken to install the package This target alsoperforms pre- and post- erase scripts used by packaging tools such as rpm ordpkg You need to have a configured build directory from which to execute thistarget however you do not need to have compiled any of the files in that builddirectory39

The lsquouninstallrsquo target unfortunately removes add-on packages in the sameorder in which they were installed This is not good for the OpenSS7 MasterPackage where the lsquoremoversquo target should be used insteadThis is a standard GNU automake(1) makefile target This target requiresroot privilege

lsquoremoversquo This target is like lsquouninstallrsquo with the exception that it removes add-on pack-ages in the reverse order that installation was performed40

38 lsquousrlibexecstrss7rsquo is just an example the actual location is lsquo$libexecdir$PACKAGErsquo which variesfrom distribution to distribution (as some distributions such as Mandriva do not have a libexec directory)

39 Therefore it is possible to download the package configure it and then uninstall it This is handy if youdo not have the sources used to build and install the package immediately available

40 This is useful from the OpenSS7 Master Package

Chapter 6 Installation 85

This is an OpenSS7 Project specific makefile target This target requires rootprivilege

6812 Maintainer Targets

The following targets are targets intended for use by maintainers of the package or those re-sponsible for release and packaging of a derivative work of the package Some of these targetsare only effective when maintainer mode has been invoked (lsquo--enable-maintainer-modersquospecified to lsquoconfigurersquo)

lsquodistrsquo Creates a distribution package (tarball) in the top level build direc-tory OpenSS7 Project packages distribute two archives a lsquogzip tarrsquoarchive and a lsquobzip tarrsquo archive These archives will have the namelsquostrss7-09a8targzrsquo and lsquostrss7-09a8tarbz2rsquo

This is a standard GNU automake(1) makefile target This target does notrequire root privilege

lsquodistcheckrsquoThis target is intended for use when releasing the package It creates the tar(1)archives above and then unpacks the tarball in a source directory configures in aseparate build directory compiles the package installs the package in a separateinstall directory tests the install package to ensure that some components workand finally uses the unpacked source tree to build another tarball If you haveadded or removed files from the package this is a good way to ensure thateverything is still stable for release

This is a standard GNU automake(1) makefile target This target does notrequire root privilege

6813 Clean Targets

lsquomostlycleanrsquoCleans out most of the files from the compile stage This target is helpful if youhave not enabled dependency tracking and need to recompile with changes

This is a standard GNU automake(1) makefile target This target does notrequire root privilege

lsquocleanrsquo Cleans all the files from the build directory generated during the lsquomake [all]rsquophase It does not however remove files from the directory left there from thelsquoconfigurersquo run Use the lsquodistcleanrsquo target to remove those too

This is a standard GNU automake(1) makefile target This target might re-quire root privilege if the lsquoinstallcheckrsquo target or the testsuite was invokedwith root privilege (leaving files belonging to root)

lsquodistcleanrsquoThis target cleans out the directories left behind by lsquodistcheckrsquo and removesall the lsquoconfigurersquo and generated files from the build directory This willeffectively remove all the files in the build directory with the except of filesthat belong to you or some other process

86 OpenSS7 SS7 Stack

This is a standard GNU automake(1) makefile target This target might re-quire root privilege if the lsquoinstallcheckrsquo target or the testsuite was invokedwith root privilege (leaving files belonging to root)

lsquomaintainer-cleanrsquoThis target not only removes files from the build directory it removes generatedfiles from the source directory as well Care should be taken when invoking thistarget because it removes files generated by the maintainer and distributed withthe archive that might require special tools to regenerate These special toolsmight only be available to the maintainer41 It also means that you probablyneed a full blown Linux system to rebuild the package For more informationsee Section 628 [Downloading from CVS] page 59This is a standard GNU automake(1) makefile target This target might re-quire root privilege if the lsquoinstallcheckrsquo target or the testsuite was invokedwith root privilege (leaving files belonging to root)

lsquocheck-cleanrsquoThis target removes log files left behind by the lsquocheckrsquo target By default thecheck scripts append to log files in the top level build directory This targetcan be used to clean out those log files before the next runThis is an OpenSS7 Project specific makefile target This target does not requireroot privilege

6814 Manual Page Targets

The following targets are used to build install and uninstall just the manual pages from thedistribution These targets are good for creating a distribution of just the manual pagesWhen building atop multiple packages these targets recurse down through each package

lsquomansrsquo Build all of the manual pages This involves performing parametersubstitution on manual pages and optionally cooking the manual pages iflsquo--with-cooked-manpagesrsquo was requested during configuration

lsquoinstall-mansrsquoInstalls the manual pages under DESTDIR Specify DESTDIR to place themanual pages wherever you see fit If DESTDIR is not specified on the com-mand line the manual pages will be installed in the normal installation direc-tory

lsquouninstall-mansrsquoUninstalls the manual pages from DESTDIR Specify DESTDIR to indicatewhere to remove the manual pages from If DESTDIR is not specified on thecommand line the manual pages will be removed from the normal installationdirectory

6815 Release Targets

The following are targets used to generate complete releases into the package distributiondirectory These are good for unattended and NFS builds which is what I use them for

41 Theoretically this is true however the OpenSS7 Project does not use any maintainer programs that are notgenerally available (ie open source)

Chapter 6 Installation 87

Also when building from atop multiple packages these targets also recurse down througheach package

lsquoreleasersquo Build all of the things necessary to generate a release On an rpm(1) systemthis is the distribution archives the source rpm and the architecture dependentand architecture independent binary rpms All items are placed in the packagedistribution directory that can be specified with the lsquo--with-pkg-distdir=DIRrsquooption to lsquoconfigurersquo

This is an OpenSS7 Project specific makefile target This target does not requireroot privilege

lsquoforced-releasersquoThe lsquoreleasersquo target will not regenerate any files that already exist in thepackage distribution directory This forced target will

This is an OpenSS7 Project specific makefile target This target does not requireroot privilege

lsquorelease-signrsquoYou will be prompted for a password unless to specify it to make with theGNUPGPASS variable For unattended or non-interactive builds with signingyou can do that as lsquomake GNUPGPASS=mypasswd release-signrsquo

This is an OpenSS7 Project specific makefile target This target does not requireroot privilege

lsquoforced-release-signrsquoThe lsquorelease-signrsquo target will not regenerate any files that already exist inthe package distribution directory This forced target will

This is an OpenSS7 Project specific makefile target This target does not requireroot privilege

lsquorelease-cleanrsquoThis target will remove all distribution files for the current package from thepackage distribution directory

This is an OpenSS7 Project specific makefile target This target does not requireroot privilege

6816 Logging Targets

For convenience to log the output of a number of targets to a file log targets are definedThe log file itself is used as the target to make but make invokes the target minus a lsquologrsquosuffix So for example to log the results of target lsquofoorsquo invoke the target lsquofoologrsquo Theonly target that this does not apply to is lsquocompilelogrsquo When you invoke the targetlsquocompilelogrsquo a simple automake(1) is invoked and logged to the file lsquocompilelogrsquo Thelsquofoologrsquo rule applies to all other targets This does not work for all targets just a selectedfew42 Following are the logging targets

42 Note that because logging targets invoke a pipe automake(1) does not return the correct return status(always returns success if the tee(1) operation is successful) Therefore these targets should not be invokedby scripts that need to use the return value from automake(1)

88 OpenSS7 SS7 Stack

Common Logging Targets

Common logging targets correspond to normal user automake(1) makefile targets as follows

lsquocompilelogrsquoThis is an OpenSS7 Project specific makefile target but it invokes the standardGNU automake(1) makefile target lsquo[all]rsquo

lsquochecklogrsquoThis is an OpenSS7 Project specific makefile target but it invokes the standardGNU automake(1) makefile target lsquocheckrsquo

lsquoinstalllogrsquoThis is an OpenSS7 Project specific makefile target but it invokes the standardGNU automake(1) makefile target lsquoinstallrsquo

lsquoinstallchecklogrsquoThis is an OpenSS7 Project specific makefile target but it invokes the standardGNU automake(1) makefile target lsquoinstallcheckrsquo

lsquouninstalllogrsquoThis is an OpenSS7 Project specific makefile target but it invokes the standardGNU automake(1) makefile target lsquouninstallrsquo

lsquoremovelogrsquoThis is an OpenSS7 Project specific makefile target that invokes the OpenSS7Project lsquoremoversquo target

Maintainer Logging Targets

Maintainer logging targets correspond to maintainer mode automake(1) makefile targetsas follows

lsquodistlogrsquoThis is an OpenSS7 Project specific makefile target but it invokes the standardGNU automake(1) makefile target lsquodistrsquo

lsquodistchecklogrsquoThis is an OpenSS7 Project specific makefile target but it invokes the standardGNU automake(1) makefile target lsquodistcheckrsquo

lsquosrpmlogrsquoThis is an OpenSS7 Project specific makefile target that invokes the OpenSS7Project lsquosrpmrsquo target

lsquorebuildlogrsquoThis is an OpenSS7 Project specific makefile target that invokes the OpenSS7Project lsquorebuildrsquo target

lsquoresignlogrsquoThis is an OpenSS7 Project specific makefile target that invokes the OpenSS7Project lsquoresignrsquo target

lsquoreleaselogrsquoThis is an OpenSS7 Project specific makefile target that invokes the OpenSS7Project lsquoreleasersquo target

Chapter 6 Installation 89

lsquorelease-signlogrsquoThis is an OpenSS7 Project specific makefile target that invokes the OpenSS7Project lsquorelease-signrsquo target

If you want to add one simply add it to LOGGING TARGETS in lsquoMakefileamrsquo

6817 Problem Report Targets

To ease problem report generation all logging targets will automatically generate a problemreport suitable for mailing in the file lsquotargetprrsquo for target lsquotargetlogrsquo This problemreport file is in the form of an email and can be sent using the included send-pr script orby invoking the lsquosend-prrsquo makefile targetThere are two additional problem report targets

lsquoprrsquo The lsquoprrsquo target is for independently generating a problem report outside of thebuild or installation process The target will automatically generate a problemreport skeleton suitable for editing and mailing in the file lsquoproblemprrsquo Thisproblem report file is in the form of an email and can be edited and sent directlyor sent using the included send-pr script or by invoking the lsquosend-prrsquo targetThis is an OpenSS7 Project specific makefile target This target does not requireroot privilege

lsquosend-prrsquo The lsquosend-prrsquo target is for finalizing and mailing a problem report generatedeither inside or outside the build and installation process The target will au-tomatically finalize and mail the lsquoproblemprrsquo problem report if it has changedsince the last time that lsquosend-prrsquo was invokedThis is an OpenSS7 Project specific makefile target This target does not requireroot privilege (unless the problem report file was generated as root)

6818 Release Archive Targets

The following targets are used to generate and clean distribution archive and signature filesWhereas the lsquodistrsquo target affects archives in the top build directory the lsquorelease-archiversquotargets affects archives in the package distribution directory (either the top build directoryor that specified with lsquo--with-pkg-distdir=DIRrsquo to lsquoconfigurersquo)You can change the directory to which packages are distributed by using thelsquo--with-pkg-distdir=DIRrsquo option to lsquoconfigurersquo The default directory is the top builddirectory

lsquorelease-archivesrsquoThis target creates the distribution archive files if they have not already beencreated This not only runs the lsquodistrsquo target but also copies the files to thedistribution directory which by default is the top build directoryThe files generated are namedlsquostrss7-09a8targzrsquo and lsquostrss7-09a8tarbz2rsquoYou can change this distribution directory with the lsquo--with-pkg-distdirrsquo op-tion to lsquoconfigurersquo See lsquoconfigure --helprsquo for more details on optionsThis is an OpenSS7 Project specific makefile target This target does not requireroot privilege

90 OpenSS7 SS7 Stack

lsquorelease-sign-archivesrsquoThis target is like lsquorelease-archivesrsquo except that it also signs the archivesusing a GPG detached signature You will be prompted for a password unlessyou pass the GNUPGPASS variable to make For automated or unattendedbuilds pass the GNUPGPASS variable like solsquomake GNUPGPASS=mypasswd release-sign-archivesrsquoSignature files will be namedlsquostrss7-09a8targzascrsquo and lsquostrss7-09a8tarbz2ascrsquoThese files will be moved to the package distribution directory with the plaintext archivesThis is an OpenSS7 Project specific makefile target This target does not requireroot privilege

lsquorelease-clean-archivesrsquoThis target will clean the release archives and signature files from the packagedistribution directoryThis is an OpenSS7 Project specific makefile target This target does not requireroot privilege

6819 RPM Build Targets

On rpm(1) systems or systems sporting rpm packaging tools the following targets are usedto generate rpm(1) release packages The epoch and release number can be controlled by thecontents of the lsquorpmepochrsquo and lsquorpmreleasersquo files or with the lsquo--with-rpm-epoch=EPOCHrsquoand lsquo--with-rpm-release=RELEASErsquo options to lsquoconfigurersquo See lsquoconfigure --helprsquo formore information on options We always use release number lsquo1rsquo You can use releasenumbers above lsquo1rsquo

lsquosrpmrsquo This target generates the source rpm for the package (without signing the sourcerpm) The source rpm will be named lsquostrss7-09a8-1srpmrsquoThis is an OpenSS7 Project specific makefile target This target does not requireroot privilege

lsquorpmsrsquo This target is responsible for generating all of the package binary rpms for thearchitecture The binary rpms will be namedlsquostrss7--09a8-1rpmrsquowhere the stars indicate the subpackage and the architecture Both the archi-tecture specific subpackages (binary objects) and the architecture independent(lsquonoarchrsquo) subpackages will be built unless the the former was disabled withthe option lsquo--disable-archrsquo or the later with the option lsquo--disable-indeprsquopassed to lsquoconfigurersquoThis is an OpenSS7 Project specific makefile target This target does not requireroot privilege

lsquosignrsquolsquosrpm-signrsquo

These two targets are the same When invoked they will add a signature tothe source rpm file provided that the file does not already have a signature

Chapter 6 Installation 91

You will be prompted for a password if a signature is required Automated orunattended builds can be achieved by using the emake expect script includedin lsquo$srcdirscriptsemakersquoThis is an OpenSS7 Project specific makefile target This target does not requireroot privilege

lsquorebuildrsquo This target accepts searches out a list of kernel names from thelsquo$DESTDIRlibmodulesrsquo directory and builds rpms for those kernels andfor each of a set of architectures given in the AM RPMTARGETS variable tomake This is convenience target for building a group of rpms on a given buildmachineThis is an OpenSS7 Project specific makefile target This target does not requireroot privilege

lsquoresignrsquo This target will search out and sign with a GPG signature the source rpm andall of the binary rpms for this package that can be found in the package distri-bution directory This target will prompt for a GPG password Automated orunattended builds can be achieved with the emake expect script located herelsquo$srcdirscriptsemakersquoThis is an OpenSS7 Project specific makefile target This target does not requireroot privilege

68110 Debian Build Targets

On Debian systems or systems sporting Debian packaging tools the following targets areused to generate Debian release packages The release number can be controlled by thecontents of the lsquodebreleasersquo file or with the lsquo--with-debrelease=RELEASENUMBERrsquo optionto lsquoconfigurersquo See lsquoconfigure --helprsquo for more information on options

lsquodscrsquo This target will build the Debian source change package (lsquodscrsquo file) Weuse release number lsquo0rsquo so that the entire tarball is included in the lsquodscrsquo fileYou can use release number lsquo1rsquo for the same purposes Release numbersabove lsquo1rsquo will not include the entire tarball The lsquodscrsquo file will be namedlsquostrss7_09a8-0dscrsquoThis is an OpenSS7 Project specific makefile target This target does not requireroot privilege

lsquosigsrsquo This target signs the lsquodebrsquo files You will be prompted for a password unlessto specify it to make with the GNUPGPASS variableThis is an OpenSS7 Project specific makefile target This target does not requireroot privilege

lsquodebsrsquo This target will build the Debian binary package (lsquodebrsquo file) from thelsquodscrsquo created above (This target will also create the lsquodscrsquo if it hasnot been created already) The subpackage lsquodebrsquo files will be namedlsquostrss7-_09a8-0_debrsquo where the stars indicate the subpackage and thearchitectureThis is an OpenSS7 Project specific makefile target This target does not requireroot privilege

92 OpenSS7 SS7 Stack

lsquocsigrsquo This target signs the lsquodscrsquo file You will be prompted for a password unlessto specify it to make with the GNUPGPASS variableThis is an OpenSS7 Project specific makefile target This target does not requireroot privilege

68111 Documentation Targets

On systems that have doxygen(1) documentation tool the following targets are used togenerate doxygen html documentation

lsquodoxyrsquo This target generates doxygen(1) documetnation from suitably marked sourcesFile containing the necessary documentation marks are discovered automat-ically by configure Doxygen documentation can be generated bus is notdistributed Documentation is cerated in the subdirectory lsquodochtmlrsquo

Chapter 7 Troubleshooting 93

7 Troubleshooting

71 Test Suites

711 Pre-installation Checks

Most OpenSS7 packages including the OpenSS7 SS7 Stack package ship withpre-installation checks integral to the build system Pre-installation checks include checkscripts that are shipped in the lsquoscriptsrsquo subdirectory as well as specialized make targetsthat perform the checks

When building and installing the package from RPM or DEB source packages (seeSection 641 [Building from the Source RPM] page 77 and Section 642 [Building fromthe Debian DSC] page 78) a fundamental set of post-compile pre-installation checksare performed prior to building binary packages This is performed automatically anddoes not require any special actions on the part of the user creating binary packages fromsource packages

When building and installing the package from tarball (see Section 643 [Building fromthe Tar Ball] page 78 and Section 653 [Installing the Tar Ball] page 80) however pre-installation checks are only performed if specifically invoked by the builder of the packagePre-installation checks are invoked after building the package and before installing thepackage Pre-installation checks are performed by invoking the lsquocheckrsquo or lsquochecklogrsquotarget to make when building the package as shown in Example 71 wget httpwwwopenss7orgstrss7-09a8tarbz2 tar -xjvf strss7-09a8tarbz2 pushd strss7-09a8 configure make make check lt------- invoke pre-installation checks popd

Example 71 Invoking Pre-Installation Checks Pre-installation checks fall into two categories System Checks and Maintenance Checks

7111 Pre-Installation System Checks

System Checks are post-compilation checks that can be performed before installing thepackage that check to ensure that the compiled objects function and will be successfully in-stalled When the lsquo--enable-maintainer-modersquo option has not been passed to configureonly System Checks will be performed

For example the steps shown in Example 72 will perform System checks

94 OpenSS7 SS7 Stack wget httpwwwopenss7orgstrss7-09a8tarbz2 tar -xjvf strss7-09a8tarbz2 pushd strss7-09a8 configure make make check lt------ invokes System pre-installation checks popd

Example 72 Invoking System Checks 7112 Pre-Installation Maintenance Checks

Maintenance Checks include all System Checks but also checks to ensure that thekernel modules applications programs header files development tools test programsdocumentation and manual pages conform to OpenSS7 standards When thelsquo--enable-maintainer-modersquo option has been passed to configure Maintenance Checkswill be performed

For example the steps shown in Example 73 will perform Maintenance checks wget httpwwwopenss7orgstrss7-09a8tarbz2 tar -xjvf strss7-09a8tarbz2 pushd strss7-09a8 configure --enable-maintainer-mode make make check lt------ invokes Maintenance pre-installation checks popd

Example 73 Invoking Maintenance Checks 7113 Specific Pre-Installation Checks

A number of check scripts are provided in the lsquoscriptsrsquo subdirectory of the distributionthat perform both System and Maintenance checks These are as follows

check_commandsThis check performs both System and Maintenance checksWhen performing System tests the following tests are performedUnless cross-compiling or unless a program is included in AM_INSTALLCHECK_STD_OPTIONS_EXEMPT every program in bin_PROGRAMS sbin_PROGRAMS andlibexec_PROGRAMS is tested to ensure that the lsquo--helprsquo lsquo--versionrsquo andlsquo--copyingrsquo options are accepted When cross-compiling is is not possible toexecute cross-compiled binaries and these checks are skipped in that caseScript executables on the other hand can be executed on the build host so un-less listed in AM_INSTALLCHECK_STD_OPTIONS_EXEMPT every program in dist_bit_SCRIPTS dist_sbin_SCRIPTS and pkglibexec_SCRIPTS are tested to en-sure that the lsquo--helprsquo lsquo--versionrsquo and lsquo--copyingrsquo options are acceptedWhen performing Maintenance tests check_commands also checks to ensurethat a manual page exists in section 1 for every executable binary or script

Chapter 7 Troubleshooting 95

that will be installed from bin_PROGRAMS and dist_bin_SCRIPTS It alsochecks to ensure that a manual page exists in section 8 for every executable bi-nary or script that will be installed from sbin_PROGRAMS dist_sbin_SCRIPTSlibexec_PROGRAMS and pkglibexec_SCRIPTS

check_declsThis check only performs Maintenance checksIt collects the results from the check_libs check_modules and check_headers check scripts and tests to ensure every declaration of a functionprototype or external variable contained in installed header files has acorresponding exported symbol from either a to be installed shared objectlibrary or a to be installed kernel module Declarations are exemptedfrom this requirement if their identifiers have been explicitly added to theEXPOSED_SYMBOL variable If WARN_EXCESS is set to lsquoyesrsquo then the checkscript will only warn when excess declarations exist (without a correspondingexported symbol) otherwise the check script will generate an error and thecheck will fail

check_headersThis check only performs Maintenance checksWhen performing Maintenance tests it identifies all of the declarations includedin to be installed header files It then checks to ensure that a manual pageexists in sections 2 3 7 or 9 as appropriate for the type of declaration Italso checks to see if a manual page source file exists in the source directoryfor a declaration that has not been included in the distribution Function orprototype declarations that do not have a manual page in sections 2 3 or9 will cause the check to fail Other declarations (lsquovariablersquo lsquoexternvarrsquolsquomacrorsquo lsquoenumeratersquo lsquoenumrsquo lsquostructrsquo lsquounionrsquo lsquotypedefrsquo lsquomemberrsquo etc) willonly warn if a manual page does not exist but will not fail the check

check_libsThis check only performs Maintenance checksWhen performing Maintenance tests it checks that each exported symbol ineach to be installed shared object library has a manual page in section 3 It alsochecks that each exported symbol has a lsquofunctionrsquo lsquoprototypersquo or lsquoexternvarrsquodeclaration in the to be installed header files A missing declaration or manualpage will cause this check to fail

check_mansThis check only performs Maintenance checksWhen performing Maintenance tests it checks that to be install manual pagescan be formatted for display without any errors or warnings from the buildhost man program It also checks that required headings exist for manual pagesaccording to the section in which the manual page will be installed It warnsif recommended headings are not included in the manual pages Because someRPM distributions have manual pages that might conflict with the packagemanual pages this check script also checks for conflicts with installed manualpages on the build host This check script also checks to ensure that all to be

96 OpenSS7 SS7 Stack

installed manual pages are used in some fashion that is they have a declarationor exported symbol or are the name of a kernel module or STREAMS moduleor driver possibly capitalizedNote that checking for conflicts with the build host should probably be includedin the System checks (because System checks are performed before the sourceRPM install scriptlet)

check_modulesThis check performs both System and Maintenance checksWhen performing System tests it checks each to be installed kernel moduleto ensure that all undefined symbols can be resolved to either the kernel oranother module It also checks whether an exported or externally declaredsymbol conflicts with an exported or externally declared symbol present in thekernel or another module1

When performing Maintenance tests this check script tests that each to beinstalled kernel module has a manual page in section 9 and that each exportedsymbol that does not begin with an underscore and that belongs to an exportedfunction or exported variable has a manual page in section 9 It also checks toensure that each exported symbol that does not begin with an underscore andthat belongs to an exported function or exported variable has a lsquofunctionrsquolsquoprototypersquo or lsquoexternvarrsquo declaration in the to be installed header files

check_streamsThis check performs only Maintenance checksWhen performing Maintenance tests it checks that for each configuredSTREAMS module or driver or device node that a manual page exists insection 4 or section 7 as appropriate

The output of the pre-installation tests are fairly self explanatory Each check script savessome output to lsquonamelogrsquo where name is the name of the check script as listed above Asummary of the results of the test are display to standard output and can also be capturedto the lsquochecklogrsquo file if the lsquochecklogrsquo target is used instead of the lsquocheckrsquo target tomakeBecause the check scripts proliferate lsquonamelogrsquo files throughout the build directory a lsquomakecheck-cleanrsquo make target has be provided to clean them out lsquomake check-cleanrsquo shouldbe run before each successive run of lsquomake checkrsquo

712 Post-installation Checks

Most OpenSS7 packages ship with a compatibility and conformance test suite built us-ing the lsquoautotestrsquo capabilities of lsquoautoconfrsquo These test suites act as a wrapper for thecompatibility and conformance test programs that are shipped with the packageUnlike the pre-installation checks the post-installation checks are always run completeThe only check that post-installation test scripts perform is to test whether they havebeen invoked with root privileges or not When invoked as root or as a plain user sometests might be skipped that require root privileges or that require plain user privileges tocomplete successfully

1 This particular check has caught some name space pollution that has occurred in the 2611 kernel

Chapter 7 Troubleshooting 97

7121 Running Test Suites

There are several ways of invoking the conformance test suites

1 The test suites can be run after installation of the package by invoking the lsquomakeinstallcheckrsquo or lsquomake installchecklogrsquo target Some packages require that rootprivileges be acquired before invoking the package

2 The test suites can be run from the distribution subdirectory after installation of thepackage by invoking the testsuite shell script directly

3 The test suites can be run standalone from the lsquolibexecrsquo (lsquousrlibexecrsquo) installationdirectory by invoking the testsuite shell script directly

Typical steps for invoking the test suites directly from make are shown in Example 74 wget httpwwwopenss7orgstrss7-09a8tarbz2 tar -xjvf strss7-09a8tarbz2 pushd strss7-09a8 configure make make check lt------ invokes System pre-installation checks make install sudo make installcheck lt------- invokes post-installation tests popd

Example 74 Invoking System Checks When performing post-installation checks for the purposes of generating a problem re-port the checks should always be performed from the build directory either with lsquomakeinstallcheckrsquo or by invoking testsuite directly from the lsquotestsrsquo subdirectory of thebuild directory This ensures that all of the information known to configure and pertinentto the configuration of the system for which a test case failed will be collected in the re-sulting lsquotestsuitelogrsquo file deposited upon test suite failure in the lsquotestsrsquo directory Thislsquotestsuitelogrsquo file can then be attached as part of the problem report and provides richdetails to maintainers of the package See also See Section 72 [Problem Reports] page 97below

Typical steps for invoking and installed testsuite standalone are shown in Example 75 [sudo] usrlibexecstrss7testsuite

Example 75 Invoking testsuite Directly When invoked directly testsuite will generate a lsquotestsuitelogrsquo file in the current di-rectory and a lsquotestsuitedirrsquo directory of failed tests cases and debugging scripts Forgenerating a problem report for failed test cases see Section 724 [Stand Alone ProblemReports] page 100

72 Problem Reports

98 OpenSS7 SS7 Stack

721 Problem Report Guidelines

Problem reports in the following categories should include a log file as indicated in the tablebelow

lsquoconfigurersquoA problem with the configuration process occurs that causes the lsquoconfigurersquocommand to fail The problem report must include the lsquoconfiglogrsquo file thatwas generated by configure

lsquomake compilelogrsquoA problem with the build process occurs that causes the lsquomakersquo commandto fail Perform lsquomake cleanrsquo and then lsquomake compilelogrsquo and attach thelsquoconfiglogrsquo and lsquocompilelogrsquo files to the problem report

lsquomake checklogrsquoA problem occurs with the lsquomake checkrsquo target that causes it to fail Performlsquomake check-clean checklogrsquo and attach the lsquoconfiglogrsquo lsquocompilelogrsquoand lsquochecklogrsquo files to the problem report

lsquosudo make installlogrsquoA problem occurs with lsquosudo make installrsquo that causes it to fail Performlsquosudo make uninstallrsquo and lsquosudo make installlogrsquo and attach thelsquoconfiglogrsquo lsquocompilelogrsquo lsquochecklogrsquo and lsquoinstalllogrsquo files to theproblem report

lsquo[sudo] make installchecklogrsquoA problem occurs with the lsquomake installcheckrsquo target that causesthe test suite to fail Attach the resulting lsquoteststestsuitelogrsquo andlsquoinstallchecklogrsquo file to the problem report There is no need to attach theother files as they are included in lsquoteststestsuitelogrsquo

lsquo[sudo] make uninstalllogrsquoA problem occurs with the lsquomake uninstallrsquo target that causes the test suiteto fail Perform lsquosudo make uninstalllogrsquo and attach the lsquoconfiglogrsquolsquocompilelogrsquo lsquochecklogrsquo lsquoinstalllogrsquo lsquoinstallchecklogrsquolsquoteststestsuitelogrsquo and lsquouninstalllogrsquo file to the problem report

lsquo[sudo] make removelogrsquoA problem occurs with the lsquomake removersquo target that causes the test suiteto fail Perform lsquosudo make removelogrsquo and attach the lsquoconfiglogrsquolsquocompilelogrsquo lsquochecklogrsquo lsquoinstalllogrsquo lsquoinstallchecklogrsquolsquoteststestsuitelogrsquo and lsquoremovelogrsquo file to the problem report

For other problems that occur during the use of the OpenSS7 SS7 Stack package pleasewrite a test case for the test suite that recreates the problem if one does not yet existand provide a test program patch with the problem report Also include whatever logfiles are generated by the kernel (cmn_err(9)) or by the strerr(8) or strace(1) facilities(strlog(9))

722 Generating Problem Reports

The OpenSS7 Project uses the GNU GNATS system for problem reporting Although thelsquosend-prrsquo tool from the GNU GNATS package can be used for bug reporting to the projectrsquos

Chapter 7 Troubleshooting 99

GNATS database using electronic mail it is not always convenient to download and installthe GNATS system to gain access to the lsquosend-prrsquo toolTherefore the OpenSS7 SS7 Stack package provides the lsquosend-prrsquo shell script that canbe used for problem reporting The lsquosend-prrsquo shell script can invoked directly and is awork-alike for the GNU lsquosend-prrsquo toolThe lsquosend-prrsquo tool takes the same flags and can be used in the same fashion howeverwhereas lsquosend-prrsquo is an interactive tool2 lsquosend-prrsquo is also able to perform batch process-ing Whereas lsquosend-prrsquo takes its field information from local databases or from using thelsquoquery-prrsquo C-language program to query a remote database the lsquosend-prrsquo tool has thefield database internal to the toolProblem reports can be generate using make See Section 6817 [Problem Report Targets]page 89 An example of how simple it is to generate a problem report is illustrated inExample 76 make prSEND-PRSEND-PR send-pr send-pr was invoked to generate an external report AnSEND-PR automated problem report has been created in the file namedSEND-PR rsquoproblemprrsquo in the current directory This problem report canSEND-PR be sent to bugsopenss7org by calling this script asSEND-PR rsquohomebrianos7scriptssend-pr --file=problemprrsquoSEND-PRSEND-PR It is possible to edit some of the fields before sending on theSEND-PR problem report Please remember that there is NO WARRANTY SeeSEND-PR the file rsquoCOPYINGrsquo in the top level directorySEND-PRSEND-PR Please do not send confidential information to the bug reportSEND-PR address Inspect the file rsquoproblemprrsquo for confidentialSEND-PR information before mailingSEND-PR vim problempr lt--- follow instructions at head of file make send-pr

Example 76 Invoking Problem Report Generation Using the lsquomake prrsquo target to generate a problem report has the advantages that it willassemble any available lsquologrsquo files in the build directory and attach them to the problemreport

723 Automatic Problem Reports

The OpenSS7 SS7 Stack package also provides a feature for automatic problem reportgeneration that meets the problem report submission guidelines detailed in the precedingsectionsWhenever a logging makefile target (see Section 6816 [Logging Targets] page 87) is in-voked if the primary target fails the send-pr shell script is invoked to automatically

2 lsquosend-prrsquo launches the userrsquos EDITOR to edit the problem report before submitting it

100 OpenSS7 SS7 Stack

generate a problem report file suitable for the corresponding target (as described aboveunder see Section 721 [Problem Report Guidelines] page 98) An example is shown inExample 77 make compilelogmake[5] [libXNSdrvs_a-ipo] Error 1make[5] Leaving directory lsquou6buildel4strxnsrsquomake[4] [all-recursive] Error 1make[4] Leaving directory lsquou6buildel4strxnsrsquomake[3] [all] Error 2make[3] Leaving directory lsquou6buildel4strxnsrsquomake[2] [all-recursive] Error 1make[2] Leaving directory lsquou6buildel4rsquomake[1] [all] Error 2make[1] Leaving directory lsquou6buildel4rsquoSEND-PRSEND-PR send-pr Make target compilelog failed in the compile stage AnSEND-PR automated problem report has been created in the file namedSEND-PR rsquoproblemprrsquo in the current directory This problem report canSEND-PR be sent to bugsopenss7org by calling rsquomake send-prrsquoSEND-PRSEND-PR It is possible to edit some of the fields before sending on theSEND-PR problem report Please remember that there is NO WARRANTY SeeSEND-PR the file rsquoCOPYINGrsquo in the top level directorySEND-PRSEND-PR Please do not send confidential information to the bug reportSEND-PR address Inspect the file rsquoproblemprrsquo for confidentialSEND-PR information before mailingSEND-PR vim problempr lt--- follow instructions at head of file make send-pr

Example 77 Problem Report from Failed Logging Target 724 Stand Alone Problem Reports

The OpenSS7 SS7 Stack package installs the send-pr script and its configuration filelsquosend-prconfigrsquo in lsquo$libexecdirstrss7rsquo along with the validation testsuite seeSee Section 71 [Test Suites] page 93 As with the testsuite this allows the send-prscript to be used for problem report generation on an installed system that does not havea build directory

An example of invoking the package testsuite and then generating a problem report forfailed cases is shown in Example 78

Chapter 7 Troubleshooting 101 [sudo] usrlibexecstrss7testsuite test cases failed usrlibexecstrss7send-prSEND-PRSEND-PR send-pr send-pr was invoked to generate an external report AnSEND-PR automated problem report has been created in the file namedSEND-PR rsquoproblemprrsquo in the current directory This problem report canSEND-PR be sent to bugsopenss7org by calling this script asSEND-PR rsquousrlibexecstrss7send-pr --file problemprrsquoSEND-PRSEND-PR It is possible to edit some of the fields before sending on theSEND-PR problem report Please remember that there is NO WARRANTY SeeSEND-PR the file rsquoCOPYINGrsquo in the top level directorySEND-PRSEND-PR Please do not send confidential information to the bug reportSEND-PR address Inspect the file rsquoproblemprrsquo for confidentialSEND-PR information before mailingSEND-PR vim problempr lt--- follow instructions at head of file usrlibexecstrss7send-pr --file problempr

Example 78 Invoking send-pr Directly The advantage of the approach shown in the example is that the send-pr script is capableof collecting the lsquotestsuitelogrsquo file and the failed test cases and debugging scripts fromthe lsquotestsuitedirrsquo directory and including them in the problem report as well as allpackage pertinent information from the installed lsquosend-prconfigrsquo

73 Known Problems

The OpenSS7 Project does not ship software with known bugs All bugs are unknownVerified behaviour is that behaviour that has been verified by conformance test suites thatare shipped with the OpenSS7 SS7 Stack packageUnverified behaviour may contain unknown bugsPlease remember that there is NO WARRANTYSee also Section 55 [Bugs] page 43 or file lsquoBUGSrsquo in the release directory

Licenses 103

Licenses

104 OpenSS7 SS7 Stack

GNU Affero General Public License

The GNU Affero General Public LicenseVersion 3 19 November 2007

Copyright ccopy 2007 Free Software Foundation Inc httpfsforg

Everyone is permitted to copy and distribute verbatim copies of thislicense document but changing it is not allowed

Preamble

The GNU Affero General Public License is a free copyleft license for software and otherkinds of works specifically designed to ensure cooperation with the community in the caseof network server software

The licenses for most software and other practical works are designed to take away yourfreedom to share and change the works By contrast our General Public Licenses areintended to guarantee your freedom to share and change all versions of a programndashto makesure it remains free software for all its users

When we speak of free software we are referring to freedom not price Our General PublicLicenses are designed to make sure that you have the freedom to distribute copies of freesoftware (and charge for them if you wish) that you receive source code or can get it if youwant it that you can change the software or use pieces of it in new free programs and thatyou know you can do these things

Developers that use our General Public Licenses protect your rights with two steps (1)assert copyright on the software and (2) offer you this License which gives you legal per-mission to copy distribute andor modify the software

A secondary benefit of defending all usersrsquo freedom is that improvements made in alternateversions of the program if they receive widespread use become available for other developersto incorporate Many developers of free software are heartened and encouraged by theresulting cooperation However in the case of software used on network servers this resultmay fail to come about The GNU General Public License permits making a modifiedversion and letting the public access it on a server without ever releasing its source code tothe public

The GNU Affero General Public License is designed specifically to ensure that in such casesthe modified source code becomes available to the community It requires the operator of anetwork server to provide the source code of the modified version running there to the usersof that server Therefore public use of a modified version on a publicly accessible servergives the public access to the source code of the modified version

An older license called the Affero General Public License and published by Affero wasdesigned to accomplish similar goals This is a different license not a version of the AfferoGPL but Affero has released a new version of the Affero GPL which permits relicensingunder this license

The precise terms and conditions for copying distribution and modification follow

Licenses 105

Terms and Conditions

0 DefinitionsldquoThis Licenserdquo refers to version 3 of the GNU Affero General Public LicenseldquoCopyrightrdquo also means copyright-like laws that apply to other kinds of works such assemiconductor masksldquoThe Programrdquo refers to any copyrightable work licensed under this License Eachlicensee is addressed as ldquoyourdquo ldquoLicenseesrdquo and ldquorecipientsrdquo may be individuals ororganizationsTo ldquomodifyrdquo a work means to copy from or adapt all or part of the work in a fashionrequiring copyright permission other than the making of an exact copy The resultingwork is called a ldquomodified versionrdquo of the earlier work or a work ldquobased onrdquo the earlierworkA ldquocovered workrdquo means either the unmodified Program or a work based on the Pro-gramTo ldquopropagaterdquo a work means to do anything with it that without permission wouldmake you directly or secondarily liable for infringement under applicable copyright lawexcept executing it on a computer or modifying a private copy Propagation includescopying distribution (with or without modification) making available to the publicand in some countries other activities as wellTo ldquoconveyrdquo a work means any kind of propagation that enables other parties to makeor receive copies Mere interaction with a user through a computer network with notransfer of a copy is not conveyingAn interactive user interface displays ldquoAppropriate Legal Noticesrdquo to the extent that itincludes a convenient and prominently visible feature that (1) displays an appropriatecopyright notice and (2) tells the user that there is no warranty for the work (exceptto the extent that warranties are provided) that licensees may convey the work underthis License and how to view a copy of this License If the interface presents a listof user commands or options such as a menu a prominent item in the list meets thiscriterion

1 Source CodeThe ldquosource coderdquo for a work means the preferred form of the work for making modi-fications to it ldquoObject coderdquo means any non-source form of a workA ldquoStandard Interfacerdquo means an interface that either is an official standard definedby a recognized standards body or in the case of interfaces specified for a particularprogramming language one that is widely used among developers working in thatlanguageThe ldquoSystem Librariesrdquo of an executable work include anything other than the work asa whole that (a) is included in the normal form of packaging a Major Component butwhich is not part of that Major Component and (b) serves only to enable use of thework with that Major Component or to implement a Standard Interface for which animplementation is available to the public in source code form A ldquoMajor Componentrdquoin this context means a major essential component (kernel window system and soon) of the specific operating system (if any) on which the executable work runs or acompiler used to produce the work or an object code interpreter used to run it

106 OpenSS7 SS7 Stack

The ldquoCorresponding Sourcerdquo for a work in object code form means all the source codeneeded to generate install and (for an executable work) run the object code and tomodify the work including scripts to control those activities However it does notinclude the workrsquos System Libraries or general-purpose tools or generally availablefree programs which are used unmodified in performing those activities but which arenot part of the work For example Corresponding Source includes interface definitionfiles associated with source files for the work and the source code for shared librariesand dynamically linked subprograms that the work is specifically designed to requiresuch as by intimate data communication or control flow between those subprogramsand other parts of the workThe Corresponding Source need not include anything that users can regenerate auto-matically from other parts of the Corresponding SourceThe Corresponding Source for a work in source code form is that same work

2 Basic PermissionsAll rights granted under this License are granted for the term of copyright on theProgram and are irrevocable provided the stated conditions are met This License ex-plicitly affirms your unlimited permission to run the unmodified Program The outputfrom running a covered work is covered by this License only if the output given itscontent constitutes a covered work This License acknowledges your rights of fair useor other equivalent as provided by copyright lawYou may make run and propagate covered works that you do not convey withoutconditions so long as your license otherwise remains in force You may convey coveredworks to others for the sole purpose of having them make modifications exclusivelyfor you or provide you with facilities for running those works provided that youcomply with the terms of this License in conveying all material for which you do notcontrol copyright Those thus making or running the covered works for you must doso exclusively on your behalf under your direction and control on terms that prohibitthem from making any copies of your copyrighted material outside their relationshipwith youConveying under any other circumstances is permitted solely under the conditionsstated below Sublicensing is not allowed section 10 makes it unnecessary

3 Protecting Usersrsquo Legal Rights From Anti-Circumvention LawNo covered work shall be deemed part of an effective technological measure underany applicable law fulfilling obligations under article 11 of the WIPO copyright treatyadopted on 20 December 1996 or similar laws prohibiting or restricting circumventionof such measuresWhen you convey a covered work you waive any legal power to forbid circumvention oftechnological measures to the extent such circumvention is effected by exercising rightsunder this License with respect to the covered work and you disclaim any intentionto limit operation or modification of the work as a means of enforcing against theworkrsquos users your or third partiesrsquo legal rights to forbid circumvention of technologicalmeasures

4 Conveying Verbatim CopiesYou may convey verbatim copies of the Programrsquos source code as you receive it in anymedium provided that you conspicuously and appropriately publish on each copy an

Licenses 107

appropriate copyright notice keep intact all notices stating that this License and anynon-permissive terms added in accord with section 7 apply to the code keep intact allnotices of the absence of any warranty and give all recipients a copy of this Licensealong with the ProgramYou may charge any price or no price for each copy that you convey and you may offersupport or warranty protection for a fee

5 Conveying Modified Source VersionsYou may convey a work based on the Program or the modifications to produce it fromthe Program in the form of source code under the terms of section 4 provided thatyou also meet all of these conditionsa The work must carry prominent notices stating that you modified it and giving a

relevant dateb The work must carry prominent notices stating that it is released under this Li-

cense and any conditions added under section 7 This requirement modifies therequirement in section 4 to ldquokeep intact all noticesrdquo

c You must license the entire work as a whole under this License to anyone whocomes into possession of a copy This License will therefore apply along with anyapplicable section 7 additional terms to the whole of the work and all its partsregardless of how they are packaged This License gives no permission to licensethe work in any other way but it does not invalidate such permission if you haveseparately received it

d If the work has interactive user interfaces each must display Appropriate LegalNotices however if the Program has interactive interfaces that do not displayAppropriate Legal Notices your work need not make them do so

A compilation of a covered work with other separate and independent works whichare not by their nature extensions of the covered work and which are not combinedwith it such as to form a larger program in or on a volume of a storage or distributionmedium is called an ldquoaggregaterdquo if the compilation and its resulting copyright arenot used to limit the access or legal rights of the compilationrsquos users beyond what theindividual works permit Inclusion of a covered work in an aggregate does not causethis License to apply to the other parts of the aggregate

6 Conveying Non-Source FormsYou may convey a covered work in object code form under the terms of sections 4 and5 provided that you also convey the machine-readable Corresponding Source underthe terms of this License in one of these waysa Convey the object code in or embodied in a physical product (including a phys-

ical distribution medium) accompanied by the Corresponding Source fixed on adurable physical medium customarily used for software interchange

b Convey the object code in or embodied in a physical product (including a physi-cal distribution medium) accompanied by a written offer valid for at least threeyears and valid for as long as you offer spare parts or customer support for thatproduct model to give anyone who possesses the object code either (1) a copy ofthe Corresponding Source for all the software in the product that is covered by thisLicense on a durable physical medium customarily used for software interchange

108 OpenSS7 SS7 Stack

for a price no more than your reasonable cost of physically performing this con-veying of source or (2) access to copy the Corresponding Source from a networkserver at no charge

c Convey individual copies of the object code with a copy of the written offer toprovide the Corresponding Source This alternative is allowed only occasionallyand noncommercially and only if you received the object code with such an offerin accord with subsection 6b

d Convey the object code by offering access from a designated place (gratis or fora charge) and offer equivalent access to the Corresponding Source in the sameway through the same place at no further charge You need not require recipientsto copy the Corresponding Source along with the object code If the place tocopy the object code is a network server the Corresponding Source may be ona different server (operated by you or a third party) that supports equivalentcopying facilities provided you maintain clear directions next to the object codesaying where to find the Corresponding Source Regardless of what server hoststhe Corresponding Source you remain obligated to ensure that it is available foras long as needed to satisfy these requirements

e Convey the object code using peer-to-peer transmission provided you inform otherpeers where the object code and Corresponding Source of the work are being offeredto the general public at no charge under subsection 6d

A separable portion of the object code whose source code is excluded from the Cor-responding Source as a System Library need not be included in conveying the objectcode workA ldquoUser Productrdquo is either (1) a ldquoconsumer productrdquo which means any tangible per-sonal property which is normally used for personal family or household purposes or(2) anything designed or sold for incorporation into a dwelling In determining whethera product is a consumer product doubtful cases shall be resolved in favor of coverageFor a particular product received by a particular user ldquonormally usedrdquo refers to atypical or common use of that class of product regardless of the status of the par-ticular user or of the way in which the particular user actually uses or expects or isexpected to use the product A product is a consumer product regardless of whetherthe product has substantial commercial industrial or non-consumer uses unless suchuses represent the only significant mode of use of the productldquoInstallation Informationrdquo for a User Product means any methods procedures autho-rization keys or other information required to install and execute modified versions of acovered work in that User Product from a modified version of its Corresponding SourceThe information must suffice to ensure that the continued functioning of the modifiedobject code is in no case prevented or interfered with solely because modification hasbeen madeIf you convey an object code work under this section in or with or specifically foruse in a User Product and the conveying occurs as part of a transaction in whichthe right of possession and use of the User Product is transferred to the recipient inperpetuity or for a fixed term (regardless of how the transaction is characterized)the Corresponding Source conveyed under this section must be accompanied by theInstallation Information But this requirement does not apply if neither you nor any

Licenses 109

third party retains the ability to install modified object code on the User Product (forexample the work has been installed in ROM)The requirement to provide Installation Information does not include a requirementto continue to provide support service warranty or updates for a work that has beenmodified or installed by the recipient or for the User Product in which it has beenmodified or installed Access to a network may be denied when the modification itselfmaterially and adversely affects the operation of the network or violates the rules andprotocols for communication across the networkCorresponding Source conveyed and Installation Information provided in accord withthis section must be in a format that is publicly documented (and with an implementa-tion available to the public in source code form) and must require no special passwordor key for unpacking reading or copying

7 Additional TermsldquoAdditional permissionsrdquo are terms that supplement the terms of this License by mak-ing exceptions from one or more of its conditions Additional permissions that areapplicable to the entire Program shall be treated as though they were included in thisLicense to the extent that they are valid under applicable law If additional permis-sions apply only to part of the Program that part may be used separately under thosepermissions but the entire Program remains governed by this License without regardto the additional permissionsWhen you convey a copy of a covered work you may at your option remove anyadditional permissions from that copy or from any part of it (Additional permissionsmay be written to require their own removal in certain cases when you modify thework) You may place additional permissions on material added by you to a coveredwork for which you have or can give appropriate copyright permissionNotwithstanding any other provision of this License for material you add to a coveredwork you may (if authorized by the copyright holders of that material) supplementthe terms of this License with termsa Disclaiming warranty or limiting liability differently from the terms of sections 15

and 16 of this License orb Requiring preservation of specified reasonable legal notices or author attributions

in that material or in the Appropriate Legal Notices displayed by works containingit or

c Prohibiting misrepresentation of the origin of that material or requiring that mod-ified versions of such material be marked in reasonable ways as different from theoriginal version or

d Limiting the use for publicity purposes of names of licensors or authors of thematerial or

e Declining to grant rights under trademark law for use of some trade names trade-marks or service marks or

f Requiring indemnification of licensors and authors of that material by anyone whoconveys the material (or modified versions of it) with contractual assumptionsof liability to the recipient for any liability that these contractual assumptionsdirectly impose on those licensors and authors

110 OpenSS7 SS7 Stack

All other non-permissive additional terms are considered ldquofurther restrictionsrdquo withinthe meaning of section 10 If the Program as you received it or any part of it con-tains a notice stating that it is governed by this License along with a term that is afurther restriction you may remove that term If a license document contains a furtherrestriction but permits relicensing or conveying under this License you may add to acovered work material governed by the terms of that license document provided thatthe further restriction does not survive such relicensing or conveyingIf you add terms to a covered work in accord with this section you must place in therelevant source files a statement of the additional terms that apply to those files or anotice indicating where to find the applicable termsAdditional terms permissive or non-permissive may be stated in the form of a sep-arately written license or stated as exceptions the above requirements apply eitherway

8 TerminationYou may not propagate or modify a covered work except as expressly provided un-der this License Any attempt otherwise to propagate or modify it is void and willautomatically terminate your rights under this License (including any patent licensesgranted under the third paragraph of section 11)However if you cease all violation of this License then your license from a particularcopyright holder is reinstated (a) provisionally unless and until the copyright holderexplicitly and finally terminates your license and (b) permanently if the copyrightholder fails to notify you of the violation by some reasonable means prior to 60 daysafter the cessationMoreover your license from a particular copyright holder is reinstated permanently ifthe copyright holder notifies you of the violation by some reasonable means this is thefirst time you have received notice of violation of this License (for any work) from thatcopyright holder and you cure the violation prior to 30 days after your receipt of thenoticeTermination of your rights under this section does not terminate the licenses of partieswho have received copies or rights from you under this License If your rights havebeen terminated and not permanently reinstated you do not qualify to receive newlicenses for the same material under section 10

9 Acceptance Not Required for Having CopiesYou are not required to accept this License in order to receive or run a copy of theProgram Ancillary propagation of a covered work occurring solely as a consequence ofusing peer-to-peer transmission to receive a copy likewise does not require acceptanceHowever nothing other than this License grants you permission to propagate or modifyany covered work These actions infringe copyright if you do not accept this LicenseTherefore by modifying or propagating a covered work you indicate your acceptanceof this License to do so

10 Automatic Licensing of Downstream RecipientsEach time you convey a covered work the recipient automatically receives a licensefrom the original licensors to run modify and propagate that work subject to thisLicense You are not responsible for enforcing compliance by third parties with thisLicense

Licenses 111

An ldquoentity transactionrdquo is a transaction transferring control of an organization orsubstantially all assets of one or subdividing an organization or merging organizationsIf propagation of a covered work results from an entity transaction each party to thattransaction who receives a copy of the work also receives whatever licenses to the workthe partyrsquos predecessor in interest had or could give under the previous paragraph plusa right to possession of the Corresponding Source of the work from the predecessor ininterest if the predecessor has it or can get it with reasonable effortsYou may not impose any further restrictions on the exercise of the rights granted oraffirmed under this License For example you may not impose a license fee royalty orother charge for exercise of rights granted under this License and you may not initiatelitigation (including a cross-claim or counterclaim in a lawsuit) alleging that any patentclaim is infringed by making using selling offering for sale or importing the Programor any portion of it

11 PatentsA ldquocontributorrdquo is a copyright holder who authorizes use under this License of theProgram or a work on which the Program is based The work thus licensed is calledthe contributorrsquos ldquocontributor versionrdquoA contributorrsquos ldquoessential patent claimsrdquo are all patent claims owned or controlled bythe contributor whether already acquired or hereafter acquired that would be infringedby some manner permitted by this License of making using or selling its contributorversion but do not include claims that would be infringed only as a consequence offurther modification of the contributor version For purposes of this definition ldquocon-trolrdquo includes the right to grant patent sublicenses in a manner consistent with therequirements of this LicenseEach contributor grants you a non-exclusive worldwide royalty-free patent licenseunder the contributorrsquos essential patent claims to make use sell offer for sale importand otherwise run modify and propagate the contents of its contributor versionIn the following three paragraphs a ldquopatent licenserdquo is any express agreement or com-mitment however denominated not to enforce a patent (such as an express permissionto practice a patent or covenant not to sue for patent infringement) To ldquograntrdquo sucha patent license to a party means to make such an agreement or commitment not toenforce a patent against the partyIf you convey a covered work knowingly relying on a patent license and the Corre-sponding Source of the work is not available for anyone to copy free of charge and underthe terms of this License through a publicly available network server or other readilyaccessible means then you must either (1) cause the Corresponding Source to be soavailable or (2) arrange to deprive yourself of the benefit of the patent license for thisparticular work or (3) arrange in a manner consistent with the requirements of thisLicense to extend the patent license to downstream recipients ldquoKnowingly relyingrdquomeans you have actual knowledge that but for the patent license your conveying thecovered work in a country or your recipientrsquos use of the covered work in a countrywould infringe one or more identifiable patents in that country that you have reasonto believe are validIf pursuant to or in connection with a single transaction or arrangement you conveyor propagate by procuring conveyance of a covered work and grant a patent license

112 OpenSS7 SS7 Stack

to some of the parties receiving the covered work authorizing them to use propagatemodify or convey a specific copy of the covered work then the patent license you grantis automatically extended to all recipients of the covered work and works based on it

A patent license is ldquodiscriminatoryrdquo if it does not include within the scope of its cover-age prohibits the exercise of or is conditioned on the non-exercise of one or more of therights that are specifically granted under this License You may not convey a coveredwork if you are a party to an arrangement with a third party that is in the business ofdistributing software under which you make payment to the third party based on theextent of your activity of conveying the work and under which the third party grantsto any of the parties who would receive the covered work from you a discriminatorypatent license (a) in connection with copies of the covered work conveyed by you (orcopies made from those copies) or (b) primarily for and in connection with specificproducts or compilations that contain the covered work unless you entered into thatarrangement or that patent license was granted prior to 28 March 2007

Nothing in this License shall be construed as excluding or limiting any implied license orother defenses to infringement that may otherwise be available to you under applicablepatent law

12 No Surrender of Othersrsquo Freedom

If conditions are imposed on you (whether by court order agreement or otherwise) thatcontradict the conditions of this License they do not excuse you from the conditionsof this License If you cannot convey a covered work so as to satisfy simultaneouslyyour obligations under this License and any other pertinent obligations then as aconsequence you may not convey it at all For example if you agree to terms thatobligate you to collect a royalty for further conveying from those to whom you conveythe Program the only way you could satisfy both those terms and this License wouldbe to refrain entirely from conveying the Program

13 Remote Network Interaction Use with the GNU General Public License

Notwithstanding any other provision of this License if you modify the Program yourmodified version must prominently offer all users interacting with it remotely througha network (if your version supports such interaction) an opportunity to receive theCorresponding Source of your version by providing access to the Corresponding Sourcefrom a network server at no charge through some standard or customary means offacilitating copying of software This Corresponding Source shall include the Corre-sponding Source for any work covered by version 3 of the GNU General Public Licensethat is incorporated pursuant to the following paragraph

Notwithstanding any other provision of this License you have permission to link orcombine any covered work with a work licensed under version 3 of the GNU GeneralPublic License into a single combined work and to convey the resulting work Theterms of this License will continue to apply to the part which is the covered work butthe work with which it is combined will remain governed by version 3 of the GNUGeneral Public License

14 Revised Versions of this License

The Free Software Foundation may publish revised andor new versions of the GNUAffero General Public License from time to time Such new versions will be similar

Licenses 113

in spirit to the present version but may differ in detail to address new problems orconcernsEach version is given a distinguishing version number If the Program specifies thata certain numbered version of the GNU Affero General Public License ldquoor any laterversionrdquo applies to it you have the option of following the terms and conditions ei-ther of that numbered version or of any later version published by the Free SoftwareFoundation If the Program does not specify a version number of the GNU Affero Gen-eral Public License you may choose any version ever published by the Free SoftwareFoundationIf the Program specifies that a proxy can decide which future versions of the GNU AfferoGeneral Public License can be used that proxyrsquos public statement of acceptance of aversion permanently authorizes you to choose that version for the ProgramLater license versions may give you additional or different permissions However noadditional obligations are imposed on any author or copyright holder as a result of yourchoosing to follow a later version

15 Disclaimer of WarrantyTHERE IS NO WARRANTY FOR THE PROGRAM TO THE EXTENT PER-MITTED BY APPLICABLE LAW EXCEPT WHEN OTHERWISE STATED INWRITING THE COPYRIGHT HOLDERS ANDOR OTHER PARTIES PROVIDETHE PROGRAM ldquoAS ISrdquo WITHOUT WARRANTY OF ANY KIND EITHER EX-PRESSED OR IMPLIED INCLUDING BUT NOT LIMITED TO THE IMPLIEDWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULARPURPOSE THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCEOF THE PROGRAM IS WITH YOU SHOULD THE PROGRAM PROVE DEFEC-TIVE YOU ASSUME THE COST OF ALL NECESSARY SERVICING REPAIR ORCORRECTION

16 Limitation of LiabilityIN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO INWRITING WILL ANY COPYRIGHT HOLDER OR ANY OTHER PARTY WHOMODIFIES ANDOR CONVEYS THE PROGRAM AS PERMITTED ABOVE BELIABLE TO YOU FOR DAMAGES INCLUDING ANY GENERAL SPECIAL IN-CIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE ORINABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TOLOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUS-TAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAMTO OPERATE WITH ANY OTHER PROGRAMS) EVEN IF SUCH HOLDER OROTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAM-AGES

17 Interpretation of Sections 15 and 16If the disclaimer of warranty and limitation of liability provided above cannot be givenlocal legal effect according to their terms reviewing courts shall apply local law thatmost closely approximates an absolute waiver of all civil liability in connection withthe Program unless a warranty or assumption of liability accompanies a copy of theProgram in return for a fee

END OF TERMS AND CONDITIONS

114 OpenSS7 SS7 Stack

How to Apply These Terms to Your New Programs

If you develop a new program and you want it to be of the greatest possible use to the publicthe best way to achieve this is to make it free software which everyone can redistribute andchange under these termsTo do so attach the following notices to the program It is safest to attach them to thestart of each source file to most effectively state the exclusion of warranty and each fileshould have at least the ldquocopyrightrdquo line and a pointer to where the full notice is found

one line to give the programrsquos name and a brief idea of what it does

Copyright (C) year name of author

This program is free software you can redistribute it andor modify

it under the terms of the GNU Affero General Public License as published by

the Free Software Foundation either version 3 of the License or (at

your option) any later version

This program is distributed in the hope that it will be useful but

WITHOUT ANY WARRANTY without even the implied warranty of

MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE See the GNU

Affero General Public License for more details

You should have received a copy of the GNU Affero General Public License

along with this program If not see httpwwwgnuorglicenses

Also add information on how to contact you by electronic and paper mailIf your software can interact with users remotely through a network you should also makesure that it provides a way for users to get its source For example if your program is aweb application its interface could display a ldquoSourcerdquo link that leads users to an archive ofthe code There are many ways you could offer source and different solutions will be betterfor different programs see section 13 for the specific requirementsYou should also get your employer (if you work as a programmer) or school if any to signa ldquocopyright disclaimerrdquo for the program if necessary For more information on this andhow to apply and follow the GNU AGPL see httpwwwgnuorglicenses

Licenses 115

GNU General Public License

GNU GENERAL PUBLIC LICENSEVersion 3 29 June 2007

Copyright ccopy 2007 Free Software Foundation Inc httpfsforg

Everyone is permitted to copy and distribute verbatim copies of thislicense document but changing it is not allowed

Preamble

The GNU General Public License is a free copyleft license for software and other kinds ofworks

The licenses for most software and other practical works are designed to take away yourfreedom to share and change the works By contrast the GNU General Public License isintended to guarantee your freedom to share and change all versions of a programndashto makesure it remains free software for all its users We the Free Software Foundation use theGNU General Public License for most of our software it applies also to any other workreleased this way by its authors You can apply it to your programs too

When we speak of free software we are referring to freedom not price Our General PublicLicenses are designed to make sure that you have the freedom to distribute copies of freesoftware (and charge for them if you wish) that you receive source code or can get it if youwant it that you can change the software or use pieces of it in new free programs and thatyou know you can do these things

To protect your rights we need to prevent others from denying you these rights or askingyou to surrender the rights Therefore you have certain responsibilities if you distributecopies of the software or if you modify it responsibilities to respect the freedom of others

For example if you distribute copies of such a program whether gratis or for a fee youmust pass on to the recipients the same freedoms that you received You must make surethat they too receive or can get the source code And you must show them these terms sothey know their rights

Developers that use the GNU GPL protect your rights with two steps (1) assert copyrighton the software and (2) offer you this License giving you legal permission to copy distributeandor modify it

For the developersrsquo and authorsrsquo protection the GPL clearly explains that there is nowarranty for this free software For both usersrsquo and authorsrsquo sake the GPL requires thatmodified versions be marked as changed so that their problems will not be attributederroneously to authors of previous versions

Some devices are designed to deny users access to install or run modified versions of thesoftware inside them although the manufacturer can do so This is fundamentally incom-patible with the aim of protecting usersrsquo freedom to change the software The systematicpattern of such abuse occurs in the area of products for individuals to use which is pre-cisely where it is most unacceptable Therefore we have designed this version of the GPLto prohibit the practice for those products If such problems arise substantially in other

116 OpenSS7 SS7 Stack

domains we stand ready to extend this provision to those domains in future versions of theGPL as needed to protect the freedom of users

Finally every program is threatened constantly by software patents States should not allowpatents to restrict development and use of software on general-purpose computers but inthose that do we wish to avoid the special danger that patents applied to a free programcould make it effectively proprietary To prevent this the GPL assures that patents cannotbe used to render the program non-free

The precise terms and conditions for copying distribution and modification follow

Terms and Conditions

0 DefinitionsldquoThis Licenserdquo refers to version 3 of the GNU General Public LicenseldquoCopyrightrdquo also means copyright-like laws that apply to other kinds of works such assemiconductor masksldquoThe Programrdquo refers to any copyrightable work licensed under this License Eachlicensee is addressed as ldquoyourdquo ldquoLicenseesrdquo and ldquorecipientsrdquo may be individuals ororganizationsTo ldquomodifyrdquo a work means to copy from or adapt all or part of the work in a fashionrequiring copyright permission other than the making of an exact copy The resultingwork is called a ldquomodified versionrdquo of the earlier work or a work ldquobased onrdquo the earlierworkA ldquocovered workrdquo means either the unmodified Program or a work based on the Pro-gramTo ldquopropagaterdquo a work means to do anything with it that without permission wouldmake you directly or secondarily liable for infringement under applicable copyright lawexcept executing it on a computer or modifying a private copy Propagation includescopying distribution (with or without modification) making available to the publicand in some countries other activities as wellTo ldquoconveyrdquo a work means any kind of propagation that enables other parties to makeor receive copies Mere interaction with a user through a computer network with notransfer of a copy is not conveyingAn interactive user interface displays ldquoAppropriate Legal Noticesrdquo to the extent that itincludes a convenient and prominently visible feature that (1) displays an appropriatecopyright notice and (2) tells the user that there is no warranty for the work (exceptto the extent that warranties are provided) that licensees may convey the work underthis License and how to view a copy of this License If the interface presents a listof user commands or options such as a menu a prominent item in the list meets thiscriterion

1 Source CodeThe ldquosource coderdquo for a work means the preferred form of the work for making modi-fications to it ldquoObject coderdquo means any non-source form of a workA ldquoStandard Interfacerdquo means an interface that either is an official standard definedby a recognized standards body or in the case of interfaces specified for a particular

Licenses 117

programming language one that is widely used among developers working in thatlanguage

The ldquoSystem Librariesrdquo of an executable work include anything other than the work asa whole that (a) is included in the normal form of packaging a Major Component butwhich is not part of that Major Component and (b) serves only to enable use of thework with that Major Component or to implement a Standard Interface for which animplementation is available to the public in source code form A ldquoMajor Componentrdquoin this context means a major essential component (kernel window system and soon) of the specific operating system (if any) on which the executable work runs or acompiler used to produce the work or an object code interpreter used to run it

The ldquoCorresponding Sourcerdquo for a work in object code form means all the source codeneeded to generate install and (for an executable work) run the object code and tomodify the work including scripts to control those activities However it does notinclude the workrsquos System Libraries or general-purpose tools or generally availablefree programs which are used unmodified in performing those activities but which arenot part of the work For example Corresponding Source includes interface definitionfiles associated with source files for the work and the source code for shared librariesand dynamically linked subprograms that the work is specifically designed to requiresuch as by intimate data communication or control flow between those subprogramsand other parts of the work

The Corresponding Source need not include anything that users can regenerate auto-matically from other parts of the Corresponding Source

The Corresponding Source for a work in source code form is that same work

2 Basic Permissions

All rights granted under this License are granted for the term of copyright on theProgram and are irrevocable provided the stated conditions are met This License ex-plicitly affirms your unlimited permission to run the unmodified Program The outputfrom running a covered work is covered by this License only if the output given itscontent constitutes a covered work This License acknowledges your rights of fair useor other equivalent as provided by copyright law

You may make run and propagate covered works that you do not convey withoutconditions so long as your license otherwise remains in force You may convey coveredworks to others for the sole purpose of having them make modifications exclusivelyfor you or provide you with facilities for running those works provided that youcomply with the terms of this License in conveying all material for which you do notcontrol copyright Those thus making or running the covered works for you must doso exclusively on your behalf under your direction and control on terms that prohibitthem from making any copies of your copyrighted material outside their relationshipwith you

Conveying under any other circumstances is permitted solely under the conditionsstated below Sublicensing is not allowed section 10 makes it unnecessary

3 Protecting Usersrsquo Legal Rights From Anti-Circumvention Law

No covered work shall be deemed part of an effective technological measure underany applicable law fulfilling obligations under article 11 of the WIPO copyright treaty

118 OpenSS7 SS7 Stack

adopted on 20 December 1996 or similar laws prohibiting or restricting circumventionof such measures

When you convey a covered work you waive any legal power to forbid circumvention oftechnological measures to the extent such circumvention is effected by exercising rightsunder this License with respect to the covered work and you disclaim any intentionto limit operation or modification of the work as a means of enforcing against theworkrsquos users your or third partiesrsquo legal rights to forbid circumvention of technologicalmeasures

4 Conveying Verbatim Copies

You may convey verbatim copies of the Programrsquos source code as you receive it in anymedium provided that you conspicuously and appropriately publish on each copy anappropriate copyright notice keep intact all notices stating that this License and anynon-permissive terms added in accord with section 7 apply to the code keep intact allnotices of the absence of any warranty and give all recipients a copy of this Licensealong with the Program

You may charge any price or no price for each copy that you convey and you may offersupport or warranty protection for a fee

5 Conveying Modified Source Versions

You may convey a work based on the Program or the modifications to produce it fromthe Program in the form of source code under the terms of section 4 provided thatyou also meet all of these conditions

a The work must carry prominent notices stating that you modified it and giving arelevant date

b The work must carry prominent notices stating that it is released under this Li-cense and any conditions added under section 7 This requirement modifies therequirement in section 4 to ldquokeep intact all noticesrdquo

c You must license the entire work as a whole under this License to anyone whocomes into possession of a copy This License will therefore apply along with anyapplicable section 7 additional terms to the whole of the work and all its partsregardless of how they are packaged This License gives no permission to licensethe work in any other way but it does not invalidate such permission if you haveseparately received it

d If the work has interactive user interfaces each must display Appropriate LegalNotices however if the Program has interactive interfaces that do not displayAppropriate Legal Notices your work need not make them do so

A compilation of a covered work with other separate and independent works whichare not by their nature extensions of the covered work and which are not combinedwith it such as to form a larger program in or on a volume of a storage or distributionmedium is called an ldquoaggregaterdquo if the compilation and its resulting copyright arenot used to limit the access or legal rights of the compilationrsquos users beyond what theindividual works permit Inclusion of a covered work in an aggregate does not causethis License to apply to the other parts of the aggregate

6 Conveying Non-Source Forms

Licenses 119

You may convey a covered work in object code form under the terms of sections 4 and5 provided that you also convey the machine-readable Corresponding Source underthe terms of this License in one of these waysa Convey the object code in or embodied in a physical product (including a phys-

ical distribution medium) accompanied by the Corresponding Source fixed on adurable physical medium customarily used for software interchange

b Convey the object code in or embodied in a physical product (including a physi-cal distribution medium) accompanied by a written offer valid for at least threeyears and valid for as long as you offer spare parts or customer support for thatproduct model to give anyone who possesses the object code either (1) a copy ofthe Corresponding Source for all the software in the product that is covered by thisLicense on a durable physical medium customarily used for software interchangefor a price no more than your reasonable cost of physically performing this con-veying of source or (2) access to copy the Corresponding Source from a networkserver at no charge

c Convey individual copies of the object code with a copy of the written offer toprovide the Corresponding Source This alternative is allowed only occasionallyand noncommercially and only if you received the object code with such an offerin accord with subsection 6b

d Convey the object code by offering access from a designated place (gratis or fora charge) and offer equivalent access to the Corresponding Source in the sameway through the same place at no further charge You need not require recipientsto copy the Corresponding Source along with the object code If the place tocopy the object code is a network server the Corresponding Source may be ona different server (operated by you or a third party) that supports equivalentcopying facilities provided you maintain clear directions next to the object codesaying where to find the Corresponding Source Regardless of what server hoststhe Corresponding Source you remain obligated to ensure that it is available foras long as needed to satisfy these requirements

e Convey the object code using peer-to-peer transmission provided you inform otherpeers where the object code and Corresponding Source of the work are being offeredto the general public at no charge under subsection 6d

A separable portion of the object code whose source code is excluded from the Cor-responding Source as a System Library need not be included in conveying the objectcode workA ldquoUser Productrdquo is either (1) a ldquoconsumer productrdquo which means any tangible per-sonal property which is normally used for personal family or household purposes or(2) anything designed or sold for incorporation into a dwelling In determining whethera product is a consumer product doubtful cases shall be resolved in favor of coverageFor a particular product received by a particular user ldquonormally usedrdquo refers to atypical or common use of that class of product regardless of the status of the par-ticular user or of the way in which the particular user actually uses or expects or isexpected to use the product A product is a consumer product regardless of whetherthe product has substantial commercial industrial or non-consumer uses unless suchuses represent the only significant mode of use of the product

120 OpenSS7 SS7 Stack

ldquoInstallation Informationrdquo for a User Product means any methods procedures autho-rization keys or other information required to install and execute modified versions of acovered work in that User Product from a modified version of its Corresponding SourceThe information must suffice to ensure that the continued functioning of the modifiedobject code is in no case prevented or interfered with solely because modification hasbeen madeIf you convey an object code work under this section in or with or specifically foruse in a User Product and the conveying occurs as part of a transaction in whichthe right of possession and use of the User Product is transferred to the recipient inperpetuity or for a fixed term (regardless of how the transaction is characterized)the Corresponding Source conveyed under this section must be accompanied by theInstallation Information But this requirement does not apply if neither you nor anythird party retains the ability to install modified object code on the User Product (forexample the work has been installed in ROM)The requirement to provide Installation Information does not include a requirementto continue to provide support service warranty or updates for a work that has beenmodified or installed by the recipient or for the User Product in which it has beenmodified or installed Access to a network may be denied when the modification itselfmaterially and adversely affects the operation of the network or violates the rules andprotocols for communication across the networkCorresponding Source conveyed and Installation Information provided in accord withthis section must be in a format that is publicly documented (and with an implementa-tion available to the public in source code form) and must require no special passwordor key for unpacking reading or copying

7 Additional TermsldquoAdditional permissionsrdquo are terms that supplement the terms of this License by mak-ing exceptions from one or more of its conditions Additional permissions that areapplicable to the entire Program shall be treated as though they were included in thisLicense to the extent that they are valid under applicable law If additional permis-sions apply only to part of the Program that part may be used separately under thosepermissions but the entire Program remains governed by this License without regardto the additional permissionsWhen you convey a copy of a covered work you may at your option remove anyadditional permissions from that copy or from any part of it (Additional permissionsmay be written to require their own removal in certain cases when you modify thework) You may place additional permissions on material added by you to a coveredwork for which you have or can give appropriate copyright permissionNotwithstanding any other provision of this License for material you add to a coveredwork you may (if authorized by the copyright holders of that material) supplementthe terms of this License with termsa Disclaiming warranty or limiting liability differently from the terms of sections 15

and 16 of this License orb Requiring preservation of specified reasonable legal notices or author attributions

in that material or in the Appropriate Legal Notices displayed by works containingit or

Licenses 121

c Prohibiting misrepresentation of the origin of that material or requiring that mod-ified versions of such material be marked in reasonable ways as different from theoriginal version or

d Limiting the use for publicity purposes of names of licensors or authors of thematerial or

e Declining to grant rights under trademark law for use of some trade names trade-marks or service marks or

f Requiring indemnification of licensors and authors of that material by anyone whoconveys the material (or modified versions of it) with contractual assumptionsof liability to the recipient for any liability that these contractual assumptionsdirectly impose on those licensors and authors

All other non-permissive additional terms are considered ldquofurther restrictionsrdquo withinthe meaning of section 10 If the Program as you received it or any part of it con-tains a notice stating that it is governed by this License along with a term that is afurther restriction you may remove that term If a license document contains a furtherrestriction but permits relicensing or conveying under this License you may add to acovered work material governed by the terms of that license document provided thatthe further restriction does not survive such relicensing or conveying

If you add terms to a covered work in accord with this section you must place in therelevant source files a statement of the additional terms that apply to those files or anotice indicating where to find the applicable terms

Additional terms permissive or non-permissive may be stated in the form of a sep-arately written license or stated as exceptions the above requirements apply eitherway

8 Termination

You may not propagate or modify a covered work except as expressly provided un-der this License Any attempt otherwise to propagate or modify it is void and willautomatically terminate your rights under this License (including any patent licensesgranted under the third paragraph of section 11)

However if you cease all violation of this License then your license from a particularcopyright holder is reinstated (a) provisionally unless and until the copyright holderexplicitly and finally terminates your license and (b) permanently if the copyrightholder fails to notify you of the violation by some reasonable means prior to 60 daysafter the cessation

Moreover your license from a particular copyright holder is reinstated permanently ifthe copyright holder notifies you of the violation by some reasonable means this is thefirst time you have received notice of violation of this License (for any work) from thatcopyright holder and you cure the violation prior to 30 days after your receipt of thenotice

Termination of your rights under this section does not terminate the licenses of partieswho have received copies or rights from you under this License If your rights havebeen terminated and not permanently reinstated you do not qualify to receive newlicenses for the same material under section 10

122 OpenSS7 SS7 Stack

9 Acceptance Not Required for Having CopiesYou are not required to accept this License in order to receive or run a copy of theProgram Ancillary propagation of a covered work occurring solely as a consequence ofusing peer-to-peer transmission to receive a copy likewise does not require acceptanceHowever nothing other than this License grants you permission to propagate or modifyany covered work These actions infringe copyright if you do not accept this LicenseTherefore by modifying or propagating a covered work you indicate your acceptanceof this License to do so

10 Automatic Licensing of Downstream RecipientsEach time you convey a covered work the recipient automatically receives a licensefrom the original licensors to run modify and propagate that work subject to thisLicense You are not responsible for enforcing compliance by third parties with thisLicenseAn ldquoentity transactionrdquo is a transaction transferring control of an organization orsubstantially all assets of one or subdividing an organization or merging organizationsIf propagation of a covered work results from an entity transaction each party to thattransaction who receives a copy of the work also receives whatever licenses to the workthe partyrsquos predecessor in interest had or could give under the previous paragraph plusa right to possession of the Corresponding Source of the work from the predecessor ininterest if the predecessor has it or can get it with reasonable effortsYou may not impose any further restrictions on the exercise of the rights granted oraffirmed under this License For example you may not impose a license fee royalty orother charge for exercise of rights granted under this License and you may not initiatelitigation (including a cross-claim or counterclaim in a lawsuit) alleging that any patentclaim is infringed by making using selling offering for sale or importing the Programor any portion of it

11 PatentsA ldquocontributorrdquo is a copyright holder who authorizes use under this License of theProgram or a work on which the Program is based The work thus licensed is calledthe contributorrsquos ldquocontributor versionrdquoA contributorrsquos ldquoessential patent claimsrdquo are all patent claims owned or controlled bythe contributor whether already acquired or hereafter acquired that would be infringedby some manner permitted by this License of making using or selling its contributorversion but do not include claims that would be infringed only as a consequence offurther modification of the contributor version For purposes of this definition ldquocon-trolrdquo includes the right to grant patent sublicenses in a manner consistent with therequirements of this LicenseEach contributor grants you a non-exclusive worldwide royalty-free patent licenseunder the contributorrsquos essential patent claims to make use sell offer for sale importand otherwise run modify and propagate the contents of its contributor versionIn the following three paragraphs a ldquopatent licenserdquo is any express agreement or com-mitment however denominated not to enforce a patent (such as an express permissionto practice a patent or covenant not to sue for patent infringement) To ldquograntrdquo sucha patent license to a party means to make such an agreement or commitment not toenforce a patent against the party

Licenses 123

If you convey a covered work knowingly relying on a patent license and the Corre-sponding Source of the work is not available for anyone to copy free of charge and underthe terms of this License through a publicly available network server or other readilyaccessible means then you must either (1) cause the Corresponding Source to be soavailable or (2) arrange to deprive yourself of the benefit of the patent license for thisparticular work or (3) arrange in a manner consistent with the requirements of thisLicense to extend the patent license to downstream recipients ldquoKnowingly relyingrdquomeans you have actual knowledge that but for the patent license your conveying thecovered work in a country or your recipientrsquos use of the covered work in a countrywould infringe one or more identifiable patents in that country that you have reasonto believe are valid

If pursuant to or in connection with a single transaction or arrangement you conveyor propagate by procuring conveyance of a covered work and grant a patent licenseto some of the parties receiving the covered work authorizing them to use propagatemodify or convey a specific copy of the covered work then the patent license you grantis automatically extended to all recipients of the covered work and works based on it

A patent license is ldquodiscriminatoryrdquo if it does not include within the scope of its cover-age prohibits the exercise of or is conditioned on the non-exercise of one or more of therights that are specifically granted under this License You may not convey a coveredwork if you are a party to an arrangement with a third party that is in the business ofdistributing software under which you make payment to the third party based on theextent of your activity of conveying the work and under which the third party grantsto any of the parties who would receive the covered work from you a discriminatorypatent license (a) in connection with copies of the covered work conveyed by you (orcopies made from those copies) or (b) primarily for and in connection with specificproducts or compilations that contain the covered work unless you entered into thatarrangement or that patent license was granted prior to 28 March 2007

Nothing in this License shall be construed as excluding or limiting any implied license orother defenses to infringement that may otherwise be available to you under applicablepatent law

12 No Surrender of Othersrsquo Freedom

If conditions are imposed on you (whether by court order agreement or otherwise) thatcontradict the conditions of this License they do not excuse you from the conditionsof this License If you cannot convey a covered work so as to satisfy simultaneouslyyour obligations under this License and any other pertinent obligations then as aconsequence you may not convey it at all For example if you agree to terms thatobligate you to collect a royalty for further conveying from those to whom you conveythe Program the only way you could satisfy both those terms and this License wouldbe to refrain entirely from conveying the Program

13 Use with the GNU Affero General Public License

Notwithstanding any other provision of this License you have permission to link orcombine any covered work with a work licensed under version 3 of the GNU AfferoGeneral Public License into a single combined work and to convey the resulting workThe terms of this License will continue to apply to the part which is the covered work

124 OpenSS7 SS7 Stack

but the special requirements of the GNU Affero General Public License section 13concerning interaction through a network will apply to the combination as such

14 Revised Versions of this LicenseThe Free Software Foundation may publish revised andor new versions of the GNUGeneral Public License from time to time Such new versions will be similar in spiritto the present version but may differ in detail to address new problems or concernsEach version is given a distinguishing version number If the Program specifies thata certain numbered version of the GNU General Public License ldquoor any later versionrdquoapplies to it you have the option of following the terms and conditions either of thatnumbered version or of any later version published by the Free Software FoundationIf the Program does not specify a version number of the GNU General Public Licenseyou may choose any version ever published by the Free Software FoundationIf the Program specifies that a proxy can decide which future versions of the GNUGeneral Public License can be used that proxyrsquos public statement of acceptance of aversion permanently authorizes you to choose that version for the ProgramLater license versions may give you additional or different permissions However noadditional obligations are imposed on any author or copyright holder as a result of yourchoosing to follow a later version

15 Disclaimer of WarrantyTHERE IS NO WARRANTY FOR THE PROGRAM TO THE EXTENT PER-MITTED BY APPLICABLE LAW EXCEPT WHEN OTHERWISE STATED INWRITING THE COPYRIGHT HOLDERS ANDOR OTHER PARTIES PROVIDETHE PROGRAM ldquoAS ISrdquo WITHOUT WARRANTY OF ANY KIND EITHER EX-PRESSED OR IMPLIED INCLUDING BUT NOT LIMITED TO THE IMPLIEDWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULARPURPOSE THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCEOF THE PROGRAM IS WITH YOU SHOULD THE PROGRAM PROVE DEFEC-TIVE YOU ASSUME THE COST OF ALL NECESSARY SERVICING REPAIR ORCORRECTION

16 Limitation of LiabilityIN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO INWRITING WILL ANY COPYRIGHT HOLDER OR ANY OTHER PARTY WHOMODIFIES ANDOR CONVEYS THE PROGRAM AS PERMITTED ABOVE BELIABLE TO YOU FOR DAMAGES INCLUDING ANY GENERAL SPECIAL IN-CIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE ORINABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TOLOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUS-TAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAMTO OPERATE WITH ANY OTHER PROGRAMS) EVEN IF SUCH HOLDER OROTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAM-AGES

17 Interpretation of Sections 15 and 16If the disclaimer of warranty and limitation of liability provided above cannot be givenlocal legal effect according to their terms reviewing courts shall apply local law thatmost closely approximates an absolute waiver of all civil liability in connection with

Licenses 125

the Program unless a warranty or assumption of liability accompanies a copy of theProgram in return for a fee

END OF TERMS AND CONDITIONS

126 OpenSS7 SS7 Stack

How to Apply These Terms to Your New Programs

If you develop a new program and you want it to be of the greatest possible use to the publicthe best way to achieve this is to make it free software which everyone can redistribute andchange under these termsTo do so attach the following notices to the program It is safest to attach them to thestart of each source file to most effectively state the exclusion of warranty and each fileshould have at least the ldquocopyrightrdquo line and a pointer to where the full notice is found

one line to give the programrsquos name and a brief idea of what it does

Copyright (C) year name of author

This program is free software you can redistribute it andor modify

it under the terms of the GNU General Public License as published by

the Free Software Foundation either version 3 of the License or (at

your option) any later version

This program is distributed in the hope that it will be useful but

WITHOUT ANY WARRANTY without even the implied warranty of

MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE See the GNU

General Public License for more details

You should have received a copy of the GNU General Public License

along with this program If not see httpwwwgnuorglicenses

Also add information on how to contact you by electronic and paper mailIf the program does terminal interaction make it output a short notice like this when itstarts in an interactive mode

program Copyright (C) year name of author

This program comes with ABSOLUTELY NO WARRANTY for details type lsquoshow wrsquo

This is free software and you are welcome to redistribute it

under certain conditions type lsquoshow crsquo for details

The hypothetical commands lsquoshow wrsquo and lsquoshow crsquo should show the appropriate parts of theGeneral Public License Of course your programrsquos commands might be different for a GUIinterface you would use an ldquoabout boxrdquoYou should also get your employer (if you work as a programmer) or school if any to signa ldquocopyright disclaimerrdquo for the program if necessary For more information on this andhow to apply and follow the GNU GPL see httpwwwgnuorglicensesThe GNU General Public License does not permit incorporating your program into propri-etary programs If your program is a subroutine library you may consider it more usefulto permit linking proprietary applications with the library If this is what you want to douse the GNU Lesser General Public License instead of this License But first please readhttpwwwgnuorgphilosophywhy-not-lgplhtml

Licenses 127

GNU Lesser General Public License

GNU LESSER GENERAL PUBLIC LICENSEVersion 3 29 June 2007

Copyright ccopy 2007 Free Software Foundation Inc httpfsforg

Everyone is permitted to copy and distribute verbatim copies of thislicense document but changing it is not allowed

Terms and Conditions

This version of the GNU Lesser General Public License incorporates the terms and con-ditions of version 3 of the GNU General Public License supplemented by the additionalpermissions listed below0 Additional Definitions

As used herein ldquothis Licenserdquo refers to version 3 of the GNU Lesser General PublicLicense and the ldquoGNU GPLrdquo refers to version 3 of the GNU General Public LicenseldquoThe Libraryrdquo refers to a covered work governed by this License other than an Appli-cation or a Combined Work as defined belowAn ldquoApplicationrdquo is any work that makes use of an interface provided by the Librarybut which is not otherwise based on the Library Defining a subclass of a class definedby the Library is deemed a mode of using an interface provided by the LibraryA ldquoCombined Workrdquo is a work produced by combining or linking an Application withthe Library The particular version of the Library with which the Combined Work wasmade is also called the ldquoLinked VersionrdquoThe ldquoMinimal Corresponding Sourcerdquo for a Combined Work means the CorrespondingSource for the Combined Work excluding any source code for portions of the CombinedWork that considered in isolation are based on the Application and not on the LinkedVersionThe ldquoCorresponding Application Coderdquo for a Combined Work means the object codeandor source code for the Application including any data and utility programs neededfor reproducing the Combined Work from the Application but excluding the SystemLibraries of the Combined Work

1 Exception to Section 3 of the GNU GPLYou may convey a covered work under sections 3 and 4 of this License without beingbound by section 3 of the GNU GPL

2 Conveying Modified VersionsIf you modify a copy of the Library and in your modifications a facility refers to afunction or data to be supplied by an Application that uses the facility (other than asan argument passed when the facility is invoked) then you may convey a copy of themodified versiona under this License provided that you make a good faith effort to ensure that in

the event an Application does not supply the function or data the facility stilloperates and performs whatever part of its purpose remains meaningful or

128 OpenSS7 SS7 Stack

b under the GNU GPL with none of the additional permissions of this Licenseapplicable to that copy

3 Object Code Incorporating Material from Library Header FilesThe object code form of an Application may incorporate material from a header file thatis part of the Library You may convey such object code under terms of your choiceprovided that if the incorporated material is not limited to numerical parameters datastructure layouts and accessors or small macros inline functions and templates (tenor fewer lines in length) you do both of the followinga Give prominent notice with each copy of the object code that the Library is used

in it and that the Library and its use are covered by this Licenseb Accompany the object code with a copy of the GNU GPL and this license docu-

ment4 Combined Works

You may convey a Combined Work under terms of your choice that taken togethereffectively do not restrict modification of the portions of the Library contained in theCombined Work and reverse engineering for debugging such modifications if you alsodo each of the followinga Give prominent notice with each copy of the Combined Work that the Library is

used in it and that the Library and its use are covered by this Licenseb Accompany the Combined Work with a copy of the GNU GPL and this license

documentc For a Combined Work that displays copyright notices during execution include

the copyright notice for the Library among these notices as well as a referencedirecting the user to the copies of the GNU GPL and this license document

d Do one of the following0 Convey the Minimal Corresponding Source under the terms of this License

and the Corresponding Application Code in a form suitable for and underterms that permit the user to recombine or relink the Application with a mod-ified version of the Linked Version to produce a modified Combined Work inthe manner specified by section 6 of the GNU GPL for conveying Correspond-ing Source

1 Use a suitable shared library mechanism for linking with the Library Asuitable mechanism is one that (a) uses at run time a copy of the Libraryalready present on the userrsquos computer system and (b) will operate properlywith a modified version of the Library that is interface-compatible with theLinked Version

e Provide Installation Information but only if you would otherwise be required toprovide such information under section 6 of the GNU GPL and only to the extentthat such information is necessary to install and execute a modified version ofthe Combined Work produced by recombining or relinking the Application witha modified version of the Linked Version (If you use option 4d0 the InstallationInformation must accompany the Minimal Corresponding Source and Correspond-ing Application Code If you use option 4d1 you must provide the InstallationInformation in the manner specified by section 6 of the GNU GPL for conveyingCorresponding Source)

Licenses 129

5 Combined LibrariesYou may place library facilities that are a work based on the Library side by side ina single library together with other library facilities that are not Applications and arenot covered by this License and convey such a combined library under terms of yourchoice if you do both of the followinga Accompany the combined library with a copy of the same work based on the

Library uncombined with any other library facilities conveyed under the terms ofthis License

b Give prominent notice with the combined library that part of it is a work basedon the Library and explaining where to find the accompanying uncombined formof the same work

6 Revised Versions of the GNU Lesser General Public LicenseThe Free Software Foundation may publish revised andor new versions of the GNULesser General Public License from time to time Such new versions will be similarin spirit to the present version but may differ in detail to address new problems orconcernsEach version is given a distinguishing version number If the Library as you receivedit specifies that a certain numbered version of the GNU Lesser General Public Licenseldquoor any later versionrdquo applies to it you have the option of following the terms andconditions either of that published version or of any later version published by theFree Software Foundation If the Library as you received it does not specify a versionnumber of the GNU Lesser General Public License you may choose any version of theGNU Lesser General Public License ever published by the Free Software FoundationIf the Library as you received it specifies that a proxy can decide whether future versionsof the GNU Lesser General Public License shall apply that proxyrsquos public statementof acceptance of any version is permanent authorization for you to choose that versionfor the Library

END OF TERMS AND CONDITIONS

130 OpenSS7 SS7 Stack

GNU Free Documentation License

GNU FREE DOCUMENTATION LICENSEVersion 11 March 2000

Copyright ccopy 2000 Free Software Foundation Inc59 Temple Place Suite 330 Boston MA 02111-1307 USA

Everyone is permitted to copy and distribute verbatim copiesof this license document but changing it is not allowed

Preamble

The purpose of this License is to make a manual textbook or other written document freein the sense of freedom to assure everyone the effective freedom to copy and redistributeit with or without modifying it either commercially or noncommercially Secondarily thisLicense preserves for the author and publisher a way to get credit for their work while notbeing considered responsible for modifications made by others

This License is a kind of ldquocopyleftrdquo which means that derivative works of the documentmust themselves be free in the same sense It complements the GNU General Public Licensewhich is a copyleft license designed for free software

We have designed this License in order to use it for manuals for free software because freesoftware needs free documentation a free program should come with manuals providing thesame freedoms that the software does But this License is not limited to software manualsit can be used for any textual work regardless of subject matter or whether it is publishedas a printed book We recommend this License principally for works whose purpose isinstruction or reference

Terms and Conditions for Copying Distribution and Modification

1 APPLICABILITY AND DEFINITIONS

This License applies to any manual or other work that contains a notice placed bythe copyright holder saying it can be distributed under the terms of this License TheldquoDocumentrdquo below refers to any such manual or work Any member of the public isa licensee and is addressed as ldquoyourdquo

A ldquoModified Versionrdquo of the Document means any work containing the Document ora portion of it either copied verbatim or with modifications andor translated intoanother language

A ldquoSecondary Sectionrdquo is a named appendix or a front-matter section of the Documentthat deals exclusively with the relationship of the publishers or authors of the Documentto the Documentrsquos overall subject (or to related matters) and contains nothing thatcould fall directly within that overall subject (For example if the Document is in part atextbook of mathematics a Secondary Section may not explain any mathematics) Therelationship could be a matter of historical connection with the subject or with relatedmatters or of legal commercial philosophical ethical or political position regardingthem

Licenses 131

The ldquoInvariant Sectionsrdquo are certain Secondary Sections whose titles are designated asbeing those of Invariant Sections in the notice that says that the Document is releasedunder this LicenseThe ldquoCover Textsrdquo are certain short passages of text that are listed as Front-CoverTexts or Back-Cover Texts in the notice that says that the Document is released underthis LicenseA ldquoTransparentrdquo copy of the Document means a machine-readable copy representedin a format whose specification is available to the general public whose contents canbe viewed and edited directly and straightforwardly with generic text editors or (forimages composed of pixels) generic paint programs or (for drawings) some widely avail-able drawing editor and that is suitable for input to text formatters or for automatictranslation to a variety of formats suitable for input to text formatters A copy madein an otherwise Transparent file format whose markup has been designed to thwart ordiscourage subsequent modification by readers is not Transparent A copy that is notldquoTransparentrdquo is called ldquoOpaquerdquoExamples of suitable formats for Transparent copies include plain ascii withoutmarkup Texinfo input format LaTEX input format SGML or XML using apublicly available DTD and standard-conforming simple HTML designed for humanmodification Opaque formats include PostScript PDF proprietary formats that canbe read and edited only by proprietary word processors SGML or XML for which theDTD andor processing tools are not generally available and the machine-generatedHTML produced by some word processors for output purposes onlyThe ldquoTitle Pagerdquo means for a printed book the title page itself plus such followingpages as are needed to hold legibly the material this License requires to appear in thetitle page For works in formats which do not have any title page as such ldquoTitle Pagerdquomeans the text near the most prominent appearance of the workrsquos title preceding thebeginning of the body of the text

2 VERBATIM COPYINGYou may copy and distribute the Document in any medium either commercially ornoncommercially provided that this License the copyright notices and the licensenotice saying this License applies to the Document are reproduced in all copies andthat you add no other conditions whatsoever to those of this License You may not usetechnical measures to obstruct or control the reading or further copying of the copiesyou make or distribute However you may accept compensation in exchange for copiesIf you distribute a large enough number of copies you must also follow the conditionsin section 3You may also lend copies under the same conditions stated above and you may publiclydisplay copies

3 COPYING IN QUANTITYIf you publish printed copies of the Document numbering more than 100 and theDocumentrsquos license notice requires Cover Texts you must enclose the copies in coversthat carry clearly and legibly all these Cover Texts Front-Cover Texts on the frontcover and Back-Cover Texts on the back cover Both covers must also clearly andlegibly identify you as the publisher of these copies The front cover must present thefull title with all words of the title equally prominent and visible You may add other

132 OpenSS7 SS7 Stack

material on the covers in addition Copying with changes limited to the covers as longas they preserve the title of the Document and satisfy these conditions can be treatedas verbatim copying in other respectsIf the required texts for either cover are too voluminous to fit legibly you should putthe first ones listed (as many as fit reasonably) on the actual cover and continue therest onto adjacent pagesIf you publish or distribute Opaque copies of the Document numbering more than 100you must either include a machine-readable Transparent copy along with each Opaquecopy or state in or with each Opaque copy a publicly-accessible computer-networklocation containing a complete Transparent copy of the Document free of added ma-terial which the general network-using public has access to download anonymously atno charge using public-standard network protocols If you use the latter option youmust take reasonably prudent steps when you begin distribution of Opaque copiesin quantity to ensure that this Transparent copy will remain thus accessible at thestated location until at least one year after the last time you distribute an Opaquecopy (directly or through your agents or retailers) of that edition to the publicIt is requested but not required that you contact the authors of the Document wellbefore redistributing any large number of copies to give them a chance to provide youwith an updated version of the Document

4 MODIFICATIONSYou may copy and distribute a Modified Version of the Document under the conditionsof sections 2 and 3 above provided that you release the Modified Version under preciselythis License with the Modified Version filling the role of the Document thus licensingdistribution and modification of the Modified Version to whoever possesses a copy ofit In addition you must do these things in the Modified VersionA Use in the Title Page (and on the covers if any) a title distinct from that of the

Document and from those of previous versions (which should if there were anybe listed in the History section of the Document) You may use the same title asa previous version if the original publisher of that version gives permission

B List on the Title Page as authors one or more persons or entities responsible forauthorship of the modifications in the Modified Version together with at least fiveof the principal authors of the Document (all of its principal authors if it has lessthan five)

C State on the Title page the name of the publisher of the Modified Version as thepublisher

D Preserve all the copyright notices of the DocumentE Add an appropriate copyright notice for your modifications adjacent to the other

copyright noticesF Include immediately after the copyright notices a license notice giving the public

permission to use the Modified Version under the terms of this License in the formshown in the Addendum below

G Preserve in that license notice the full lists of Invariant Sections and required CoverTexts given in the Documentrsquos license notice

H Include an unaltered copy of this License

Licenses 133

I Preserve the section entitled ldquoHistoryrdquo and its title and add to it an item statingat least the title year new authors and publisher of the Modified Version asgiven on the Title Page If there is no section entitled ldquoHistoryrdquo in the Documentcreate one stating the title year authors and publisher of the Document as givenon its Title Page then add an item describing the Modified Version as stated inthe previous sentence

J Preserve the network location if any given in the Document for public access toa Transparent copy of the Document and likewise the network locations given inthe Document for previous versions it was based on These may be placed in theldquoHistoryrdquo section You may omit a network location for a work that was publishedat least four years before the Document itself or if the original publisher of theversion it refers to gives permission

K In any section entitled ldquoAcknowledgmentsrdquo or ldquoDedicationsrdquo preserve the sec-tionrsquos title and preserve in the section all the substance and tone of each of thecontributor acknowledgments andor dedications given therein

L Preserve all the Invariant Sections of the Document unaltered in their text andin their titles Section numbers or the equivalent are not considered part of thesection titles

M Delete any section entitled ldquoEndorsementsrdquo Such a section may not be includedin the Modified Version

N Do not retitle any existing section as ldquoEndorsementsrdquo or to conflict in title withany Invariant Section

If the Modified Version includes new front-matter sections or appendices that qualifyas Secondary Sections and contain no material copied from the Document you may atyour option designate some or all of these sections as invariant To do this add theirtitles to the list of Invariant Sections in the Modified Versionrsquos license notice Thesetitles must be distinct from any other section titlesYou may add a section entitled ldquoEndorsementsrdquo provided it contains nothing butendorsements of your Modified Version by various partiesmdashfor example statements ofpeer review or that the text has been approved by an organization as the authoritativedefinition of a standardYou may add a passage of up to five words as a Front-Cover Text and a passage of upto 25 words as a Back-Cover Text to the end of the list of Cover Texts in the ModifiedVersion Only one passage of Front-Cover Text and one of Back-Cover Text may beadded by (or through arrangements made by) any one entity If the Document alreadyincludes a cover text for the same cover previously added by you or by arrangementmade by the same entity you are acting on behalf of you may not add another butyou may replace the old one on explicit permission from the previous publisher thatadded the old oneThe author(s) and publisher(s) of the Document do not by this License give permissionto use their names for publicity for or to assert or imply endorsement of any ModifiedVersion

5 COMBINING DOCUMENTSYou may combine the Document with other documents released under this Licenseunder the terms defined in section 4 above for modified versions provided that you

134 OpenSS7 SS7 Stack

include in the combination all of the Invariant Sections of all of the original documentsunmodified and list them all as Invariant Sections of your combined work in its licensenoticeThe combined work need only contain one copy of this License and multiple identicalInvariant Sections may be replaced with a single copy If there are multiple InvariantSections with the same name but different contents make the title of each such sectionunique by adding at the end of it in parentheses the name of the original author orpublisher of that section if known or else a unique number Make the same adjustmentto the section titles in the list of Invariant Sections in the license notice of the combinedworkIn the combination you must combine any sections entitled ldquoHistoryrdquo in the variousoriginal documents forming one section entitled ldquoHistoryrdquo likewise combine any sec-tions entitled ldquoAcknowledgmentsrdquo and any sections entitled ldquoDedicationsrdquo You mustdelete all sections entitled ldquoEndorsementsrdquo

6 COLLECTIONS OF DOCUMENTSYou may make a collection consisting of the Document and other documents releasedunder this License and replace the individual copies of this License in the variousdocuments with a single copy that is included in the collection provided that youfollow the rules of this License for verbatim copying of each of the documents in allother respectsYou may extract a single document from such a collection and distribute it individu-ally under this License provided you insert a copy of this License into the extracteddocument and follow this License in all other respects regarding verbatim copying ofthat document

7 AGGREGATION WITH INDEPENDENT WORKSA compilation of the Document or its derivatives with other separate and independentdocuments or works in or on a volume of a storage or distribution medium does notas a whole count as a Modified Version of the Document provided no compilationcopyright is claimed for the compilation Such a compilation is called an ldquoaggregaterdquoand this License does not apply to the other self-contained works thus compiled withthe Document on account of their being thus compiled if they are not themselvesderivative works of the DocumentIf the Cover Text requirement of section 3 is applicable to these copies of the Documentthen if the Document is less than one quarter of the entire aggregate the DocumentrsquosCover Texts may be placed on covers that surround only the Document within theaggregate Otherwise they must appear on covers around the whole aggregate

8 TRANSLATIONTranslation is considered a kind of modification so you may distribute translationsof the Document under the terms of section 4 Replacing Invariant Sections withtranslations requires special permission from their copyright holders but you mayinclude translations of some or all Invariant Sections in addition to the original versionsof these Invariant Sections You may include a translation of this License provided thatyou also include the original English version of this License In case of a disagreementbetween the translation and the original English version of this License the originalEnglish version will prevail

Licenses 135

9 TERMINATIONYou may not copy modify sublicense or distribute the Document except as expresslyprovided for under this License Any other attempt to copy modify sublicense ordistribute the Document is void and will automatically terminate your rights underthis License However parties who have received copies or rights from you under thisLicense will not have their licenses terminated so long as such parties remain in fullcompliance

10 FUTURE REVISIONS OF THIS LICENSEThe Free Software Foundation may publish new revised versions of the GNU FreeDocumentation License from time to time Such new versions will be similar in spiritto the present version but may differ in detail to address new problems or concernsSee httpwwwgnuorgcopyleftEach version of the License is given a distinguishing version number If the Documentspecifies that a particular numbered version of this License ldquoor any later versionrdquoapplies to it you have the option of following the terms and conditions either of thatspecified version or of any later version that has been published (not as a draft) bythe Free Software Foundation If the Document does not specify a version number ofthis License you may choose any version ever published (not as a draft) by the FreeSoftware Foundation

END OF TERMS AND CONDITIONS

136 OpenSS7 SS7 Stack

How to use this License for your documents

To use this License in a document you have written include a copy of the License in thedocument and put the following copyright and license notices just after the title page

Copyright (C) year your name

Permission is granted to copy distribute andor modify this document

under the terms of the GNU Free Documentation License Version 11

or any later version published by the Free Software Foundation

with the Invariant Sections being list their titles with the

Front-Cover Texts being list and with the Back-Cover Texts being list

A copy of the license is included in the section entitled lsquolsquoGNU

Free Documentation Licensersquorsquo

If you have no Invariant Sections write ldquowith no Invariant Sectionsrdquo instead of saying whichones are invariant If you have no Front-Cover Texts write ldquono Front-Cover Textsrdquo insteadof ldquoFront-Cover Texts being listrdquo likewise for Back-Cover TextsIf your document contains nontrivial examples of program code we recommend releasingthese examples in parallel under your choice of free software license such as the GNUGeneral Public License to permit their use in free software

Indices 137

Indices

Index of Concepts

Aapplications 19apt 48 51Architectures 36authors 5

Bbinary debs 54 63 80binary rpms 51 62 79 80bug reports automatic generation 99bug reports generating 98bug reports stand along generation 100bugs 43bugs history 44bugs known 44bugs reporting 97building 77building source dscs 78building source srpm 77building tar ball 78

Ccheckout cvs 59compatibility 34configuration 61configure environment variables 74configure options 67configuring binary debs 63configuring binary rpms 62configuring source dscs 67configuring source srpm 63configuring tar ball 67conformance 31contributors 5conventions 16credits 4cvs 59

Ddefinitions 16device 28device drivers 28downloading 49downloading apt 51downloading binary rpms 51downloading debian debs 54downloading debian dscs 57downloading source srpm 57

downloading tar ball 58downloading yum 49drivers 28

Ggenerating bug reports 98 100generating bug reports automatically 99generating problem reports 98generating problem reports automatically 99generating problem reports stand alone 100GNULinux Distributions 34

Hhistory 46history bugs 44

Iindices 137installation 47installing 79installing binary debs 80installing binary rpms 79installing tar ball 80introduction 15

KKernel 36known bugs 44known problems 101

Llicense AGPL 104license FDL 130license GNU Affero General Public License 104license GNU Free Documentation License 130license GNU General Public License 115license GPL 115license Lesser General Public License 127license LGPL 127licenses 103licensing 1Linux Fast-STREAMS 37Linux STREAMS 37loading 81

138 OpenSS7 SS7 Stack

Mmaintainer 5manual abstract 1manual audience 1manual disclaimer 4manual intent 1manual notice 1manual objective 1manual revisions 2maturity 42

Oobjective 17organization 15overview 15

Ppost-installation checks 96pre-installation checks 93prerequisites 33problem reports 97problems known 101

Qquick start guide 9

Rreference 19release notes 37release strss7-09a-1 42release strss7-09a-2 41release strss7-09a-3 41release strss7-09a-4 41release strss7-09a5 40release strss7-09a6 39release strss7-09a7 38release strss7-09a8 37releases 33removing 80removing binary debs 80removing binary rpms 80removing source dscs 81removing source srpm 81

removing tar ball 81reporting bugs 97repositories 47repositories apt 48repositories yum 47

Sschedule 45source dscs 57 67 78 81source rpms 57 63 77 81sponsors 4ss7 protocol stack 20strss7-dev-09a8-172i686rpm 62strss7-devel-09a8-172i686rpm 62strss7-doc-09a8-172i686rpm 62strss7-LiS-core-2420-287-09a8-172i686rpm

62strss7-LiS-info-2420-287-09a8-172i686rpm

62strss7-LiS-lib-09a8-172i686rpm 62strss7-LiS-util-09a8-172i686rpm 63strss7-source-09a8-172i686rpm 63strss7-streams-core-2420-287-09a8-172i686-

rpm 62strss7-streams-info-2420-287-09a8-172i686-

rpm 62strss7-streams-lib-09a8-172i686rpm 62strss7-streams-util-09a8-172i686rpm 63

Ttar ball 58 67 78 80 81test suites 93test suites running 97troubleshooting 93

Wweb resources 6

Xx400p t400p t100p e400p e100p te405p te410p 29

Yyum 47 49

Indices 139

Index of Data Types

Aapt-get(8) 38

Y

yum(8) 38

140 OpenSS7 SS7 Stack

Index of Functions and Macros

(Index is nonexistent)

Indices 141

Index of Variables and Constants

AAUTOM4TE 77AUTOTEST 77

BBZIP2 75BZIP2_CMD 75

CCHKCONFIG 75

DDEB_BUILD_ARCH 75DEB_BUILD_GNU_CPU 76DEB_BUILD_GNU_SYSTEM 76DEB_BUILD_GNU_TYPE 76DEB_HOST_ARCH 76DEB_HOST_GNU_CPU 76DEB_HOST_GNU_SYSTEM 76DEB_HOST_GNU_TYPE 76DEPMOD 76DESTDIR 76DPKG 75DPKG_BUILDPACKAGE 75DPKG_SOURCE 75

GGENKSYMS 77GNUPGHOME 74GNUPGUSER 74GPG 74GPGPASSWD 74GZIP 75GZIP_CMD 75

IIRQF_DISABLED 37IRQF_SHARED 37

KKGENKSYMS 77

LLDCONFIG 76LSMOD 76LSOF 76

MMAKEWHATIS 75MODPOST_CACHE 77MODPROBE 76MODULE_VERSION 38

NNM 77

OOBJDUMP 77

PPACKAGE_KVERSION 64PIC 75

RREFER 74RPM 75RPMBUILD 75

SSA_INTERRUPT 37SA_SHIRQ 37SOELIM 74

TTBL 74

142 OpenSS7 SS7 Stack

Index of Files and Programs

libmodules2420-287streams 82

Indices 143

Index of Configuration Options

332bit-libs 68

Aarch 69autotest 68

Bbase-major 74

Cchecks 65 68compress-manpages 68cooked-manpages 65 71

Ddeb-epoch 72deb-release 72deb-topdir 72devel 66 69devfs 70docs 66 69

Ggpg-home 71gpg-user 70

Iindep 69initscripts 68

Kk-archdir 73k-build 72k-config 73

k-debug 65 70k-inline 66 70k-linkage 72k-machdir 73k-modules 72k-modversions 66 70k-optimize 65 73k-release 64 72k-safe 66 70k-sysmap 73k-test 65 70

Llfs 67 74lis 67 73

Mmodules 67 69

Ppkg-distdir 71pkg-epoch 71pkg-release 71public 65 68

Rrpm-epoch 71rpm-extra 71rpm-release 71rpm-topdir 71

Sstrconf-master 74

Ttools 66 69

144 OpenSS7 SS7 Stack

Index of Makefile Targets

Aall 82 83

Ccheck 83check-clean 86checklog 88clean 85compilelog 88csig 92

Ddebs 91dist 85distlog 88distcheck 85distchecklog 88distclean 85doxy 92dsc 91

Fforced-release 87forced-release-sign 87

Iinstall 82 83install-mans 86install-strip 82 83installlog 88installcheck 84installchecklog 88

Mmaintainer-clean 86

mans 86mostlyclean 85

Ppr 89 99

Rrebuild 91rebuildlog 88release 87release-archives 89release-clean 87release-clean-archives 90release-sign 87release-sign-archives 90release-signlog 89releaselog 88remove 84removelog 88resign 91resignlog 88retest 84rpms 90

Ssend-pr 89sign 90sigs 91srpm 90srpm-sign 90srpmlog 88

Uuninstall 84uninstall-mans 86uninstalllog 88

Indices 145

Index of Authors

Bidulock Brian 5

146 OpenSS7 SS7 Stack

Index of Manual Pages Referenced

Aapt(8) 9 47 51autoconf(1) 9 52 55 58 60 61 67 79 84autom4te(1) 77automake(1) 60 65 66 67 69 70 80 81 83

84 85 86 87 88autoreconf(1) 83

Bbzip2(1) 75

Cchkconfig(8) 75cvs(1) 9 59

Ddepmod(8) 76devfsd(1) 66devfsd(8) 70doxygen(1) 92dpkg(1) 47 49 58 61 69 71 75 84dpkg(8) 80 81dpkg-buildpackage(1) 75dpkg-source(1) 75

Eethereal(1) 46

Ggcc(1) 11genksyms(8) 60 77gettext(1) 67git(1) 9gpg(1) 70grefer(1) 60 65 71groff(1) 60 65 71gzip(1) 75

Iinit_install(8) 75init_remove(8) 75

Lldconfig(8) 76libtool(1) 67lsmod(8) 76lsof(1) 76

Mmake(1) 61 68makewhatis(8) 75modpost(1) 77modprobe(8) 76

Nnm(1) 77

Oobjdump(1) 77

Ppcap(3) 46pic(1) 65 71 75

Rrefer(1) 65 71 74rpm(1) 47 49 51 58 61 69 71 75 77 79 80

84 87 90rpm(8) 63 79rpmbuild(1) 64 75

Ssoelim(1) 65 71 74STREAMS(9) 1

Ttar(1) 58 85tbl(1) 65 71 74tee(1) 87texinfo(1) 66 69

Wwget(1) 47 58wireshark(1) 46

Yyast(8) 47yum(8) 9 47 49 51

Zzypper(8) 47 49

  • Preface
    • Notice
    • Abstract
      • Objective
      • Intent
      • Audience
        • Revisions
          • Version Control
          • ISO 9000 Compliance
            • Disclaimer
              • US Government Restricted Rights
                • Acknowledgements
                  • Sponsors
                  • Contributors
                    • Authors
                    • Maintainer
                    • Web Resources
                      • Quick Start Guide
                        • OpenSS7 SS7 Stack
                          • Release
                          • Prerequisites
                          • Installation
                          • Brief Installation Instructions
                          • Detailed Installation Instructions
                              • Introduction
                                • Overview
                                • Organization of this Manual
                                • Conventions and Definitions
                                  • Objective
                                  • Reference
                                    • Applications
                                    • SS7 Protocol Stack
                                      • Signalling Data Link (SDL)
                                      • Signalling Data Terminal (SDT)
                                      • Signalling Link (SL)
                                      • Message Transfer Part (MTP)
                                      • Signalling Connection Control Part (SCCP)
                                      • Transaction Capabilities Application Part (TCAP)
                                      • Base Station System Application Part (BSSAP)
                                        • Device Drivers
                                          • Digium Drivers
                                          • SeaLevel ACB56 Drivers
                                              • Conformance
                                              • Releases
                                                • Prerequisites
                                                • Compatibility
                                                  • GNULinux Distributions
                                                  • Kernel
                                                  • Architectures
                                                  • Linux STREAMS
                                                  • Linux Fast-STREAMS
                                                    • Release Notes
                                                      • Major changes for release strss7-09a8
                                                      • Major changes for release strss7-09a7
                                                      • Major changes for release strss7-09a6
                                                      • Major changes for release strss7-09a5
                                                      • Major changes for release strss7-09a-4
                                                      • Major changes for release strss7-09a-3
                                                      • Major changes for release strss7-09a-2
                                                      • Initial release strss7-09a-1
                                                        • Maturity
                                                          • Pre-Alpha Releases
                                                          • Alpha Releases
                                                          • Beta Releases
                                                          • Gamma Releases
                                                          • Production Releases
                                                          • Unstable Releases
                                                            • Bugs
                                                              • Defect Notices
                                                              • Known Defects
                                                              • Defect History
                                                                • Schedule
                                                                • History
                                                                  • Installation
                                                                    • Repositories
                                                                      • Repositories for YUM
                                                                      • Repositories for APT
                                                                        • Downloading
                                                                          • Downloading with YUM
                                                                          • Downloading with APT
                                                                          • Downloading the Binary RPM
                                                                          • Downloading the Debian DEB
                                                                          • Downloading the Source RPM
                                                                          • Downloading the Debian DSC
                                                                          • Downloading the Tar Ball
                                                                          • Downloading from CVS
                                                                            • Configuration
                                                                              • Configuring the Binary RPM
                                                                              • Configuring the Debian DEB
                                                                              • Configuring the Source RPM
                                                                              • Configuring the Debian DSC
                                                                              • Configuring the Tar Ball
                                                                                • Configure Options
                                                                                • Environment Variables
                                                                                • Build
                                                                                    • Building
                                                                                      • Building from the Source RPM
                                                                                      • Building from the Debian DSC
                                                                                      • Building from the Tar Ball
                                                                                        • Native Build
                                                                                        • Cross-Build
                                                                                            • Installing
                                                                                              • Installing the Binary RPM
                                                                                              • Installing the Debian DEB
                                                                                              • Installing the Tar Ball
                                                                                                • Removing
                                                                                                  • Removing the Binary RPM
                                                                                                  • Removing the Debian DEB
                                                                                                  • Removing the Source RPM
                                                                                                  • Removing the Debian DSC
                                                                                                  • Removing the Tar Ball
                                                                                                    • Loading
                                                                                                      • Normal Module Loading
                                                                                                        • Linux Fast-STREAMS Module Loading
                                                                                                        • Linux STREAMS Module Loading
                                                                                                            • Maintenance
                                                                                                              • Makefile Targets
                                                                                                                • User Targets
                                                                                                                • Maintainer Targets
                                                                                                                • Clean Targets
                                                                                                                • Manual Page Targets
                                                                                                                • Release Targets
                                                                                                                • Logging Targets
                                                                                                                • Problem Report Targets
                                                                                                                • Release Archive Targets
                                                                                                                • RPM Build Targets
                                                                                                                • Debian Build Targets
                                                                                                                • Documentation Targets
                                                                                                                  • Troubleshooting
                                                                                                                    • Test Suites
                                                                                                                      • Pre-installation Checks
                                                                                                                        • Pre-Installation System Checks
                                                                                                                        • Pre-Installation Maintenance Checks
                                                                                                                        • Specific Pre-Installation Checks
                                                                                                                          • Post-installation Checks
                                                                                                                            • Running Test Suites
                                                                                                                                • Problem Reports
                                                                                                                                  • Problem Report Guidelines
                                                                                                                                  • Generating Problem Reports
                                                                                                                                  • Automatic Problem Reports
                                                                                                                                  • Stand Alone Problem Reports
                                                                                                                                    • Known Problems
                                                                                                                                      • Licenses
                                                                                                                                        • GNU Affero General Public License
                                                                                                                                          • Preamble
                                                                                                                                          • How to Apply These Terms to Your New Programs
                                                                                                                                            • GNU General Public License
                                                                                                                                              • Preamble
                                                                                                                                              • How to Apply These Terms to Your New Programs
                                                                                                                                                • GNU Lesser General Public License
                                                                                                                                                  • Terms and Conditions
                                                                                                                                                    • GNU Free Documentation License
                                                                                                                                                      • Preamble
                                                                                                                                                      • Terms and Conditions for Copying Distribution and Modification
                                                                                                                                                      • How to use this License for your documents
                                                                                                                                                          • Indices
                                                                                                                                                            • Index of Concepts
                                                                                                                                                            • Index of Data Types
                                                                                                                                                            • Index of Functions and Macros
                                                                                                                                                            • Index of Variables and Constants
                                                                                                                                                            • Index of Files and Programs
                                                                                                                                                            • Index of Configuration Options
                                                                                                                                                            • Index of Makefile Targets
                                                                                                                                                            • Index of Authors
                                                                                                                                                            • Index of Manual Pages Referenced
Page 8: OpenSS7 SS7 Stack Installation and Reference Manual · 2008. 10. 31. · vi OpenSS7 SS7 Stack 6.8.1.5 Release Targets:::::86 6.8.1.6 Logging Targets::::: 87 6.8.1.7 Problem Report
Page 9: OpenSS7 SS7 Stack Installation and Reference Manual · 2008. 10. 31. · vi OpenSS7 SS7 Stack 6.8.1.5 Release Targets:::::86 6.8.1.6 Logging Targets::::: 87 6.8.1.7 Problem Report
Page 10: OpenSS7 SS7 Stack Installation and Reference Manual · 2008. 10. 31. · vi OpenSS7 SS7 Stack 6.8.1.5 Release Targets:::::86 6.8.1.6 Logging Targets::::: 87 6.8.1.7 Problem Report
Page 11: OpenSS7 SS7 Stack Installation and Reference Manual · 2008. 10. 31. · vi OpenSS7 SS7 Stack 6.8.1.5 Release Targets:::::86 6.8.1.6 Logging Targets::::: 87 6.8.1.7 Problem Report
Page 12: OpenSS7 SS7 Stack Installation and Reference Manual · 2008. 10. 31. · vi OpenSS7 SS7 Stack 6.8.1.5 Release Targets:::::86 6.8.1.6 Logging Targets::::: 87 6.8.1.7 Problem Report
Page 13: OpenSS7 SS7 Stack Installation and Reference Manual · 2008. 10. 31. · vi OpenSS7 SS7 Stack 6.8.1.5 Release Targets:::::86 6.8.1.6 Logging Targets::::: 87 6.8.1.7 Problem Report
Page 14: OpenSS7 SS7 Stack Installation and Reference Manual · 2008. 10. 31. · vi OpenSS7 SS7 Stack 6.8.1.5 Release Targets:::::86 6.8.1.6 Logging Targets::::: 87 6.8.1.7 Problem Report
Page 15: OpenSS7 SS7 Stack Installation and Reference Manual · 2008. 10. 31. · vi OpenSS7 SS7 Stack 6.8.1.5 Release Targets:::::86 6.8.1.6 Logging Targets::::: 87 6.8.1.7 Problem Report
Page 16: OpenSS7 SS7 Stack Installation and Reference Manual · 2008. 10. 31. · vi OpenSS7 SS7 Stack 6.8.1.5 Release Targets:::::86 6.8.1.6 Logging Targets::::: 87 6.8.1.7 Problem Report
Page 17: OpenSS7 SS7 Stack Installation and Reference Manual · 2008. 10. 31. · vi OpenSS7 SS7 Stack 6.8.1.5 Release Targets:::::86 6.8.1.6 Logging Targets::::: 87 6.8.1.7 Problem Report
Page 18: OpenSS7 SS7 Stack Installation and Reference Manual · 2008. 10. 31. · vi OpenSS7 SS7 Stack 6.8.1.5 Release Targets:::::86 6.8.1.6 Logging Targets::::: 87 6.8.1.7 Problem Report
Page 19: OpenSS7 SS7 Stack Installation and Reference Manual · 2008. 10. 31. · vi OpenSS7 SS7 Stack 6.8.1.5 Release Targets:::::86 6.8.1.6 Logging Targets::::: 87 6.8.1.7 Problem Report
Page 20: OpenSS7 SS7 Stack Installation and Reference Manual · 2008. 10. 31. · vi OpenSS7 SS7 Stack 6.8.1.5 Release Targets:::::86 6.8.1.6 Logging Targets::::: 87 6.8.1.7 Problem Report
Page 21: OpenSS7 SS7 Stack Installation and Reference Manual · 2008. 10. 31. · vi OpenSS7 SS7 Stack 6.8.1.5 Release Targets:::::86 6.8.1.6 Logging Targets::::: 87 6.8.1.7 Problem Report
Page 22: OpenSS7 SS7 Stack Installation and Reference Manual · 2008. 10. 31. · vi OpenSS7 SS7 Stack 6.8.1.5 Release Targets:::::86 6.8.1.6 Logging Targets::::: 87 6.8.1.7 Problem Report
Page 23: OpenSS7 SS7 Stack Installation and Reference Manual · 2008. 10. 31. · vi OpenSS7 SS7 Stack 6.8.1.5 Release Targets:::::86 6.8.1.6 Logging Targets::::: 87 6.8.1.7 Problem Report
Page 24: OpenSS7 SS7 Stack Installation and Reference Manual · 2008. 10. 31. · vi OpenSS7 SS7 Stack 6.8.1.5 Release Targets:::::86 6.8.1.6 Logging Targets::::: 87 6.8.1.7 Problem Report
Page 25: OpenSS7 SS7 Stack Installation and Reference Manual · 2008. 10. 31. · vi OpenSS7 SS7 Stack 6.8.1.5 Release Targets:::::86 6.8.1.6 Logging Targets::::: 87 6.8.1.7 Problem Report
Page 26: OpenSS7 SS7 Stack Installation and Reference Manual · 2008. 10. 31. · vi OpenSS7 SS7 Stack 6.8.1.5 Release Targets:::::86 6.8.1.6 Logging Targets::::: 87 6.8.1.7 Problem Report
Page 27: OpenSS7 SS7 Stack Installation and Reference Manual · 2008. 10. 31. · vi OpenSS7 SS7 Stack 6.8.1.5 Release Targets:::::86 6.8.1.6 Logging Targets::::: 87 6.8.1.7 Problem Report
Page 28: OpenSS7 SS7 Stack Installation and Reference Manual · 2008. 10. 31. · vi OpenSS7 SS7 Stack 6.8.1.5 Release Targets:::::86 6.8.1.6 Logging Targets::::: 87 6.8.1.7 Problem Report
Page 29: OpenSS7 SS7 Stack Installation and Reference Manual · 2008. 10. 31. · vi OpenSS7 SS7 Stack 6.8.1.5 Release Targets:::::86 6.8.1.6 Logging Targets::::: 87 6.8.1.7 Problem Report
Page 30: OpenSS7 SS7 Stack Installation and Reference Manual · 2008. 10. 31. · vi OpenSS7 SS7 Stack 6.8.1.5 Release Targets:::::86 6.8.1.6 Logging Targets::::: 87 6.8.1.7 Problem Report
Page 31: OpenSS7 SS7 Stack Installation and Reference Manual · 2008. 10. 31. · vi OpenSS7 SS7 Stack 6.8.1.5 Release Targets:::::86 6.8.1.6 Logging Targets::::: 87 6.8.1.7 Problem Report
Page 32: OpenSS7 SS7 Stack Installation and Reference Manual · 2008. 10. 31. · vi OpenSS7 SS7 Stack 6.8.1.5 Release Targets:::::86 6.8.1.6 Logging Targets::::: 87 6.8.1.7 Problem Report
Page 33: OpenSS7 SS7 Stack Installation and Reference Manual · 2008. 10. 31. · vi OpenSS7 SS7 Stack 6.8.1.5 Release Targets:::::86 6.8.1.6 Logging Targets::::: 87 6.8.1.7 Problem Report
Page 34: OpenSS7 SS7 Stack Installation and Reference Manual · 2008. 10. 31. · vi OpenSS7 SS7 Stack 6.8.1.5 Release Targets:::::86 6.8.1.6 Logging Targets::::: 87 6.8.1.7 Problem Report
Page 35: OpenSS7 SS7 Stack Installation and Reference Manual · 2008. 10. 31. · vi OpenSS7 SS7 Stack 6.8.1.5 Release Targets:::::86 6.8.1.6 Logging Targets::::: 87 6.8.1.7 Problem Report
Page 36: OpenSS7 SS7 Stack Installation and Reference Manual · 2008. 10. 31. · vi OpenSS7 SS7 Stack 6.8.1.5 Release Targets:::::86 6.8.1.6 Logging Targets::::: 87 6.8.1.7 Problem Report
Page 37: OpenSS7 SS7 Stack Installation and Reference Manual · 2008. 10. 31. · vi OpenSS7 SS7 Stack 6.8.1.5 Release Targets:::::86 6.8.1.6 Logging Targets::::: 87 6.8.1.7 Problem Report
Page 38: OpenSS7 SS7 Stack Installation and Reference Manual · 2008. 10. 31. · vi OpenSS7 SS7 Stack 6.8.1.5 Release Targets:::::86 6.8.1.6 Logging Targets::::: 87 6.8.1.7 Problem Report
Page 39: OpenSS7 SS7 Stack Installation and Reference Manual · 2008. 10. 31. · vi OpenSS7 SS7 Stack 6.8.1.5 Release Targets:::::86 6.8.1.6 Logging Targets::::: 87 6.8.1.7 Problem Report
Page 40: OpenSS7 SS7 Stack Installation and Reference Manual · 2008. 10. 31. · vi OpenSS7 SS7 Stack 6.8.1.5 Release Targets:::::86 6.8.1.6 Logging Targets::::: 87 6.8.1.7 Problem Report
Page 41: OpenSS7 SS7 Stack Installation and Reference Manual · 2008. 10. 31. · vi OpenSS7 SS7 Stack 6.8.1.5 Release Targets:::::86 6.8.1.6 Logging Targets::::: 87 6.8.1.7 Problem Report
Page 42: OpenSS7 SS7 Stack Installation and Reference Manual · 2008. 10. 31. · vi OpenSS7 SS7 Stack 6.8.1.5 Release Targets:::::86 6.8.1.6 Logging Targets::::: 87 6.8.1.7 Problem Report
Page 43: OpenSS7 SS7 Stack Installation and Reference Manual · 2008. 10. 31. · vi OpenSS7 SS7 Stack 6.8.1.5 Release Targets:::::86 6.8.1.6 Logging Targets::::: 87 6.8.1.7 Problem Report
Page 44: OpenSS7 SS7 Stack Installation and Reference Manual · 2008. 10. 31. · vi OpenSS7 SS7 Stack 6.8.1.5 Release Targets:::::86 6.8.1.6 Logging Targets::::: 87 6.8.1.7 Problem Report
Page 45: OpenSS7 SS7 Stack Installation and Reference Manual · 2008. 10. 31. · vi OpenSS7 SS7 Stack 6.8.1.5 Release Targets:::::86 6.8.1.6 Logging Targets::::: 87 6.8.1.7 Problem Report
Page 46: OpenSS7 SS7 Stack Installation and Reference Manual · 2008. 10. 31. · vi OpenSS7 SS7 Stack 6.8.1.5 Release Targets:::::86 6.8.1.6 Logging Targets::::: 87 6.8.1.7 Problem Report
Page 47: OpenSS7 SS7 Stack Installation and Reference Manual · 2008. 10. 31. · vi OpenSS7 SS7 Stack 6.8.1.5 Release Targets:::::86 6.8.1.6 Logging Targets::::: 87 6.8.1.7 Problem Report
Page 48: OpenSS7 SS7 Stack Installation and Reference Manual · 2008. 10. 31. · vi OpenSS7 SS7 Stack 6.8.1.5 Release Targets:::::86 6.8.1.6 Logging Targets::::: 87 6.8.1.7 Problem Report
Page 49: OpenSS7 SS7 Stack Installation and Reference Manual · 2008. 10. 31. · vi OpenSS7 SS7 Stack 6.8.1.5 Release Targets:::::86 6.8.1.6 Logging Targets::::: 87 6.8.1.7 Problem Report
Page 50: OpenSS7 SS7 Stack Installation and Reference Manual · 2008. 10. 31. · vi OpenSS7 SS7 Stack 6.8.1.5 Release Targets:::::86 6.8.1.6 Logging Targets::::: 87 6.8.1.7 Problem Report
Page 51: OpenSS7 SS7 Stack Installation and Reference Manual · 2008. 10. 31. · vi OpenSS7 SS7 Stack 6.8.1.5 Release Targets:::::86 6.8.1.6 Logging Targets::::: 87 6.8.1.7 Problem Report
Page 52: OpenSS7 SS7 Stack Installation and Reference Manual · 2008. 10. 31. · vi OpenSS7 SS7 Stack 6.8.1.5 Release Targets:::::86 6.8.1.6 Logging Targets::::: 87 6.8.1.7 Problem Report
Page 53: OpenSS7 SS7 Stack Installation and Reference Manual · 2008. 10. 31. · vi OpenSS7 SS7 Stack 6.8.1.5 Release Targets:::::86 6.8.1.6 Logging Targets::::: 87 6.8.1.7 Problem Report
Page 54: OpenSS7 SS7 Stack Installation and Reference Manual · 2008. 10. 31. · vi OpenSS7 SS7 Stack 6.8.1.5 Release Targets:::::86 6.8.1.6 Logging Targets::::: 87 6.8.1.7 Problem Report
Page 55: OpenSS7 SS7 Stack Installation and Reference Manual · 2008. 10. 31. · vi OpenSS7 SS7 Stack 6.8.1.5 Release Targets:::::86 6.8.1.6 Logging Targets::::: 87 6.8.1.7 Problem Report
Page 56: OpenSS7 SS7 Stack Installation and Reference Manual · 2008. 10. 31. · vi OpenSS7 SS7 Stack 6.8.1.5 Release Targets:::::86 6.8.1.6 Logging Targets::::: 87 6.8.1.7 Problem Report
Page 57: OpenSS7 SS7 Stack Installation and Reference Manual · 2008. 10. 31. · vi OpenSS7 SS7 Stack 6.8.1.5 Release Targets:::::86 6.8.1.6 Logging Targets::::: 87 6.8.1.7 Problem Report
Page 58: OpenSS7 SS7 Stack Installation and Reference Manual · 2008. 10. 31. · vi OpenSS7 SS7 Stack 6.8.1.5 Release Targets:::::86 6.8.1.6 Logging Targets::::: 87 6.8.1.7 Problem Report
Page 59: OpenSS7 SS7 Stack Installation and Reference Manual · 2008. 10. 31. · vi OpenSS7 SS7 Stack 6.8.1.5 Release Targets:::::86 6.8.1.6 Logging Targets::::: 87 6.8.1.7 Problem Report
Page 60: OpenSS7 SS7 Stack Installation and Reference Manual · 2008. 10. 31. · vi OpenSS7 SS7 Stack 6.8.1.5 Release Targets:::::86 6.8.1.6 Logging Targets::::: 87 6.8.1.7 Problem Report
Page 61: OpenSS7 SS7 Stack Installation and Reference Manual · 2008. 10. 31. · vi OpenSS7 SS7 Stack 6.8.1.5 Release Targets:::::86 6.8.1.6 Logging Targets::::: 87 6.8.1.7 Problem Report
Page 62: OpenSS7 SS7 Stack Installation and Reference Manual · 2008. 10. 31. · vi OpenSS7 SS7 Stack 6.8.1.5 Release Targets:::::86 6.8.1.6 Logging Targets::::: 87 6.8.1.7 Problem Report
Page 63: OpenSS7 SS7 Stack Installation and Reference Manual · 2008. 10. 31. · vi OpenSS7 SS7 Stack 6.8.1.5 Release Targets:::::86 6.8.1.6 Logging Targets::::: 87 6.8.1.7 Problem Report
Page 64: OpenSS7 SS7 Stack Installation and Reference Manual · 2008. 10. 31. · vi OpenSS7 SS7 Stack 6.8.1.5 Release Targets:::::86 6.8.1.6 Logging Targets::::: 87 6.8.1.7 Problem Report
Page 65: OpenSS7 SS7 Stack Installation and Reference Manual · 2008. 10. 31. · vi OpenSS7 SS7 Stack 6.8.1.5 Release Targets:::::86 6.8.1.6 Logging Targets::::: 87 6.8.1.7 Problem Report
Page 66: OpenSS7 SS7 Stack Installation and Reference Manual · 2008. 10. 31. · vi OpenSS7 SS7 Stack 6.8.1.5 Release Targets:::::86 6.8.1.6 Logging Targets::::: 87 6.8.1.7 Problem Report
Page 67: OpenSS7 SS7 Stack Installation and Reference Manual · 2008. 10. 31. · vi OpenSS7 SS7 Stack 6.8.1.5 Release Targets:::::86 6.8.1.6 Logging Targets::::: 87 6.8.1.7 Problem Report
Page 68: OpenSS7 SS7 Stack Installation and Reference Manual · 2008. 10. 31. · vi OpenSS7 SS7 Stack 6.8.1.5 Release Targets:::::86 6.8.1.6 Logging Targets::::: 87 6.8.1.7 Problem Report
Page 69: OpenSS7 SS7 Stack Installation and Reference Manual · 2008. 10. 31. · vi OpenSS7 SS7 Stack 6.8.1.5 Release Targets:::::86 6.8.1.6 Logging Targets::::: 87 6.8.1.7 Problem Report
Page 70: OpenSS7 SS7 Stack Installation and Reference Manual · 2008. 10. 31. · vi OpenSS7 SS7 Stack 6.8.1.5 Release Targets:::::86 6.8.1.6 Logging Targets::::: 87 6.8.1.7 Problem Report
Page 71: OpenSS7 SS7 Stack Installation and Reference Manual · 2008. 10. 31. · vi OpenSS7 SS7 Stack 6.8.1.5 Release Targets:::::86 6.8.1.6 Logging Targets::::: 87 6.8.1.7 Problem Report
Page 72: OpenSS7 SS7 Stack Installation and Reference Manual · 2008. 10. 31. · vi OpenSS7 SS7 Stack 6.8.1.5 Release Targets:::::86 6.8.1.6 Logging Targets::::: 87 6.8.1.7 Problem Report
Page 73: OpenSS7 SS7 Stack Installation and Reference Manual · 2008. 10. 31. · vi OpenSS7 SS7 Stack 6.8.1.5 Release Targets:::::86 6.8.1.6 Logging Targets::::: 87 6.8.1.7 Problem Report
Page 74: OpenSS7 SS7 Stack Installation and Reference Manual · 2008. 10. 31. · vi OpenSS7 SS7 Stack 6.8.1.5 Release Targets:::::86 6.8.1.6 Logging Targets::::: 87 6.8.1.7 Problem Report
Page 75: OpenSS7 SS7 Stack Installation and Reference Manual · 2008. 10. 31. · vi OpenSS7 SS7 Stack 6.8.1.5 Release Targets:::::86 6.8.1.6 Logging Targets::::: 87 6.8.1.7 Problem Report
Page 76: OpenSS7 SS7 Stack Installation and Reference Manual · 2008. 10. 31. · vi OpenSS7 SS7 Stack 6.8.1.5 Release Targets:::::86 6.8.1.6 Logging Targets::::: 87 6.8.1.7 Problem Report
Page 77: OpenSS7 SS7 Stack Installation and Reference Manual · 2008. 10. 31. · vi OpenSS7 SS7 Stack 6.8.1.5 Release Targets:::::86 6.8.1.6 Logging Targets::::: 87 6.8.1.7 Problem Report
Page 78: OpenSS7 SS7 Stack Installation and Reference Manual · 2008. 10. 31. · vi OpenSS7 SS7 Stack 6.8.1.5 Release Targets:::::86 6.8.1.6 Logging Targets::::: 87 6.8.1.7 Problem Report
Page 79: OpenSS7 SS7 Stack Installation and Reference Manual · 2008. 10. 31. · vi OpenSS7 SS7 Stack 6.8.1.5 Release Targets:::::86 6.8.1.6 Logging Targets::::: 87 6.8.1.7 Problem Report
Page 80: OpenSS7 SS7 Stack Installation and Reference Manual · 2008. 10. 31. · vi OpenSS7 SS7 Stack 6.8.1.5 Release Targets:::::86 6.8.1.6 Logging Targets::::: 87 6.8.1.7 Problem Report
Page 81: OpenSS7 SS7 Stack Installation and Reference Manual · 2008. 10. 31. · vi OpenSS7 SS7 Stack 6.8.1.5 Release Targets:::::86 6.8.1.6 Logging Targets::::: 87 6.8.1.7 Problem Report
Page 82: OpenSS7 SS7 Stack Installation and Reference Manual · 2008. 10. 31. · vi OpenSS7 SS7 Stack 6.8.1.5 Release Targets:::::86 6.8.1.6 Logging Targets::::: 87 6.8.1.7 Problem Report
Page 83: OpenSS7 SS7 Stack Installation and Reference Manual · 2008. 10. 31. · vi OpenSS7 SS7 Stack 6.8.1.5 Release Targets:::::86 6.8.1.6 Logging Targets::::: 87 6.8.1.7 Problem Report
Page 84: OpenSS7 SS7 Stack Installation and Reference Manual · 2008. 10. 31. · vi OpenSS7 SS7 Stack 6.8.1.5 Release Targets:::::86 6.8.1.6 Logging Targets::::: 87 6.8.1.7 Problem Report
Page 85: OpenSS7 SS7 Stack Installation and Reference Manual · 2008. 10. 31. · vi OpenSS7 SS7 Stack 6.8.1.5 Release Targets:::::86 6.8.1.6 Logging Targets::::: 87 6.8.1.7 Problem Report
Page 86: OpenSS7 SS7 Stack Installation and Reference Manual · 2008. 10. 31. · vi OpenSS7 SS7 Stack 6.8.1.5 Release Targets:::::86 6.8.1.6 Logging Targets::::: 87 6.8.1.7 Problem Report
Page 87: OpenSS7 SS7 Stack Installation and Reference Manual · 2008. 10. 31. · vi OpenSS7 SS7 Stack 6.8.1.5 Release Targets:::::86 6.8.1.6 Logging Targets::::: 87 6.8.1.7 Problem Report
Page 88: OpenSS7 SS7 Stack Installation and Reference Manual · 2008. 10. 31. · vi OpenSS7 SS7 Stack 6.8.1.5 Release Targets:::::86 6.8.1.6 Logging Targets::::: 87 6.8.1.7 Problem Report
Page 89: OpenSS7 SS7 Stack Installation and Reference Manual · 2008. 10. 31. · vi OpenSS7 SS7 Stack 6.8.1.5 Release Targets:::::86 6.8.1.6 Logging Targets::::: 87 6.8.1.7 Problem Report
Page 90: OpenSS7 SS7 Stack Installation and Reference Manual · 2008. 10. 31. · vi OpenSS7 SS7 Stack 6.8.1.5 Release Targets:::::86 6.8.1.6 Logging Targets::::: 87 6.8.1.7 Problem Report
Page 91: OpenSS7 SS7 Stack Installation and Reference Manual · 2008. 10. 31. · vi OpenSS7 SS7 Stack 6.8.1.5 Release Targets:::::86 6.8.1.6 Logging Targets::::: 87 6.8.1.7 Problem Report
Page 92: OpenSS7 SS7 Stack Installation and Reference Manual · 2008. 10. 31. · vi OpenSS7 SS7 Stack 6.8.1.5 Release Targets:::::86 6.8.1.6 Logging Targets::::: 87 6.8.1.7 Problem Report
Page 93: OpenSS7 SS7 Stack Installation and Reference Manual · 2008. 10. 31. · vi OpenSS7 SS7 Stack 6.8.1.5 Release Targets:::::86 6.8.1.6 Logging Targets::::: 87 6.8.1.7 Problem Report
Page 94: OpenSS7 SS7 Stack Installation and Reference Manual · 2008. 10. 31. · vi OpenSS7 SS7 Stack 6.8.1.5 Release Targets:::::86 6.8.1.6 Logging Targets::::: 87 6.8.1.7 Problem Report
Page 95: OpenSS7 SS7 Stack Installation and Reference Manual · 2008. 10. 31. · vi OpenSS7 SS7 Stack 6.8.1.5 Release Targets:::::86 6.8.1.6 Logging Targets::::: 87 6.8.1.7 Problem Report
Page 96: OpenSS7 SS7 Stack Installation and Reference Manual · 2008. 10. 31. · vi OpenSS7 SS7 Stack 6.8.1.5 Release Targets:::::86 6.8.1.6 Logging Targets::::: 87 6.8.1.7 Problem Report
Page 97: OpenSS7 SS7 Stack Installation and Reference Manual · 2008. 10. 31. · vi OpenSS7 SS7 Stack 6.8.1.5 Release Targets:::::86 6.8.1.6 Logging Targets::::: 87 6.8.1.7 Problem Report
Page 98: OpenSS7 SS7 Stack Installation and Reference Manual · 2008. 10. 31. · vi OpenSS7 SS7 Stack 6.8.1.5 Release Targets:::::86 6.8.1.6 Logging Targets::::: 87 6.8.1.7 Problem Report
Page 99: OpenSS7 SS7 Stack Installation and Reference Manual · 2008. 10. 31. · vi OpenSS7 SS7 Stack 6.8.1.5 Release Targets:::::86 6.8.1.6 Logging Targets::::: 87 6.8.1.7 Problem Report
Page 100: OpenSS7 SS7 Stack Installation and Reference Manual · 2008. 10. 31. · vi OpenSS7 SS7 Stack 6.8.1.5 Release Targets:::::86 6.8.1.6 Logging Targets::::: 87 6.8.1.7 Problem Report
Page 101: OpenSS7 SS7 Stack Installation and Reference Manual · 2008. 10. 31. · vi OpenSS7 SS7 Stack 6.8.1.5 Release Targets:::::86 6.8.1.6 Logging Targets::::: 87 6.8.1.7 Problem Report
Page 102: OpenSS7 SS7 Stack Installation and Reference Manual · 2008. 10. 31. · vi OpenSS7 SS7 Stack 6.8.1.5 Release Targets:::::86 6.8.1.6 Logging Targets::::: 87 6.8.1.7 Problem Report
Page 103: OpenSS7 SS7 Stack Installation and Reference Manual · 2008. 10. 31. · vi OpenSS7 SS7 Stack 6.8.1.5 Release Targets:::::86 6.8.1.6 Logging Targets::::: 87 6.8.1.7 Problem Report
Page 104: OpenSS7 SS7 Stack Installation and Reference Manual · 2008. 10. 31. · vi OpenSS7 SS7 Stack 6.8.1.5 Release Targets:::::86 6.8.1.6 Logging Targets::::: 87 6.8.1.7 Problem Report
Page 105: OpenSS7 SS7 Stack Installation and Reference Manual · 2008. 10. 31. · vi OpenSS7 SS7 Stack 6.8.1.5 Release Targets:::::86 6.8.1.6 Logging Targets::::: 87 6.8.1.7 Problem Report
Page 106: OpenSS7 SS7 Stack Installation and Reference Manual · 2008. 10. 31. · vi OpenSS7 SS7 Stack 6.8.1.5 Release Targets:::::86 6.8.1.6 Logging Targets::::: 87 6.8.1.7 Problem Report
Page 107: OpenSS7 SS7 Stack Installation and Reference Manual · 2008. 10. 31. · vi OpenSS7 SS7 Stack 6.8.1.5 Release Targets:::::86 6.8.1.6 Logging Targets::::: 87 6.8.1.7 Problem Report
Page 108: OpenSS7 SS7 Stack Installation and Reference Manual · 2008. 10. 31. · vi OpenSS7 SS7 Stack 6.8.1.5 Release Targets:::::86 6.8.1.6 Logging Targets::::: 87 6.8.1.7 Problem Report
Page 109: OpenSS7 SS7 Stack Installation and Reference Manual · 2008. 10. 31. · vi OpenSS7 SS7 Stack 6.8.1.5 Release Targets:::::86 6.8.1.6 Logging Targets::::: 87 6.8.1.7 Problem Report
Page 110: OpenSS7 SS7 Stack Installation and Reference Manual · 2008. 10. 31. · vi OpenSS7 SS7 Stack 6.8.1.5 Release Targets:::::86 6.8.1.6 Logging Targets::::: 87 6.8.1.7 Problem Report
Page 111: OpenSS7 SS7 Stack Installation and Reference Manual · 2008. 10. 31. · vi OpenSS7 SS7 Stack 6.8.1.5 Release Targets:::::86 6.8.1.6 Logging Targets::::: 87 6.8.1.7 Problem Report
Page 112: OpenSS7 SS7 Stack Installation and Reference Manual · 2008. 10. 31. · vi OpenSS7 SS7 Stack 6.8.1.5 Release Targets:::::86 6.8.1.6 Logging Targets::::: 87 6.8.1.7 Problem Report
Page 113: OpenSS7 SS7 Stack Installation and Reference Manual · 2008. 10. 31. · vi OpenSS7 SS7 Stack 6.8.1.5 Release Targets:::::86 6.8.1.6 Logging Targets::::: 87 6.8.1.7 Problem Report
Page 114: OpenSS7 SS7 Stack Installation and Reference Manual · 2008. 10. 31. · vi OpenSS7 SS7 Stack 6.8.1.5 Release Targets:::::86 6.8.1.6 Logging Targets::::: 87 6.8.1.7 Problem Report
Page 115: OpenSS7 SS7 Stack Installation and Reference Manual · 2008. 10. 31. · vi OpenSS7 SS7 Stack 6.8.1.5 Release Targets:::::86 6.8.1.6 Logging Targets::::: 87 6.8.1.7 Problem Report
Page 116: OpenSS7 SS7 Stack Installation and Reference Manual · 2008. 10. 31. · vi OpenSS7 SS7 Stack 6.8.1.5 Release Targets:::::86 6.8.1.6 Logging Targets::::: 87 6.8.1.7 Problem Report
Page 117: OpenSS7 SS7 Stack Installation and Reference Manual · 2008. 10. 31. · vi OpenSS7 SS7 Stack 6.8.1.5 Release Targets:::::86 6.8.1.6 Logging Targets::::: 87 6.8.1.7 Problem Report
Page 118: OpenSS7 SS7 Stack Installation and Reference Manual · 2008. 10. 31. · vi OpenSS7 SS7 Stack 6.8.1.5 Release Targets:::::86 6.8.1.6 Logging Targets::::: 87 6.8.1.7 Problem Report
Page 119: OpenSS7 SS7 Stack Installation and Reference Manual · 2008. 10. 31. · vi OpenSS7 SS7 Stack 6.8.1.5 Release Targets:::::86 6.8.1.6 Logging Targets::::: 87 6.8.1.7 Problem Report
Page 120: OpenSS7 SS7 Stack Installation and Reference Manual · 2008. 10. 31. · vi OpenSS7 SS7 Stack 6.8.1.5 Release Targets:::::86 6.8.1.6 Logging Targets::::: 87 6.8.1.7 Problem Report
Page 121: OpenSS7 SS7 Stack Installation and Reference Manual · 2008. 10. 31. · vi OpenSS7 SS7 Stack 6.8.1.5 Release Targets:::::86 6.8.1.6 Logging Targets::::: 87 6.8.1.7 Problem Report
Page 122: OpenSS7 SS7 Stack Installation and Reference Manual · 2008. 10. 31. · vi OpenSS7 SS7 Stack 6.8.1.5 Release Targets:::::86 6.8.1.6 Logging Targets::::: 87 6.8.1.7 Problem Report
Page 123: OpenSS7 SS7 Stack Installation and Reference Manual · 2008. 10. 31. · vi OpenSS7 SS7 Stack 6.8.1.5 Release Targets:::::86 6.8.1.6 Logging Targets::::: 87 6.8.1.7 Problem Report
Page 124: OpenSS7 SS7 Stack Installation and Reference Manual · 2008. 10. 31. · vi OpenSS7 SS7 Stack 6.8.1.5 Release Targets:::::86 6.8.1.6 Logging Targets::::: 87 6.8.1.7 Problem Report
Page 125: OpenSS7 SS7 Stack Installation and Reference Manual · 2008. 10. 31. · vi OpenSS7 SS7 Stack 6.8.1.5 Release Targets:::::86 6.8.1.6 Logging Targets::::: 87 6.8.1.7 Problem Report
Page 126: OpenSS7 SS7 Stack Installation and Reference Manual · 2008. 10. 31. · vi OpenSS7 SS7 Stack 6.8.1.5 Release Targets:::::86 6.8.1.6 Logging Targets::::: 87 6.8.1.7 Problem Report
Page 127: OpenSS7 SS7 Stack Installation and Reference Manual · 2008. 10. 31. · vi OpenSS7 SS7 Stack 6.8.1.5 Release Targets:::::86 6.8.1.6 Logging Targets::::: 87 6.8.1.7 Problem Report
Page 128: OpenSS7 SS7 Stack Installation and Reference Manual · 2008. 10. 31. · vi OpenSS7 SS7 Stack 6.8.1.5 Release Targets:::::86 6.8.1.6 Logging Targets::::: 87 6.8.1.7 Problem Report
Page 129: OpenSS7 SS7 Stack Installation and Reference Manual · 2008. 10. 31. · vi OpenSS7 SS7 Stack 6.8.1.5 Release Targets:::::86 6.8.1.6 Logging Targets::::: 87 6.8.1.7 Problem Report
Page 130: OpenSS7 SS7 Stack Installation and Reference Manual · 2008. 10. 31. · vi OpenSS7 SS7 Stack 6.8.1.5 Release Targets:::::86 6.8.1.6 Logging Targets::::: 87 6.8.1.7 Problem Report
Page 131: OpenSS7 SS7 Stack Installation and Reference Manual · 2008. 10. 31. · vi OpenSS7 SS7 Stack 6.8.1.5 Release Targets:::::86 6.8.1.6 Logging Targets::::: 87 6.8.1.7 Problem Report
Page 132: OpenSS7 SS7 Stack Installation and Reference Manual · 2008. 10. 31. · vi OpenSS7 SS7 Stack 6.8.1.5 Release Targets:::::86 6.8.1.6 Logging Targets::::: 87 6.8.1.7 Problem Report
Page 133: OpenSS7 SS7 Stack Installation and Reference Manual · 2008. 10. 31. · vi OpenSS7 SS7 Stack 6.8.1.5 Release Targets:::::86 6.8.1.6 Logging Targets::::: 87 6.8.1.7 Problem Report
Page 134: OpenSS7 SS7 Stack Installation and Reference Manual · 2008. 10. 31. · vi OpenSS7 SS7 Stack 6.8.1.5 Release Targets:::::86 6.8.1.6 Logging Targets::::: 87 6.8.1.7 Problem Report
Page 135: OpenSS7 SS7 Stack Installation and Reference Manual · 2008. 10. 31. · vi OpenSS7 SS7 Stack 6.8.1.5 Release Targets:::::86 6.8.1.6 Logging Targets::::: 87 6.8.1.7 Problem Report
Page 136: OpenSS7 SS7 Stack Installation and Reference Manual · 2008. 10. 31. · vi OpenSS7 SS7 Stack 6.8.1.5 Release Targets:::::86 6.8.1.6 Logging Targets::::: 87 6.8.1.7 Problem Report
Page 137: OpenSS7 SS7 Stack Installation and Reference Manual · 2008. 10. 31. · vi OpenSS7 SS7 Stack 6.8.1.5 Release Targets:::::86 6.8.1.6 Logging Targets::::: 87 6.8.1.7 Problem Report
Page 138: OpenSS7 SS7 Stack Installation and Reference Manual · 2008. 10. 31. · vi OpenSS7 SS7 Stack 6.8.1.5 Release Targets:::::86 6.8.1.6 Logging Targets::::: 87 6.8.1.7 Problem Report
Page 139: OpenSS7 SS7 Stack Installation and Reference Manual · 2008. 10. 31. · vi OpenSS7 SS7 Stack 6.8.1.5 Release Targets:::::86 6.8.1.6 Logging Targets::::: 87 6.8.1.7 Problem Report
Page 140: OpenSS7 SS7 Stack Installation and Reference Manual · 2008. 10. 31. · vi OpenSS7 SS7 Stack 6.8.1.5 Release Targets:::::86 6.8.1.6 Logging Targets::::: 87 6.8.1.7 Problem Report
Page 141: OpenSS7 SS7 Stack Installation and Reference Manual · 2008. 10. 31. · vi OpenSS7 SS7 Stack 6.8.1.5 Release Targets:::::86 6.8.1.6 Logging Targets::::: 87 6.8.1.7 Problem Report
Page 142: OpenSS7 SS7 Stack Installation and Reference Manual · 2008. 10. 31. · vi OpenSS7 SS7 Stack 6.8.1.5 Release Targets:::::86 6.8.1.6 Logging Targets::::: 87 6.8.1.7 Problem Report
Page 143: OpenSS7 SS7 Stack Installation and Reference Manual · 2008. 10. 31. · vi OpenSS7 SS7 Stack 6.8.1.5 Release Targets:::::86 6.8.1.6 Logging Targets::::: 87 6.8.1.7 Problem Report
Page 144: OpenSS7 SS7 Stack Installation and Reference Manual · 2008. 10. 31. · vi OpenSS7 SS7 Stack 6.8.1.5 Release Targets:::::86 6.8.1.6 Logging Targets::::: 87 6.8.1.7 Problem Report
Page 145: OpenSS7 SS7 Stack Installation and Reference Manual · 2008. 10. 31. · vi OpenSS7 SS7 Stack 6.8.1.5 Release Targets:::::86 6.8.1.6 Logging Targets::::: 87 6.8.1.7 Problem Report
Page 146: OpenSS7 SS7 Stack Installation and Reference Manual · 2008. 10. 31. · vi OpenSS7 SS7 Stack 6.8.1.5 Release Targets:::::86 6.8.1.6 Logging Targets::::: 87 6.8.1.7 Problem Report
Page 147: OpenSS7 SS7 Stack Installation and Reference Manual · 2008. 10. 31. · vi OpenSS7 SS7 Stack 6.8.1.5 Release Targets:::::86 6.8.1.6 Logging Targets::::: 87 6.8.1.7 Problem Report
Page 148: OpenSS7 SS7 Stack Installation and Reference Manual · 2008. 10. 31. · vi OpenSS7 SS7 Stack 6.8.1.5 Release Targets:::::86 6.8.1.6 Logging Targets::::: 87 6.8.1.7 Problem Report
Page 149: OpenSS7 SS7 Stack Installation and Reference Manual · 2008. 10. 31. · vi OpenSS7 SS7 Stack 6.8.1.5 Release Targets:::::86 6.8.1.6 Logging Targets::::: 87 6.8.1.7 Problem Report