-
Notifications
You must be signed in to change notification settings - Fork 1
/
README
323 lines (244 loc) · 11.5 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
Open Diameter: Open-source software for the Diameter
and Diameter related protocols
Copyright (C) 2002-2007 Open Diameter Project
Plese read the accompanying COPYING file for the terms and conditions
of the licences applied to this software.
Table of Contents
-----------------
1. Required external libraries and tools
1.1 GNU g++ versions
1.2 ACE library
1.3 BOOST library
1.4 OpenSSL library
1.5 Autoconf/Automake/libtool versions
2. How to compile
2.1 Open diameter libraries
2.2 Open diameter applications
2.3 Supported platforms
2.4 Build environment
2.5 Win32 Platforms
3. Installation
4. How to use
4.1 Sample programs
4.2 Parser Usage Notes for String Container
4. Platform Support Table
5. Contact Information
1. Required external libraries and tools
----------------------------------------
The following are external libraries and tools for use with
Open Diameter 1.0.7-i. For earlier versions of Open Diameter,
pls look in the the release notes of each version.
1.1 GNU g++ versions
Open Diameter libraries currently compiles under
with the following g++ versions:
4.x.x and above
The latest version supported is 4.1.2.
1.2 ACE library
Open diameter makes extensive use of the ACE framework
including threading, communications, logging etc. The
latest ACE version that has been tested with Open Diameter
is ACE Release 5.5.x.
You can get the source code of the ACE library from:
http://www.cs.wustl.edu/%7Eschmidt/ACE.html
Acknowledgment:
The members of the Open Diameter project thank the
ACE project for developing the ACE library for
providing OS independency and useful design
patterns.
1.4 Boost library
Open Diameter libraries currently uses boost library
version:
1.33.x and above
The latest version supported is 1.33.1. Boost URL is:
http://www.boost.org
Compiler Notes:
For the latest information in compiler version compatibility
pls see the boost compiler/build status available in thier website.
Acknowledgment:
The members of the Open Diameter project thank the Boost
library maintainers for providing a robust and extensive
collection of library toolsets.
1.5 OpenSSL library
It is recommended that you use the latest version of OpenSSL
Specifically, a version which includes aes in it's crypto
package. In addition, it is required that the OpenSSL libraries
has the cipher specifications built into it (i.e. DO NOT use
no-cipher parameter in building OpenSSL). This is required by
EAP libraries. If building OpenSSL, make sure that the shared
libraries version is also build.
Acknowledgment:
This product includes software developed by the OpenSSL
Project for use in the OpenSSL Toolkit
(http://www.openssl.org/).
This product includes cryptographic software written by
Eric Young ([email protected]).
This product includes software written by Tim Hudson
1.6 Autoconf/Automake/libtool versions
It is recommended that you use the latest version of autoconf
and automake. The configure scripts uses later versions of
macros calls that might not be present in older versions.
The following are tested versions of autoconf, automake and
libtool. These tools are only used if you wish to change
any Makefiles or build options not configurable by the
config scripts.
1. Autoconf - version 2.61
2. Automake - version 1.9.6
3. Libtool - 1.5.6
2. How to compile
-----------------
2.1 Open diameter libraries
As of version 1.0.7-i, the Open Diameter build will result in
nine(10) libraries:
1. libdiamparser - Diameter message parser
2. libdiameter - Diameter base protocol
3. libeap - EAP protocol implementation
4. libeaparchie - EAP Archie implementation
5. libpana - PANA protocol implementation
6. libdiametereap - Diameter/EAP library
7. libdiameternasreq - Diameter/NASREQ library
8. libdiametermip4 - Diameter/MIP4 library
9. libodutl - General support library for
all protocols
Note that libeap-archie is built inside the libeap
directory. The Test programs for each library are also
built.
2.2 Open diameter applications
As of version 1.0.7-h, the Open Diameter distribution includes
two(2) binary applications:
1. nasd - NAS deamon (Network access deamon) designed to
be used as access application at the edge of
a network. It is used to bridge access protocols
(PANA, 802.1x ..etc) and backed AAA protocols
(Diameter, RADIUS ..) to provide a complete
access environment. For details, see the README
file under the applications directory and
http://www.opendiameter.org
2. aaad - AAA deamon. This is a diameter server deamon.
At the moment, the only application is supports
is Diameter EAP. This supplements the nasd to
allow user access test. For details, see the
README file under the applications directory
and http://www.opendiameter.org.
2.3 Supported platforms
Open diameter libraries has support for the following OS:
1. Linux - tested distrubutions include redhat
and debian. Kernel version restrictions
are dictated by the ACE library.
2. FreeBSD - tested versions include 4.8 and 5.0
2.4 Build environment
In order to build the open diameter set of libraries, there
are a few environment variables that need to be set. This
applies to unix systems only.
a. ACE_ROOT - must be set to the root directory of the
ACE installation. This is also required
before building ACE. See Sec. 1.3 for
details.
b. BOOST_ROOT - must be set to the root directory of the
boost installation. See Sec. 1.4 for
details.
To build opendiameter on unix systems, type "./configure" from
the open diameter root directory then type "make". After building,
the libraries will be located under thier respective directory.
Note that as of this writing, only static libraries are built.
A complete options list for the configure scripts is located in
the INSTALL doc.
If you are using KDevelop, this distribution also contains a
KDevelop 3.5.5 project file. You can simply open this project
file and build Open Diameter under KDevelop as you would any
other project. Note however, that the environment variables
above still applies and you can configure this in your local
KDevelop environment.
2.5 Win32 Platforms
Previous versions of Open Diameter has support for Win32 build
environments. Although, those project and solutions files for
Visual Studio still applies, they have not been upgraded for
this release. There are plans to upgrade them for subsequent
release. There are no special Win32 requirements that applies
to this release so you may upgdate your current Win32 project files
as well.
3. Installation
The Open Diameter libraries can installed using the exsting
root configure script. Installation can be done using the steps:
$ configure --prefix=[prefered directory]
$ make
$ make install
The include files will be placed in $(prefix)/include/opendiameter/*.
Additional subdirectories under this directory is made for each
library. For example, libdiameter headers will be placed in
$(prefix)/include/opendiameter/diameter. Libraries files will
be installed in $(prefix)/lib. Configuration files will be
installed in $(prefix)/etc/opendiameter/*.
Note that the --prefix is optional and if not supplied the default
prefix is /usr/local.
For KDevelop, you may also perform an install in either the debug
or release build subdirectories generated by KDevelop.
4. How to use
-------------
4.1 Sample programs
All libraries in Open Diameter maintains a test directory
which contains sample programs. The sample code shows how
to use the API's for that library. Since, Open Diameter
does not currently provide extensive documentation on usage
of every API, the sample code is the best source for usage
reference.
4.2 Parser Usage Notes for String Container
The libdiamparser relies heavily on the STL string class
to represent diameter data types. However, there has been
usage issues with regards to c_str() and data() methods of
the STL string class. This section is an overview of the
recommeded usage for these methods. The use of the following
examples provide a clear scenario on the issue as it pertains
to libdiamparser.
rdta->dest_string = source_string->data();
and
rdata->dest_string = source_string->c_str();
Both invocation will give the same result only when the data
contained in source_string is null-terminated but in many
cases it is not null-terminated when source_string data is set as a
result of parseRawToApp() [Both OctetString and UTF8String allows a
null character to appear in the middle of the data]. When using
c_str(), a null character is prepended at the end of the data but
length() value does not change before and after the call to
c_str(). Hence, the former example will show an unexpected behavior
if the source_string data is not null-terminated. The use
of data() in such scenario is not recommended.
5. Platform Support Table
-------------------------
The following is the list of libraries currently distributed
with Open Diameter and which platform each library support.
If a platform is supported, each entry will list all distribution
types (i.e, source, rpm, deb, etc). Other additional information
will be provided in the future.
Legend:
A - source, tar.gz, GCC 3.2.2 and above
B - source, zip, C++ .NET 2003
C - source, build support for shared library
D - source, buidl support for DLL
E - binary, RPM package
F - binary, deb package
G - FreeBSD ports collection
Libraries Table
Linux FreeBSD Win32
-------------------------------------------------------
libdiameter A, C A, C B, C
libdiametereap A, C A, C B, C
libdiameternasreq A, C A, C B, C
libdiametermip4 A, C A, C B, C
libdiamparser A, C A, C B, C
libeap A, C A, C B, C
libeaparchie A, C A, C B, C
libodutl A, C A, C B, C
libpana A, C A, C B, C
Applications Table
Linux FreeBSD Win32
-------------------------------------------------------
none
6. Contact Information
----------------------
If you have any questions and comments, please send email to
General information about the mailing list is at:
http://lists.sourceforge.net/lists/listinfo/diameter-developers.
The Open Diameter Project home page is at:
http://sourceforge.net/projects/diameter.