You can subscribe to this list here.
| 2006 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
(8) |
Jul
(9) |
Aug
(24) |
Sep
(24) |
Oct
(10) |
Nov
(25) |
Dec
(22) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2007 |
Jan
(25) |
Feb
(24) |
Mar
(22) |
Apr
(14) |
May
(38) |
Jun
(6) |
Jul
(11) |
Aug
(6) |
Sep
(10) |
Oct
(11) |
Nov
(4) |
Dec
(8) |
| 2008 |
Jan
(6) |
Feb
(4) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(1) |
Sep
|
Oct
|
Nov
|
Dec
|
| 2010 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(2) |
Sep
(2) |
Oct
(2) |
Nov
|
Dec
|
| 2011 |
Jan
(1) |
Feb
|
Mar
|
Apr
(4) |
May
(1) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
| 2012 |
Jan
(1) |
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
| 2013 |
Jan
|
Feb
|
Mar
(4) |
Apr
|
May
|
Jun
(1) |
Jul
|
Aug
|
Sep
(1) |
Oct
|
Nov
|
Dec
|
| S | M | T | W | T | F | S |
|---|---|---|---|---|---|---|
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
|
8
|
9
|
10
|
11
|
12
|
13
|
14
|
|
15
|
16
|
17
|
18
(6) |
19
(4) |
20
|
21
|
|
22
|
23
|
24
|
25
(1) |
26
|
27
|
28
|
|
29
|
30
|
31
|
|
|
|
|
|
From: <bru...@us...> - 2007-07-25 12:15:30
|
Revision: 291
http://gull.svn.sourceforge.net/gull/?rev=291&view=rev
Author: bruno_guerin
Date: 2007-07-25 05:15:27 -0700 (Wed, 25 Jul 2007)
Log Message:
-----------
FIX: memory overflow for L_Path
Modified Paths:
--------------
seagull/trunk/src/library-trans-octcap32/C_TransOCTcap32.cpp
Modified: seagull/trunk/src/library-trans-octcap32/C_TransOCTcap32.cpp
===================================================================
--- seagull/trunk/src/library-trans-octcap32/C_TransOCTcap32.cpp 2007-07-19 12:39:40 UTC (rev 290)
+++ seagull/trunk/src/library-trans-octcap32/C_TransOCTcap32.cpp 2007-07-25 12:15:27 UTC (rev 291)
@@ -458,7 +458,7 @@
char *L_Path = NULL ;
FILE *L_fp ;
- ALLOC_TABLE(L_Path, char*, sizeof(char), strlen(P_libName)+strlen(P_libPath)+1);
+ ALLOC_TABLE(L_Path, char*, sizeof(char), strlen(P_libName)+strlen(P_libPath)+2);
sprintf(L_Path,"%s/%s",P_libPath,P_libName);
if((L_fp = (fopen(L_Path,"rb"))) == NULL) {
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <aa...@us...> - 2007-07-19 12:39:38
|
Revision: 290
http://svn.sourceforge.net/gull/?rev=290&view=rev
Author: aajjan
Date: 2007-07-19 05:39:40 -0700 (Thu, 19 Jul 2007)
Log Message:
-----------
FIX: Memory Leak
Modified Paths:
--------------
seagull/trunk/src/library-trans-octcap32/C_TCAPCnxInfo.cpp
Modified: seagull/trunk/src/library-trans-octcap32/C_TCAPCnxInfo.cpp
===================================================================
--- seagull/trunk/src/library-trans-octcap32/C_TCAPCnxInfo.cpp 2007-07-19 12:38:38 UTC (rev 289)
+++ seagull/trunk/src/library-trans-octcap32/C_TCAPCnxInfo.cpp 2007-07-19 12:39:40 UTC (rev 290)
@@ -43,8 +43,7 @@
T_pCnxInfo L_CnxInfo = NULL ;
if (P_CnxInfo != NULL) {
L_CnxInfo = *P_CnxInfo ;
-
- FREE_VAR(L_CnxInfo->m_class_value);
+ FREE_TABLE(L_CnxInfo->m_class_value);
*P_CnxInfo = NULL ;
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <aa...@us...> - 2007-07-19 12:38:35
|
Revision: 289
http://svn.sourceforge.net/gull/?rev=289&view=rev
Author: aajjan
Date: 2007-07-19 05:38:38 -0700 (Thu, 19 Jul 2007)
Log Message:
-----------
FIX: Memory Leak
Modified Paths:
--------------
seagull/trunk/src/generator-core/main.cpp
Modified: seagull/trunk/src/generator-core/main.cpp
===================================================================
--- seagull/trunk/src/generator-core/main.cpp 2007-07-19 11:53:21 UTC (rev 288)
+++ seagull/trunk/src/generator-core/main.cpp 2007-07-19 12:38:38 UTC (rev 289)
@@ -207,7 +207,7 @@
destroy_cmd(L_cmd_line);
L_cmd_line->m_nb_args += 2 ;
- DELETE_VAR(L_cmd_line);
+ FREE_VAR(L_cmd_line);
// Close trace
close_trace () ;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <bru...@us...> - 2007-07-19 11:53:18
|
Revision: 288
http://svn.sourceforge.net/gull/?rev=288&view=rev
Author: bruno_guerin
Date: 2007-07-19 04:53:21 -0700 (Thu, 19 Jul 2007)
Log Message:
-----------
DOC: add Verdict trace level and Return Code signification
Modified Paths:
--------------
doc/trunk/src/documentation/content/xdocs/doc/core.xml
Modified: doc/trunk/src/documentation/content/xdocs/doc/core.xml
===================================================================
--- doc/trunk/src/documentation/content/xdocs/doc/core.xml 2007-07-19 08:17:18 UTC (rev 287)
+++ doc/trunk/src/documentation/content/xdocs/doc/core.xml 2007-07-19 11:53:21 UTC (rev 288)
@@ -1433,7 +1433,7 @@
<ul>
<li>1) <a href="#display-protocol-stat">display-protocol-stat</a>
<p>Setting this parameter to true enables the protocol statistics.
- If it is not set to true, you will not get any protocol statistics,
+ If it is not set to true, you will not get any protocol statistics at screen of in log files,
even if the following parameters are set.</p>
</li>
<li>2) <a href="#log-protocol-stat-period">log-protocol-stat-period</a>
@@ -1605,7 +1605,7 @@
<strong>W</strong>-Warnings - non blocking errors
<ul>
<li>No init scenario</li>
- <li>No more call context availables</li>
+ <li>No more call context availables</li>
</ul>
</li>
<li>
@@ -1621,6 +1621,16 @@
<li>
<strong>B</strong>-Buffer (hex dumps)</li>
<li>
+ <strong>V</strong>-Verdict (Trace the result of each call with its session-id in the log file) <br/>
+ If the call has no session id, no logs are traced.<br/>
+ Be awared that the session-id may not be unique in the log file.<br/>
+ The "Init" section is considered as a independant call.
+ <ul>
+ <li>passed : call is succesful</li>
+ <li>failed : call is failed</li>
+ </ul>
+ </li>
+ <li>
<strong>A</strong>-All</li>
<li>
<strong>N</strong>-None</li>
@@ -3433,6 +3443,15 @@
[ -notimelog ] no time stamp on the log (default time stamp)
[ -msgcheck ] check the field of the messages received (default no check)]]></source>
</section>
+ <section id="cli_return_code">
+ <title>Seagull return code</title>
+ <p>Seagull returns a global status of the calls through the return code:</p>
+ <ul>
+ <li> 0 : ok, seagull did not meet any problems and all calls finished well.</li>
+ <li> -1 : fatal error, seagull met a fatal error and stopped.</li>
+ <li> >1 : error, at least, one call failed ("Ignored" calls are not considered as failed; the init section is concidered as a independant call).</li>
+ </ul>
+ </section>
</section>
<section>
<title>Miscellaneous tools</title>
@@ -3444,5 +3463,6 @@
tool can be used to debug regular expressions (widely used in Seagull!).</li>
</ul>
</section>
+
</body>
</document>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <aa...@us...> - 2007-07-19 08:17:16
|
Revision: 287
http://svn.sourceforge.net/gull/?rev=287&view=rev
Author: aajjan
Date: 2007-07-19 01:17:18 -0700 (Thu, 19 Jul 2007)
Log Message:
-----------
FIX: coredump in configuration parameters
Modified Paths:
--------------
seagull/trunk/src/protocol-text/C_ProtocolText.cpp
Modified: seagull/trunk/src/protocol-text/C_ProtocolText.cpp
===================================================================
--- seagull/trunk/src/protocol-text/C_ProtocolText.cpp 2007-07-18 16:08:18 UTC (rev 286)
+++ seagull/trunk/src/protocol-text/C_ProtocolText.cpp 2007-07-19 08:17:18 UTC (rev 287)
@@ -1992,7 +1992,6 @@
}
if (L_new_buffer_body != NULL ) {
-
*L_value_body = valueFromString(L_new_buffer_body,
E_TYPE_STRING , L_result);
} else {
@@ -2296,9 +2295,9 @@
if ((L_pos + 2) <= (P_varibleString+L_size_buffer)) {
L_search = search_variable((L_pos + 2)) ;
if (L_search != NULL) {
- L_size_variable_config += strlen(L_search);
L_value_conf = find_config_value(L_search);
if (L_value_conf != NULL) {
+ L_size_variable_config += strlen(L_search);
L_size_value_config += strlen(L_value_conf);
}
L_ptr = L_pos + strlen(L_search) + 3 ;
@@ -2310,7 +2309,7 @@
} // while
L_ret = L_size_buffer - L_size_variable_config + L_size_value_config ;
}
-
+
GEN_DEBUG(1, "C_ProtocolText::calculate_size() end");
return (L_ret);
}
@@ -2349,7 +2348,6 @@
L_value_size+1);
memcpy(L_value, L_ptr, L_value_size);
L_value[L_value_size] = 0 ;
-
return (L_value);
}
@@ -2372,18 +2370,16 @@
L_size_end = L_size_buffer ;
ALLOC_TABLE(L_result,
char*,
- sizeof(char),
- P_size_config);
+ sizeof(char),
+ P_size_config+1);
L_new = L_result ;
-
while((L_ptr) && (L_pos = strstr(L_ptr,(char*)"$(")) != NULL) {
L_size = L_pos - L_ptr ;
if (L_size > 0) {
memcpy(L_new, L_ptr, L_size);
L_new += L_size ;
}
-
// test end needed ? for L_ptr
if ((L_pos + 2) <= (P_buffer+L_size_buffer)) {
L_search = search_variable((L_pos + 2)) ;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <bru...@us...> - 2007-07-18 16:08:23
|
Revision: 286
http://svn.sourceforge.net/gull/?rev=286&view=rev
Author: bruno_guerin
Date: 2007-07-18 09:08:18 -0700 (Wed, 18 Jul 2007)
Log Message:
-----------
Doc: Add radius-accounting scenario example
Added Paths:
-----------
doc/trunk/src/documentation/content/doc/radius-accounting.client.xml.html
Added: doc/trunk/src/documentation/content/doc/radius-accounting.client.xml.html
===================================================================
--- doc/trunk/src/documentation/content/doc/radius-accounting.client.xml.html (rev 0)
+++ doc/trunk/src/documentation/content/doc/radius-accounting.client.xml.html 2007-07-18 16:08:18 UTC (rev 286)
@@ -0,0 +1,156 @@
+<HTML>
+<HEAD>
+<TITLE>client.xml</TITLE>
+<STYLE TYPE="text/css"><!--
+.syntax0 {
+color: #000000;
+}
+.syntax1 {
+color: #cc0000;
+}
+.syntax2 {
+color: #ff8400;
+}
+.syntax3 {
+color: #6600cc;
+}
+.syntax4 {
+color: #cc6600;
+}
+.syntax5 {
+color: #ff0000;
+}
+.syntax6 {
+color: #9966ff;
+}
+.syntax7 {
+background: #ffffcc;
+color: #ff0066;
+}
+.syntax8 {
+color: #006699;
+font-weight: bold;
+}
+.syntax9 {
+color: #009966;
+font-weight: bold;
+}
+.syntax10 {
+color: #0099ff;
+font-weight: bold;
+}
+.syntax11 {
+color: #66ccff;
+font-weight: bold;
+}
+.syntax12 {
+color: #02b902;
+}
+.syntax13 {
+color: #ff00cc;
+}
+.syntax14 {
+color: #cc00cc;
+}
+.syntax15 {
+color: #9900cc;
+}
+.syntax16 {
+color: #6600cc;
+}
+.syntax17 {
+color: #0000ff;
+}
+.syntax18 {
+color: #000000;
+font-weight: bold;
+}
+.gutter {
+background: #dbdbdb;
+color: #000000;
+}
+.gutterH {
+background: #dbdbdb;
+color: #990066;
+}
+-->
+</STYLE>
+</HEAD>
+<BODY BGCOLOR="#FFFFFF">
+<PRE>
+<SPAN CLASS="gutter"> 1:</SPAN><SPAN CLASS="syntax10"><?</SPAN><SPAN CLASS="syntax10">xml</SPAN><SPAN CLASS="syntax10"> </SPAN><SPAN CLASS="syntax10">version="1.0"</SPAN><SPAN CLASS="syntax10"> </SPAN><SPAN CLASS="syntax10">encoding="ISO-8859-1"</SPAN><SPAN CLASS="syntax10"> </SPAN><SPAN CLASS="syntax10">?</SPAN><SPAN CLASS="syntax10">></SPAN>
+<SPAN CLASS="gutter"> 2:</SPAN><SPAN CLASS="syntax17"><</SPAN><SPAN CLASS="syntax17">scenario</SPAN><SPAN CLASS="syntax17">></SPAN>
+<SPAN CLASS="gutter"> 3:</SPAN><SPAN CLASS="syntax17"><</SPAN><SPAN CLASS="syntax17">scenario</SPAN><SPAN CLASS="syntax17">></SPAN>
+<SPAN CLASS="gutter"> 4:</SPAN><SPAN CLASS="syntax17"><</SPAN><SPAN CLASS="syntax17">counter</SPAN><SPAN CLASS="syntax17">></SPAN>
+<SPAN CLASS="gutterH"> 5:</SPAN> <SPAN CLASS="syntax17"><</SPAN><SPAN CLASS="syntax17">counterdef</SPAN><SPAN CLASS="syntax17"> </SPAN><SPAN CLASS="syntax17">name</SPAN><SPAN CLASS="syntax17">=</SPAN><SPAN CLASS="syntax13">"</SPAN><SPAN CLASS="syntax13">session-counter</SPAN><SPAN CLASS="syntax13">"</SPAN><SPAN CLASS="syntax17"> </SPAN><SPAN CLASS="syntax17"> </SPAN><SPAN CLASS="syntax17"> </SPAN><SPAN CLASS="syntax17"> </SPAN><SPAN CLASS="syntax17"> </SPAN><SPAN CLASS="syntax17">init</SPAN><SPAN CLASS="syntax17">=</SPAN><SPAN CLASS="syntax13">"</SPAN><SPAN CLASS="syntax13">0</SPAN><SPAN CLASS="syntax13">"</SPAN><SPAN CLASS="syntax17">></SPAN><SPAN CLASS="syntax17"><</SPAN><SPAN CLASS="syntax17">/</SPAN><SPAN CLASS="syntax17">counterdef</SPAN><SPAN CLASS="syntax17">></SPAN>
+<SPAN CLASS="gutter"> 6:</SPAN> <SPAN CLASS="syntax17"><</SPAN><SPAN CLASS="syntax17">counterdef</SPAN><SPAN CLASS="syntax17"> </SPAN><SPAN CLASS="syntax17">name</SPAN><SPAN CLASS="syntax17">=</SPAN><SPAN CLASS="syntax13">"</SPAN><SPAN CLASS="syntax13">identifier-counter</SPAN><SPAN CLASS="syntax13">"</SPAN><SPAN CLASS="syntax17"> </SPAN><SPAN CLASS="syntax17"> </SPAN><SPAN CLASS="syntax17">init</SPAN><SPAN CLASS="syntax17">=</SPAN><SPAN CLASS="syntax13">"</SPAN><SPAN CLASS="syntax13">0</SPAN><SPAN CLASS="syntax13">"</SPAN><SPAN CLASS="syntax17">></SPAN><SPAN CLASS="syntax17"><</SPAN><SPAN CLASS="syntax17">/</SPAN><SPAN CLASS="syntax17">counterdef</SPAN><SPAN CLASS="syntax17">></SPAN>
+<SPAN CLASS="gutter"> 7:</SPAN><SPAN CLASS="syntax17"><</SPAN><SPAN CLASS="syntax17">/</SPAN><SPAN CLASS="syntax17">counter</SPAN><SPAN CLASS="syntax17">></SPAN>
+<SPAN CLASS="gutter"> 8:</SPAN>
+<SPAN CLASS="gutter"> 9:</SPAN><SPAN CLASS="syntax17"><</SPAN><SPAN CLASS="syntax17">traffic</SPAN><SPAN CLASS="syntax17">></SPAN>
+<SPAN CLASS="gutterH"> 10:</SPAN> <SPAN CLASS="syntax17"><</SPAN><SPAN CLASS="syntax17">send</SPAN><SPAN CLASS="syntax17"> </SPAN><SPAN CLASS="syntax17">channel</SPAN><SPAN CLASS="syntax17">=</SPAN><SPAN CLASS="syntax13">"</SPAN><SPAN CLASS="syntax13">trans-ip-v4</SPAN><SPAN CLASS="syntax13">"</SPAN><SPAN CLASS="syntax17">></SPAN>
+<SPAN CLASS="gutter"> 11:</SPAN> <SPAN CLASS="syntax17"><</SPAN><SPAN CLASS="syntax17">action</SPAN><SPAN CLASS="syntax17">></SPAN>
+<SPAN CLASS="gutter"> 12:</SPAN> <SPAN CLASS="syntax17"><</SPAN><SPAN CLASS="syntax17">inc-counter</SPAN><SPAN CLASS="syntax17"> </SPAN><SPAN CLASS="syntax17">name</SPAN><SPAN CLASS="syntax17">=</SPAN><SPAN CLASS="syntax13">"</SPAN><SPAN CLASS="syntax13">session-counter</SPAN><SPAN CLASS="syntax13">"</SPAN><SPAN CLASS="syntax17">></SPAN><SPAN CLASS="syntax17"> </SPAN><SPAN CLASS="syntax17"> </SPAN><SPAN CLASS="syntax17"> </SPAN><SPAN CLASS="syntax17"><</SPAN><SPAN CLASS="syntax17">/</SPAN><SPAN CLASS="syntax17">inc-counter</SPAN><SPAN CLASS="syntax17">></SPAN>
+<SPAN CLASS="gutter"> 13:</SPAN> <SPAN CLASS="syntax17"><</SPAN><SPAN CLASS="syntax17">inc-counter</SPAN><SPAN CLASS="syntax17"> </SPAN><SPAN CLASS="syntax17">name</SPAN><SPAN CLASS="syntax17">=</SPAN><SPAN CLASS="syntax13">"</SPAN><SPAN CLASS="syntax13">identifier-counter</SPAN><SPAN CLASS="syntax13">"</SPAN><SPAN CLASS="syntax17">></SPAN><SPAN CLASS="syntax17"><</SPAN><SPAN CLASS="syntax17">/</SPAN><SPAN CLASS="syntax17">inc-counter</SPAN><SPAN CLASS="syntax17">></SPAN>
+<SPAN CLASS="gutter"> 14:</SPAN> <SPAN CLASS="syntax17"><</SPAN><SPAN CLASS="syntax17">set-value</SPAN><SPAN CLASS="syntax17"> </SPAN><SPAN CLASS="syntax17">name</SPAN><SPAN CLASS="syntax17">=</SPAN><SPAN CLASS="syntax13">"</SPAN><SPAN CLASS="syntax13">Acct-Session-Id</SPAN><SPAN CLASS="syntax13">"</SPAN><SPAN CLASS="syntax17"> </SPAN><SPAN CLASS="syntax17">format</SPAN><SPAN CLASS="syntax17">=</SPAN><SPAN CLASS="syntax13">"</SPAN><SPAN CLASS="syntax13">$(session-counter)</SPAN><SPAN CLASS="syntax13">"</SPAN><SPAN CLASS="syntax17">></SPAN><SPAN CLASS="syntax17"> </SPAN><SPAN CLASS="syntax17"> </SPAN><SPAN CLASS="syntax17"> </SPAN><SPAN CLASS="syntax17"><</SPAN><SPAN CLASS="syntax17">/</SPAN><SPAN CLASS="syntax17">set-value</SPAN><SPAN CLASS="syntax17">></SPAN>
+<SPAN CLASS="gutterH"> 15:</SPAN> <SPAN CLASS="syntax17"><</SPAN><SPAN CLASS="syntax17">set-value</SPAN><SPAN CLASS="syntax17"> </SPAN><SPAN CLASS="syntax17">name</SPAN><SPAN CLASS="syntax17">=</SPAN><SPAN CLASS="syntax13">"</SPAN><SPAN CLASS="syntax13">Identifier</SPAN><SPAN CLASS="syntax13">"</SPAN><SPAN CLASS="syntax17"> </SPAN><SPAN CLASS="syntax17"> </SPAN><SPAN CLASS="syntax17"> </SPAN><SPAN CLASS="syntax17"> </SPAN><SPAN CLASS="syntax17"> </SPAN><SPAN CLASS="syntax17"> </SPAN><SPAN CLASS="syntax17">format</SPAN><SPAN CLASS="syntax17">=</SPAN><SPAN CLASS="syntax13">"</SPAN><SPAN CLASS="syntax13">$(identifier-counter)</SPAN><SPAN CLASS="syntax13">"</SPAN><SPAN CLASS="syntax17">></SPAN><SPAN CLASS="syntax17"><</SPAN><SPAN CLASS="syntax17">/</SPAN><SPAN CLASS="syntax17">set-value</SPAN><SPAN CLASS="syntax17">></SPAN>
+<SPAN CLASS="gutter"> 16:</SPAN> <SPAN CLASS="syntax17"><</SPAN><SPAN CLASS="syntax17">restore-from-external</SPAN><SPAN CLASS="syntax17"> </SPAN><SPAN CLASS="syntax17">field</SPAN><SPAN CLASS="syntax17">=</SPAN><SPAN CLASS="syntax13">"</SPAN><SPAN CLASS="syntax13">0</SPAN><SPAN CLASS="syntax13">"</SPAN><SPAN CLASS="syntax17"> </SPAN><SPAN CLASS="syntax17">entity</SPAN><SPAN CLASS="syntax17">=</SPAN><SPAN CLASS="syntax13">"</SPAN><SPAN CLASS="syntax13">Authenticator</SPAN><SPAN CLASS="syntax13">"</SPAN><SPAN CLASS="syntax17">></SPAN><SPAN CLASS="syntax17"><</SPAN><SPAN CLASS="syntax17">/</SPAN><SPAN CLASS="syntax17">restore-from-external</SPAN><SPAN CLASS="syntax17">></SPAN>
+<SPAN CLASS="gutter"> 17:</SPAN> <SPAN CLASS="syntax17"><</SPAN><SPAN CLASS="syntax17">/</SPAN><SPAN CLASS="syntax17">action</SPAN><SPAN CLASS="syntax17">></SPAN>
+<SPAN CLASS="gutter"> 18:</SPAN>
+<SPAN CLASS="gutter"> 19:</SPAN> <SPAN CLASS="syntax17"><</SPAN><SPAN CLASS="syntax17">Message</SPAN><SPAN CLASS="syntax17"> </SPAN><SPAN CLASS="syntax17">name</SPAN><SPAN CLASS="syntax17">=</SPAN><SPAN CLASS="syntax13">"</SPAN><SPAN CLASS="syntax13">Accounting-Request</SPAN><SPAN CLASS="syntax13">"</SPAN><SPAN CLASS="syntax17">></SPAN>
+<SPAN CLASS="gutterH"> 20:</SPAN> <SPAN CLASS="syntax17"><</SPAN><SPAN CLASS="syntax17">Attribute</SPAN><SPAN CLASS="syntax17"> </SPAN><SPAN CLASS="syntax17">name</SPAN><SPAN CLASS="syntax17">=</SPAN><SPAN CLASS="syntax13">"</SPAN><SPAN CLASS="syntax13">Acct-Session-Id</SPAN><SPAN CLASS="syntax13">"</SPAN><SPAN CLASS="syntax17"> <SPAN CLASS="syntax17"> </SPAN><SPAN CLASS="syntax17">value</SPAN><SPAN CLASS="syntax17">=</SPAN><SPAN CLASS="syntax13">"</SPAN><SPAN CLASS="syntax13">value_is_replaced</SPAN><SPAN CLASS="syntax13">"</SPAN><SPAN CLASS="syntax17">></SPAN><SPAN CLASS="syntax17"><</SPAN><SPAN CLASS="syntax17">/</SPAN><SPAN CLASS="syntax17">Attribute</SPAN><SPAN CLASS="syntax17">></SPAN>
+<SPAN CLASS="gutter"> 21:</SPAN> <SPAN CLASS="syntax17"><</SPAN><SPAN CLASS="syntax17">Attribute</SPAN><SPAN CLASS="syntax17"> </SPAN><SPAN CLASS="syntax17">name</SPAN><SPAN CLASS="syntax17">=</SPAN><SPAN CLASS="syntax13">"</SPAN><SPAN CLASS="syntax13">Acct-Status-Type</SPAN><SPAN CLASS="syntax13">"</SPAN><SPAN CLASS="syntax17"> </SPAN><SPAN CLASS="syntax17">value</SPAN><SPAN CLASS="syntax17">=</SPAN><SPAN CLASS="syntax13">"</SPAN><SPAN CLASS="syntax13">1</SPAN><SPAN CLASS="syntax13">"</SPAN><SPAN CLASS="syntax17"> </SPAN><SPAN CLASS="syntax17"> </SPAN><SPAN CLASS="syntax17"> </SPAN><SPAN CLASS="syntax17"> </SPAN><SPAN CLASS="syntax17"> </SPAN><SPAN CLASS="syntax17"> </SPAN><SPAN CLASS="syntax17"> </SPAN><SPAN CLASS="syntax17"> </SPAN><SPAN CLASS="syntax17"> </SPAN><SPAN CLASS="syntax17"> </SPAN><SPAN CLASS="syntax17"> </SPAN><SPAN CLASS="syntax17"> </SPAN><SPAN CLASS="syntax17"> </SPAN><SPAN CLASS="syntax17"> </SPAN><SPAN CLASS="syntax17"> </SPAN><SPAN CLASS="syntax17"> </SPAN><SPAN CLASS="syntax17">></SPAN><SPAN CLASS="syntax17"><</SPAN><SPAN CLASS="syntax17">/</SPAN><SPAN CLASS="syntax17">Attribute</SPAN><SPAN CLASS="syntax17">></SPAN>
+<SPAN CLASS="gutter"> 22:</SPAN> <SPAN CLASS="syntax17"><</SPAN><SPAN CLASS="syntax17">Attribute</SPAN><SPAN CLASS="syntax17"> </SPAN><SPAN CLASS="syntax17">name</SPAN><SPAN CLASS="syntax17">=</SPAN><SPAN CLASS="syntax13">"</SPAN><SPAN CLASS="syntax13">NAS-Identifier</SPAN><SPAN CLASS="syntax13">"</SPAN><SPAN CLASS="syntax17"> </SPAN><SPAN CLASS="syntax17"> </SPAN><SPAN CLASS="syntax17"> </SPAN><SPAN CLASS="syntax17">value</SPAN><SPAN CLASS="syntax17">=</SPAN><SPAN CLASS="syntax13">"</SPAN><SPAN CLASS="syntax13">ims.hpintelco.org</SPAN><SPAN CLASS="syntax13">"</SPAN><SPAN CLASS="syntax17">></SPAN><SPAN CLASS="syntax17"><</SPAN><SPAN CLASS="syntax17">/</SPAN><SPAN CLASS="syntax17">Attribute</SPAN><SPAN CLASS="syntax17">></SPAN>
+<SPAN CLASS="gutter"> 23:</SPAN> <SPAN CLASS="syntax17"><</SPAN><SPAN CLASS="syntax17">/</SPAN><SPAN CLASS="syntax17">Message</SPAN><SPAN CLASS="syntax17">></SPAN>
+<SPAN CLASS="gutter"> 24:</SPAN>
+<SPAN CLASS="gutterH"> 25:</SPAN> <SPAN CLASS="syntax17"><</SPAN><SPAN CLASS="syntax17">action</SPAN><SPAN CLASS="syntax17">></SPAN>
+<SPAN CLASS="gutter"> 26:</SPAN> <SPAN CLASS="syntax17"><</SPAN><SPAN CLASS="syntax17">store</SPAN><SPAN CLASS="syntax17"> </SPAN><SPAN CLASS="syntax17">name</SPAN><SPAN CLASS="syntax17">=</SPAN><SPAN CLASS="syntax13">"</SPAN><SPAN CLASS="syntax13">ACCT_SES_ID</SPAN><SPAN CLASS="syntax13">"</SPAN><SPAN CLASS="syntax17">entity</SPAN><SPAN CLASS="syntax17">=</SPAN><SPAN CLASS="syntax13">"</SPAN><SPAN CLASS="syntax13">Acct-Session-Id</SPAN><SPAN CLASS="syntax13">"<SPAN CLASS="syntax17">></SPAN><SPAN CLASS="syntax17"><</SPAN><SPAN CLASS="syntax17">/</SPAN><SPAN CLASS="syntax17">store</SPAN><SPAN CLASS="syntax17">></SPAN>
+<SPAN CLASS="gutter"> 27:</SPAN> <SPAN CLASS="syntax17"><</SPAN><SPAN CLASS="syntax17">start-timer</SPAN><SPAN CLASS="syntax17">></SPAN><SPAN CLASS="syntax17"><</SPAN><SPAN CLASS="syntax17">/</SPAN><SPAN CLASS="syntax17">start-timer</SPAN><SPAN CLASS="syntax17">></SPAN>
+<SPAN CLASS="gutter"> 28:</SPAN> <SPAN CLASS="syntax17"><</SPAN><SPAN CLASS="syntax17">/</SPAN><SPAN CLASS="syntax17">action</SPAN><SPAN CLASS="syntax17">></SPAN>
+<SPAN CLASS="gutter"> 29:</SPAN> <SPAN CLASS="syntax17"><</SPAN><SPAN CLASS="syntax17">/</SPAN><SPAN CLASS="syntax17">send</SPAN><SPAN CLASS="syntax17">></SPAN>
+<SPAN CLASS="gutterH"> 30:</SPAN>
+<SPAN CLASS="gutter"> 31:</SPAN> <SPAN CLASS="syntax17"><</SPAN><SPAN CLASS="syntax17">receive</SPAN><SPAN CLASS="syntax17"> </SPAN><SPAN CLASS="syntax17">channel</SPAN><SPAN CLASS="syntax17">=</SPAN><SPAN CLASS="syntax13">"</SPAN><SPAN CLASS="syntax13">trans-ip-v4</SPAN><SPAN CLASS="syntax13">"</SPAN><SPAN CLASS="syntax17">></SPAN>
+<SPAN CLASS="gutter"> 32:</SPAN> <SPAN CLASS="syntax17"><</SPAN><SPAN CLASS="syntax17">action</SPAN><SPAN CLASS="syntax17">></SPAN>
+<SPAN CLASS="gutter"> 33:</SPAN> <SPAN CLASS="syntax17"><</SPAN><SPAN CLASS="syntax17">stop-timer</SPAN><SPAN CLASS="syntax17">></SPAN><SPAN CLASS="syntax17"><</SPAN><SPAN CLASS="syntax17">/</SPAN><SPAN CLASS="syntax17">stop-timer</SPAN><SPAN CLASS="syntax17">></SPAN>
+<SPAN CLASS="gutter"> 34:</SPAN> <SPAN CLASS="syntax17"><</SPAN><SPAN CLASS="syntax17">/</SPAN><SPAN CLASS="syntax17">action</SPAN><SPAN CLASS="syntax17">></SPAN>
+<SPAN CLASS="gutterH"> 35:</SPAN> <SPAN CLASS="syntax17"><</SPAN><SPAN CLASS="syntax17">Message</SPAN><SPAN CLASS="syntax17"> </SPAN><SPAN CLASS="syntax17">name</SPAN><SPAN CLASS="syntax17">=</SPAN><SPAN CLASS="syntax13">"</SPAN><SPAN CLASS="syntax13">Accounting-Response</SPAN><SPAN CLASS="syntax13">"</SPAN><SPAN CLASS="syntax17"> </SPAN>
+<SPAN CLASS="gutter"> 36:</SPAN> <SPAN CLASS="syntax17"><</SPAN><SPAN CLASS="syntax17">Attribute</SPAN><SPAN CLASS="syntax17"> </SPAN><SPAN CLASS="syntax17">name</SPAN><SPAN CLASS="syntax17">=</SPAN><SPAN CLASS="syntax13">"</SPAN><SPAN CLASS="syntax13">Acct-Session-Id</SPAN><SPAN CLASS="syntax13">"</SPAN><SPAN CLASS="syntax17"> </SPAN><SPAN CLASS="syntax17">value</SPAN><SPAN CLASS="syntax17">=</SPAN><SPAN CLASS="syntax13">"</SPAN><SPAN CLASS="syntax13">na</SPAN><SPAN CLASS="syntax13">"</SPAN><SPAN CLASS="syntax17">></SPAN><SPAN CLASS="syntax17"><</SPAN><SPAN CLASS="syntax17">/</SPAN><SPAN CLASS="syntax17">Attribute</SPAN><SPAN CLASS="syntax17">></SPAN>
+<SPAN CLASS="gutter"> 37:</SPAN> <SPAN CLASS="syntax17"><</SPAN><SPAN CLASS="syntax17">Attribute</SPAN><SPAN CLASS="syntax17"> </SPAN><SPAN CLASS="syntax17">name</SPAN><SPAN CLASS="syntax17">=</SPAN><SPAN CLASS="syntax13">"</SPAN><SPAN CLASS="syntax13">Acct-Status-Type</SPAN><SPAN CLASS="syntax13">"</SPAN><SPAN CLASS="syntax17"> </SPAN><SPAN CLASS="syntax17">value</SPAN><SPAN CLASS="syntax17">=</SPAN><SPAN CLASS="syntax13">"</SPAN><SPAN CLASS="syntax13">1</SPAN><SPAN CLASS="syntax13">"</SPAN><SPAN CLASS="syntax17">></SPAN><SPAN CLASS="syntax17"><</SPAN><SPAN CLASS="syntax17">/</SPAN><SPAN CLASS="syntax17">Attribute</SPAN><SPAN CLASS="syntax17">></SPAN>
+<SPAN CLASS="gutter"> 38:</SPAN> <SPAN CLASS="syntax17"><</SPAN><SPAN CLASS="syntax17">/</SPAN><SPAN CLASS="syntax17">Message</SPAN><SPAN CLASS="syntax17">></SPAN>
+<SPAN CLASS="gutter"> 39:</SPAN> <SPAN CLASS="syntax17"><</SPAN><SPAN CLASS="syntax17">/</SPAN><SPAN CLASS="syntax17">receive</SPAN><SPAN CLASS="syntax17">></SPAN>
+<SPAN CLASS="gutterH"> 40:</SPAN>
+<SPAN CLASS="gutter"> 41:</SPAN> <SPAN CLASS="syntax17"><</SPAN><SPAN CLASS="syntax17">wait-ms</SPAN><SPAN CLASS="syntax17"> </SPAN><SPAN CLASS="syntax17">value</SPAN><SPAN CLASS="syntax17">=</SPAN><SPAN CLASS="syntax13">"</SPAN><SPAN CLASS="syntax13">500</SPAN><SPAN CLASS="syntax13">"</SPAN><SPAN CLASS="syntax17">></SPAN><SPAN CLASS="syntax17"><</SPAN><SPAN CLASS="syntax17">/</SPAN><SPAN CLASS="syntax17">wait-ms</SPAN><SPAN CLASS="syntax17">></SPAN>
+<SPAN CLASS="gutter"> 42:</SPAN>
+<SPAN CLASS="gutter"> 43:</SPAN> <SPAN CLASS="syntax17"><</SPAN><SPAN CLASS="syntax17">send</SPAN><SPAN CLASS="syntax17"> </SPAN><SPAN CLASS="syntax17">channel</SPAN><SPAN CLASS="syntax17">=</SPAN><SPAN CLASS="syntax13">"</SPAN><SPAN CLASS="syntax13">trans-ip-v4</SPAN><SPAN CLASS="syntax13">"</SPAN><SPAN CLASS="syntax17">></SPAN>
+<SPAN CLASS="gutter"> 44:</SPAN> <SPAN CLASS="syntax17"><</SPAN><SPAN CLASS="syntax17">action</SPAN><SPAN CLASS="syntax17">></SPAN>
+<SPAN CLASS="gutterH"> 45:</SPAN> <SPAN CLASS="syntax17"><</SPAN><SPAN CLASS="syntax17">inc-counter</SPAN><SPAN CLASS="syntax17"> </SPAN><SPAN CLASS="syntax17">name</SPAN><SPAN CLASS="syntax17">=</SPAN><SPAN CLASS="syntax13">"</SPAN><SPAN CLASS="syntax13">session-counter</SPAN><SPAN CLASS="syntax13">"</SPAN><SPAN CLASS="syntax17">></SPAN><SPAN CLASS="syntax17"> </SPAN><SPAN CLASS="syntax17"> </SPAN><SPAN CLASS="syntax17"> </SPAN><SPAN CLASS="syntax17"><</SPAN><SPAN CLASS="syntax17">/</SPAN><SPAN CLASS="syntax17">inc-counter</SPAN><SPAN CLASS="syntax17">></SPAN>
+<SPAN CLASS="gutter"> 46:</SPAN> <SPAN CLASS="syntax17"><</SPAN><SPAN CLASS="syntax17">set-value</SPAN><SPAN CLASS="syntax17"> </SPAN><SPAN CLASS="syntax17">name</SPAN><SPAN CLASS="syntax17">=</SPAN><SPAN CLASS="syntax13">"</SPAN><SPAN CLASS="syntax13">Acct-Session-Id</SPAN><SPAN CLASS="syntax13">"</SPAN><SPAN CLASS="syntax17"> </SPAN><SPAN CLASS="syntax17">format</SPAN><SPAN CLASS="syntax17">=</SPAN><SPAN CLASS="syntax13">"</SPAN><SPAN CLASS="syntax13">$(session-counter)</SPAN><SPAN CLASS="syntax13">"</SPAN><SPAN CLASS="syntax17">></SPAN><SPAN CLASS="syntax17"> </SPAN><SPAN CLASS="syntax17"> </SPAN><SPAN CLASS="syntax17"> </SPAN><SPAN CLASS="syntax17"><</SPAN><SPAN CLASS="syntax17">/</SPAN><SPAN CLASS="syntax17">set-value</SPAN><SPAN CLASS="syntax17">></SPAN>
+<SPAN CLASS="gutter"> 47:</SPAN> <SPAN CLASS="syntax17"><</SPAN><SPAN CLASS="syntax17">restore-from-external</SPAN><SPAN CLASS="syntax17"> </SPAN><SPAN CLASS="syntax17">field</SPAN><SPAN CLASS="syntax17">=</SPAN><SPAN CLASS="syntax13">"</SPAN><SPAN CLASS="syntax13">1</SPAN><SPAN CLASS="syntax13">"</SPAN><SPAN CLASS="syntax17"> </SPAN><SPAN CLASS="syntax17">entity</SPAN><SPAN CLASS="syntax17">=</SPAN><SPAN CLASS="syntax13">"</SPAN><SPAN CLASS="syntax13">Authenticator</SPAN><SPAN CLASS="syntax13">"</SPAN><SPAN CLASS="syntax17">></SPAN><SPAN CLASS="syntax17"><</SPAN><SPAN CLASS="syntax17">/</SPAN><SPAN CLASS="syntax17">restore-from-external</SPAN><SPAN CLASS="syntax17">></SPAN>
+<SPAN CLASS="gutter"> 48:</SPAN> <SPAN CLASS="syntax17"><</SPAN><SPAN CLASS="syntax17">/</SPAN><SPAN CLASS="syntax17">action</SPAN><SPAN CLASS="syntax17">></SPAN>
+<SPAN CLASS="gutter"> 49:</SPAN>
+<SPAN CLASS="gutterH"> 50:</SPAN> <SPAN CLASS="syntax17"><</SPAN><SPAN CLASS="syntax17">Message</SPAN><SPAN CLASS="syntax17"> </SPAN><SPAN CLASS="syntax17">name</SPAN><SPAN CLASS="syntax17">=</SPAN><SPAN CLASS="syntax13">"</SPAN><SPAN CLASS="syntax13">Accounting-Request</SPAN><SPAN CLASS="syntax13">"</SPAN><SPAN CLASS="syntax17">></SPAN>
+<SPAN CLASS="gutter"> 51:</SPAN> <SPAN CLASS="syntax17"><</SPAN><SPAN CLASS="syntax17">Attribute</SPAN><SPAN CLASS="syntax17"> </SPAN><SPAN CLASS="syntax17">name</SPAN><SPAN CLASS="syntax17">=</SPAN><SPAN CLASS="syntax13">"</SPAN><SPAN CLASS="syntax13">Acct-Session-Id</SPAN><SPAN CLASS="syntax13">"</SPAN><SPAN CLASS="syntax17"> <SPAN CLASS="syntax17"> </SPAN><SPAN CLASS="syntax17">value</SPAN><SPAN CLASS="syntax17">=</SPAN><SPAN CLASS="syntax13">"</SPAN><SPAN CLASS="syntax13">value_is_replaced</SPAN><SPAN CLASS="syntax13">"</SPAN><SPAN CLASS="syntax17">></SPAN><SPAN CLASS="syntax17"><</SPAN><SPAN CLASS="syntax17">/</SPAN><SPAN CLASS="syntax17">Attribute</SPAN><SPAN CLASS="syntax17">></SPAN>
+<SPAN CLASS="gutter"> 52:</SPAN> <SPAN CLASS="syntax17"><</SPAN><SPAN CLASS="syntax17">Attribute</SPAN><SPAN CLASS="syntax17"> </SPAN><SPAN CLASS="syntax17">name</SPAN><SPAN CLASS="syntax17">=</SPAN><SPAN CLASS="syntax13">"</SPAN><SPAN CLASS="syntax13">Acct-Status-Type</SPAN><SPAN CLASS="syntax13">"</SPAN><SPAN CLASS="syntax17"> </SPAN><SPAN CLASS="syntax17">value</SPAN><SPAN CLASS="syntax17">=</SPAN><SPAN CLASS="syntax13">"</SPAN><SPAN CLASS="syntax13">2</SPAN><SPAN CLASS="syntax13">"</SPAN><SPAN CLASS="syntax17"> </SPAN><SPAN CLASS="syntax17"> </SPAN><SPAN CLASS="syntax17"> </SPAN><SPAN CLASS="syntax17"> </SPAN><SPAN CLASS="syntax17"> </SPAN><SPAN CLASS="syntax17"> </SPAN><SPAN CLASS="syntax17"> </SPAN><SPAN CLASS="syntax17"> </SPAN><SPAN CLASS="syntax17"> </SPAN><SPAN CLASS="syntax17"> </SPAN><SPAN CLASS="syntax17"> </SPAN><SPAN CLASS="syntax17"> </SPAN><SPAN CLASS="syntax17"> </SPAN><SPAN CLASS="syntax17"> </SPAN><SPAN CLASS="syntax17"> </SPAN><SPAN CLASS="syntax17"> </SPAN><SPAN CLASS="syntax17">></SPAN><SPAN CLASS="syntax17"><</SPAN><SPAN CLASS="syntax17">/</SPAN><SPAN CLASS="syntax17">Attribute</SPAN><SPAN CLASS="syntax17">></SPAN>
+<SPAN CLASS="gutter"> 53:</SPAN> <SPAN CLASS="syntax17"><</SPAN><SPAN CLASS="syntax17">Attribute</SPAN><SPAN CLASS="syntax17"> </SPAN><SPAN CLASS="syntax17">name</SPAN><SPAN CLASS="syntax17">=</SPAN><SPAN CLASS="syntax13">"</SPAN><SPAN CLASS="syntax13">NAS-Identifier</SPAN><SPAN CLASS="syntax13">"</SPAN><SPAN CLASS="syntax17"> </SPAN><SPAN CLASS="syntax17"> </SPAN><SPAN CLASS="syntax17"> </SPAN><SPAN CLASS="syntax17">value</SPAN><SPAN CLASS="syntax17">=</SPAN><SPAN CLASS="syntax13">"</SPAN><SPAN CLASS="syntax13">ims.hpintelco.org</SPAN><SPAN CLASS="syntax13">"</SPAN><SPAN CLASS="syntax17">></SPAN><SPAN CLASS="syntax17"><</SPAN><SPAN CLASS="syntax17">/</SPAN><SPAN CLASS="syntax17">Attribute</SPAN><SPAN CLASS="syntax17">></SPAN>
+<SPAN CLASS="gutter"> 54:</SPAN> <SPAN CLASS="syntax17"><</SPAN><SPAN CLASS="syntax17">/</SPAN><SPAN CLASS="syntax17">Message</SPAN><SPAN CLASS="syntax17">></SPAN>
+<SPAN CLASS="gutterH"> 55:</SPAN>
+<SPAN CLASS="gutter"> 56:</SPAN> <SPAN CLASS="syntax17"><</SPAN><SPAN CLASS="syntax17">action</SPAN><SPAN CLASS="syntax17">></SPAN>
+<SPAN CLASS="gutter"> 57:</SPAN> <SPAN CLASS="syntax17"><</SPAN><SPAN CLASS="syntax17">store</SPAN><SPAN CLASS="syntax17"> </SPAN><SPAN CLASS="syntax17">name</SPAN><SPAN CLASS="syntax17">=</SPAN><SPAN CLASS="syntax13">"</SPAN><SPAN CLASS="syntax13">ACCT_SES_ID</SPAN><SPAN CLASS="syntax13">"</SPAN><SPAN CLASS="syntax17">entity</SPAN><SPAN CLASS="syntax17">=</SPAN><SPAN CLASS="syntax13">"</SPAN><SPAN CLASS="syntax13">Acct-Session-Id</SPAN><SPAN CLASS="syntax13">"<SPAN CLASS="syntax17">></SPAN><SPAN CLASS="syntax17"><</SPAN><SPAN CLASS="syntax17">/</SPAN><SPAN CLASS="syntax17">store</SPAN><SPAN CLASS="syntax17">></SPAN>
+<SPAN CLASS="gutter"> 58:</SPAN> <SPAN CLASS="syntax17"><</SPAN><SPAN CLASS="syntax17">start-timer</SPAN><SPAN CLASS="syntax17">></SPAN><SPAN CLASS="syntax17"><</SPAN><SPAN CLASS="syntax17">/</SPAN><SPAN CLASS="syntax17">start-timer</SPAN><SPAN CLASS="syntax17">></SPAN>
+<SPAN CLASS="gutter"> 59:</SPAN> <SPAN CLASS="syntax17"><</SPAN><SPAN CLASS="syntax17">/</SPAN><SPAN CLASS="syntax17">action</SPAN><SPAN CLASS="syntax17">></SPAN>
+<SPAN CLASS="gutterH"> 60:</SPAN> <SPAN CLASS="syntax17"><</SPAN><SPAN CLASS="syntax17">/</SPAN><SPAN CLASS="syntax17">send</SPAN><SPAN CLASS="syntax17">></SPAN>
+<SPAN CLASS="gutter"> 61:</SPAN>
+<SPAN CLASS="gutter"> 62:</SPAN> <SPAN CLASS="syntax17"><</SPAN><SPAN CLASS="syntax17">receive</SPAN><SPAN CLASS="syntax17"> </SPAN><SPAN CLASS="syntax17">channel</SPAN><SPAN CLASS="syntax17">=</SPAN><SPAN CLASS="syntax13">"</SPAN><SPAN CLASS="syntax13">trans-ip-v4</SPAN><SPAN CLASS="syntax13">"</SPAN><SPAN CLASS="syntax17">></SPAN>
+<SPAN CLASS="gutter"> 63:</SPAN> <SPAN CLASS="syntax17"><</SPAN><SPAN CLASS="syntax17">action</SPAN><SPAN CLASS="syntax17">></SPAN>
+<SPAN CLASS="gutter"> 64:</SPAN> <SPAN CLASS="syntax17"><</SPAN><SPAN CLASS="syntax17">stop-timer</SPAN><SPAN CLASS="syntax17">></SPAN><SPAN CLASS="syntax17"><</SPAN><SPAN CLASS="syntax17">/</SPAN><SPAN CLASS="syntax17">stop-timer</SPAN><SPAN CLASS="syntax17">></SPAN>
+<SPAN CLASS="gutterH"> 65:</SPAN> <SPAN CLASS="syntax17"><</SPAN><SPAN CLASS="syntax17">/</SPAN><SPAN CLASS="syntax17">action</SPAN><SPAN CLASS="syntax17">></SPAN>
+<SPAN CLASS="gutter"> 66:</SPAN> <SPAN CLASS="syntax17"><</SPAN><SPAN CLASS="syntax17">Message</SPAN><SPAN CLASS="syntax17"> </SPAN><SPAN CLASS="syntax17">name</SPAN><SPAN CLASS="syntax17">=</SPAN><SPAN CLASS="syntax13">"</SPAN><SPAN CLASS="syntax13">Accounting-Response</SPAN><SPAN CLASS="syntax13">"</SPAN><SPAN CLASS="syntax17"> </SPAN>
+<SPAN CLASS="gutter"> 67:</SPAN> <SPAN CLASS="syntax17"><</SPAN><SPAN CLASS="syntax17">Attribute</SPAN><SPAN CLASS="syntax17"> </SPAN><SPAN CLASS="syntax17">name</SPAN><SPAN CLASS="syntax17">=</SPAN><SPAN CLASS="syntax13">"</SPAN><SPAN CLASS="syntax13">Acct-Session-Id</SPAN><SPAN CLASS="syntax13">"</SPAN><SPAN CLASS="syntax17"> </SPAN><SPAN CLASS="syntax17">value</SPAN><SPAN CLASS="syntax17">=</SPAN><SPAN CLASS="syntax13">"</SPAN><SPAN CLASS="syntax13">na</SPAN><SPAN CLASS="syntax13">"</SPAN><SPAN CLASS="syntax17">></SPAN><SPAN CLASS="syntax17"><</SPAN><SPAN CLASS="syntax17">/</SPAN><SPAN CLASS="syntax17">Attribute</SPAN><SPAN CLASS="syntax17">></SPAN>
+<SPAN CLASS="gutter"> 68:</SPAN> <SPAN CLASS="syntax17"><</SPAN><SPAN CLASS="syntax17">Attribute</SPAN><SPAN CLASS="syntax17"> </SPAN><SPAN CLASS="syntax17">name</SPAN><SPAN CLASS="syntax17">=</SPAN><SPAN CLASS="syntax13">"</SPAN><SPAN CLASS="syntax13">Acct-Status-Type</SPAN><SPAN CLASS="syntax13">"</SPAN><SPAN CLASS="syntax17"> </SPAN><SPAN CLASS="syntax17">value</SPAN><SPAN CLASS="syntax17">=</SPAN><SPAN CLASS="syntax13">"</SPAN><SPAN CLASS="syntax13">2</SPAN><SPAN CLASS="syntax13">"</SPAN><SPAN CLASS="syntax17">></SPAN><SPAN CLASS="syntax17"><</SPAN><SPAN CLASS="syntax17">/</SPAN><SPAN CLASS="syntax17">Attribute</SPAN><SPAN CLASS="syntax17">></SPAN>
+<SPAN CLASS="gutter"> 69:</SPAN> <SPAN CLASS="syntax17"><</SPAN><SPAN CLASS="syntax17">/</SPAN><SPAN CLASS="syntax17">Message</SPAN><SPAN CLASS="syntax17">></SPAN>
+<SPAN CLASS="gutterH"> 70:</SPAN> <SPAN CLASS="syntax17"><</SPAN><SPAN CLASS="syntax17">/</SPAN><SPAN CLASS="syntax17">receive</SPAN><SPAN CLASS="syntax17">></SPAN>
+<SPAN CLASS="gutter"> 71:</SPAN>
+<SPAN CLASS="gutter"> 72:</SPAN><SPAN CLASS="syntax17"><</SPAN><SPAN CLASS="syntax17">/</SPAN><SPAN CLASS="syntax17">traffic</SPAN><SPAN CLASS="syntax17">></SPAN>
+<SPAN CLASS="gutter"> 73:</SPAN>
+<SPAN CLASS="gutter"> 74:</SPAN><SPAN CLASS="syntax17"><</SPAN><SPAN CLASS="syntax17">/</SPAN><SPAN CLASS="syntax17">scenario</SPAN><SPAN CLASS="syntax17">></SPAN>
+</PRE></BODY>
+</HTML>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <bru...@us...> - 2007-07-18 16:02:37
|
Revision: 285
http://svn.sourceforge.net/gull/?rev=285&view=rev
Author: bruno_guerin
Date: 2007-07-18 09:02:31 -0700 (Wed, 18 Jul 2007)
Log Message:
-----------
DOC: Add warning about timers imbrication
Modified Paths:
--------------
doc/trunk/src/documentation/content/xdocs/doc/core.xml
Modified: doc/trunk/src/documentation/content/xdocs/doc/core.xml
===================================================================
--- doc/trunk/src/documentation/content/xdocs/doc/core.xml 2007-07-18 14:27:40 UTC (rev 284)
+++ doc/trunk/src/documentation/content/xdocs/doc/core.xml 2007-07-18 16:02:31 UTC (rev 285)
@@ -976,6 +976,8 @@
with the content of "MYVAR".
</li>
</ul>
+ <warning>As init section and traffic section are hold as different calls, do not store a
+ value in the init section to restore it in the traffic section.</warning>
</section>
</section>
<section id="control">
@@ -1314,6 +1316,26 @@
<a href="#action_start-timer"><![CDATA[<start-timer>]]></a> and
<a href="#action_stop-timer"><![CDATA[<stop-timer>]]></a> in the scenario
file.</note>
+ <warning>Do not imbricate timers like this:<br/>
+ <source><![CDATA[<start-timer>
+...
+<start-timer>
+...
+<stop-timer>
+...
+<stop-timer>
+ ]]>
+ </source>
+ Always stop a timer before strating a new one:
+ <source><![CDATA[<start-timer>
+...
+<stop-timer>
+...
+<start-timer>
+...
+<stop-timer>
+ ]]>
+ </source></warning>
<p>The parameters to be set in the configuration file are the following:</p>
<ul>
<li>1) <a href="#data_log_period">data-log-period</a>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <bru...@us...> - 2007-07-18 14:27:42
|
Revision: 284
http://svn.sourceforge.net/gull/?rev=284&view=rev
Author: bruno_guerin
Date: 2007-07-18 07:27:40 -0700 (Wed, 18 Jul 2007)
Log Message:
-----------
FIX: add traffic parameter: files-no-timestamp
Modified Paths:
--------------
doc/trunk/src/documentation/content/xdocs/doc/core.xml
Modified: doc/trunk/src/documentation/content/xdocs/doc/core.xml
===================================================================
--- doc/trunk/src/documentation/content/xdocs/doc/core.xml 2007-07-18 14:25:16 UTC (rev 283)
+++ doc/trunk/src/documentation/content/xdocs/doc/core.xml 2007-07-18 14:27:40 UTC (rev 284)
@@ -2372,7 +2372,17 @@
value="client.log">]]></code>: the logs are saved in client.2004-10-13.13:23:01.120.log log file.</td>
</tr>
<tr>
+ <td>files-no-timestamp</td>
+ <td>To specify to not insert the date between
+ the name and the extension in the log files names.</td>
+ <td>-</td>
<td>
+ <code><![CDATA[<define entity="traffic-param"
+ name="files-no-timestamp"
+ value="true">]]></code>: the logs are saved in "client.log" log file.</td>
+ </tr>
+ <tr>
+ <td>
<anchor id="display-protocol-stat"/>display-protocol-stat</td>
<td>Enable (true) / disable (false) the protocol statistics.
If you set this parameter to false, you do not get any protocol statistics
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <bru...@us...> - 2007-07-18 14:25:15
|
Revision: 283
http://svn.sourceforge.net/gull/?rev=283&view=rev
Author: bruno_guerin
Date: 2007-07-18 07:25:16 -0700 (Wed, 18 Jul 2007)
Log Message:
-----------
NEW: add complete Radius documentation
Modified Paths:
--------------
doc/trunk/src/documentation/content/xdocs/doc/radius.xml
Modified: doc/trunk/src/documentation/content/xdocs/doc/radius.xml
===================================================================
--- doc/trunk/src/documentation/content/xdocs/doc/radius.xml 2007-07-18 09:10:19 UTC (rev 282)
+++ doc/trunk/src/documentation/content/xdocs/doc/radius.xml 2007-07-18 14:25:16 UTC (rev 283)
@@ -6,67 +6,635 @@
</header>
<body>
<section>
- <title>Radius protocol</title>
- <p></p>
- <note>This section is currently limited to describe Radius authentication.</note>
+ <title>Radius protocol details</title>
+ <p>The Radius implementation in Seagull conforms to the RADIUS authentication RFC: <a href="http://tools.ietf.org/html/rfc2865">RFC 2865</a>
+ and the RADIUS accounting RFC : <a href="http://tools.ietf.org/html/rfc2866">RFC 2866</a>
+ </p>
</section>
+ <section>
+ <title>Getting started with Radius</title>
+ <section>
+ <title>First try</title>
+ <p>The proposed example is a "Accouting Request" scenario:
+ <source><![CDATA[
+ Client Server
+ | Accounting-Request |
+ | Acct-Status-Type = 1 (start) |
+ |------------------------------>|
+ | |
+ | Accounting-Response |
+ | Acct-Status-Type = 1 |
+ |<------------------------------|
+ | |
+ | PAUSE |
+ | |
+ | Accounting-Request |
+ | Acct-Status-Type = 2 (stop) |
+ |------------------------------>|
+ | Accounting-Response |
+ | Acct-Status-Type = 2 |
+ |<------------------------------|]]></source>
+ </p>
+ <note>This scenario is included when you install Seagull. It is located in /usr/local/share/seagull/radius/ directory.</note>
+ <p>Open two terminal sessions. Terminal 2 will be the server and Terminal 1 the client.
+ Examples are located in the "run" directory. So the first thing you need
+ to do is to go in this directory (in both terminal windows):</p>
+ <source>cd run</source>
+ <p>In Terminal 2 window type:</p>
+ <source>./start_server.ksh</source>
+ <p>In Terminal 1 window type:</p>
+ <source>./start_client.ksh</source>
+ <p>On Terminal 2 (server side), you will see:</p>
+ <source>|------------------------+---------------------------+-------------------------|
+| Start/Current Time | 2007-07-18 14:37:43 | 2007-07-18 14:38:13 |
+|------------------------+---------------------------+-------------------------|
+| Counter Name | Periodic value | Cumulative value |
+|------------------------+---------------------------+-------------------------|
+| Elapsed Time | 00:00:01:009 | 00:00:30:300 |
+| Call rate (/s) | 0.991 | 0.132 |
+|------------------------+---------------------------+-------------------------|
+| Incoming calls | 1 | 4 |
+| Outgoing calls | 0 | 0 |
+| Msg Recv/s | 2.973 | 0.231 |
+| Msg Sent/s | 2.973 | 0.231 |
+| Unexpected msg | 0 | 0 |
+| Current calls | 1 | 0.033 |
+|------------------------+---------------------------+-------------------------|
+| Successful calls | 2 | 3 |
+| Failed calls | 0 | 0 |
+| Refused calls | 0 | 0 |
+| Aborted calls | 0 | 0 |
+| Timeout calls | 0 | 0 |
+|------------------------+---------------------------+-------------------------|
+| Last Info | Incomming traffic |
+| Last Error | No error |
+|--- Next screen : Press key 1 ----------------------- [h]: Display help ------|
+ </source>
+ </section>
+ <section>
+ <title>First try explained</title>
+ <p>Here is the script (start_client.ksh) that launched the client in our example:</p>
+ <source><![CDATA[#!/bin/ksh
+
+export LD_LIBRARY_PATH=/usr/local/bin
+seagull -conf ../config/conf.client.xml -dico ../config/radius-accounting.xml -scen ../scenario/radius-accounting.client.xml -log ../logs/radius-accounting.client.log -llevel ET]]>
+ </source>
+ <note>On some systems, you might need to include the following export
+ in your Seagull script: "export SHLIB_PATH=/usr/local/bin".
+ </note>
+ <p>Both sides are relying on the Radius Accounting dictionary provided
+ with Seagull: radius-accounting.xml to encode Radius messages. Refer to
+ <a href="#config_dict">dictionary configuration</a> section for more information on the
+ format of this dictionary. The dictionary is specified using the <code>-dico</code>
+ parameter on the <a href="core.html#cli_help">command line</a>.</p>
+ <p>The generic configuration (including network and other parameters)
+ is different for the client and the server. The client uses <code>conf.client.xml</code>
+ and the server uses <code>conf.server.xml</code>. The configuration file is specified
+ using the <code>-conf</code> parameter on the <a href="core.html#cli_help">command line</a>.</p>
+ <p>Here are both files:</p>
+ <table id="conf_client_server_radius">
+ <caption>Example client and server configuration</caption>
+ <tr>
+ <th>conf.client.xml</th>
+ <th>conf.server.xml</th>
+ </tr>
+ <tr>
+ <td>
+ <source><![CDATA[<?xml version="1.0" encoding="ISO-8859-1"?>
+<configuration name="Simple Radius Accounting TCP/IP Client Conf">
+
+ <define entity="transport"
+ name="trans-ip-v4"
+ file="libtrans_ip.so"
+ create_function="create_cipio_instance"
+ delete_function="delete_cipio_instance"
+ init-args="type=tcp">
+ </define>
+
+ <define entity="channel"
+ name="trans-ip-v4"
+ protocol="radius-accounting-v1"
+ transport="trans-ip-v4"
+ open-args="mode=client;dest=127.0.0.1:1813">
+ </define>
+
+ <define entity="traffic-param" name="call-rate" value="1"></define>
+ <define entity="traffic-param" name="display-period" value="1"></define>
+ <define entity="traffic-param" name="log-stat-period" value="1"></define>
+ <define entity="traffic-param" name="log-stat-file" value="../logs/client-stat.csv"></define>
+ <define entity="traffic-param" name="call-timeout-ms" value="10000"></define>
+ <define entity="traffic-param" name="display-scenario-stat" value="true"></define>
+ <define entity="traffic-param" name="display-protocol-stat" value="true"></define>
+ <define entity="traffic-param" name="log-protocol-stat-period" value="5"></define>
+ <define entity="traffic-param" name="log-protocol-stat-name" value="all"></define>
+ <define entity="traffic-param" name="log-protocol-stat-file" value="../logs/client-protocol-stat.csv"></define>
+
+ <define entity="traffic-param" name="max-send" value="200"></define>
+ <define entity="traffic-param" name="max-receive" value="200"></define>
+ <define entity="traffic-param" name="max-simultaneous-calls" value="2000"></define>
+ <define entity="traffic-param" name="select-timeout-ms" value="50"></define>
+
+ <define entity="traffic-param" name="external-data-file" value="../scenario/external_client_data.csv"></define>
+ <define entity="traffic-param" name="external-data-select" value="sequential"></define>
+
+</configuration>]]></source>
+ </td>
+ <td>
+ <source><![CDATA[<?xml version="1.0" encoding="ISO-8859-1"?>
+<configuration name="Simple Radius TCP/IP Server Conf">
+ <define entity="transport"
+ name="trans-ip-v4"
+ file="libtrans_ip.so"
+ create_function="create_cipio_instance"
+ delete_function="delete_cipio_instance"
+ init-args="type=tcp">
+ </define>
+
+ <define entity="channel"
+ name="trans-ip-v4"
+ protocol="radius-accounting-v1"
+ transport="trans-ip-v4"
+ open-args="mode=server;source=127.0.0.1:1813">
+ </define>
+
+
+ <define entity="traffic-param" name="display-period" value="1"></define>
+
+ <define entity="traffic-param" name="log-stat-period" value="1"></define>
+ <define entity="traffic-param" name="log-stat-file" value="../logs/server-stat.csv"></define>
+
+ <define entity="traffic-param" name="call-timeout-ms" value="10000"></define>
+ <define entity="traffic-param" name="display-scenario-stat" value="true"></define>
+ <define entity="traffic-param" name="display-protocol-stat" value="true"></define>
+ <define entity="traffic-param" name="log-protocol-stat-period" value="5"></define>
+ <define entity="traffic-param" name="log-protocol-stat-name" value="all"></define>
+ <define entity="traffic-param" name="log-protocol-stat-file" value="../logs/server-protocol-stat.csv"></define>
+
+
+ <define entity="traffic-param" name="max-send" value="2000"></define>
+ <define entity="traffic-param" name="max-receive" value="2000"></define>
+ <define entity="traffic-param" name="max-simultaneous-calls" value="2000"></define>
+ <define entity="traffic-param" name="select-timeout-ms" value="50"></define>
+
+ <define entity="traffic-param" name="external-data-file" value="../scenario/external_server_data.csv"></define>
+ <define entity="traffic-param" name="external-data-select" value="sequential"></define>
+
+</configuration>]]></source>
+ </td>
+ </tr>
+ </table>
+ <p>Now comes the real stuff: the scenario.</p>
+ <p>First, the scenario source: <a href="radius-accounting.client.xml.html">radius-accounting.client.xml</a>
+ </p>
+ <p>And now the commented version:</p>
+ <table>
+ <tr>
+ <th><anchor id="config_scenario"/>Scenario</th>
+ <th>Comments</th>
+ </tr>
+ <tr>
+ <td>
+ <source><![CDATA[<?xml version="1.0" encoding="ISO-8859-1" ?>
+
+<scenario name="Simple Radius Accouting Client scenario">
+
+<counter>
+ <counterdef name="session-counter" init="0"> </counterdef>
+ <counterdef name="identifier-counter" init="0"> </counterdef>
+</counter>
+
+<!-- Initialisation Scenario
+<init>
+</init>
+-->
+
+<!-- Traffic Scenario -->
+<traffic>
+
+ <!-- Start Accouting Request -->
+ <send channel="trans-ip-v4">
+ <action>
+ <!-- For each new call, increment the Acct-Session-Id counter -->
+ <inc-counter name="session-counter"> </inc-counter>
+ <inc-counter name="identifier-counter"> </inc-counter>
+ <set-value name="Acct-Session-Id"
+ format="$(session-counter)"></set-value>
+ <set-value name="Identifier"
+ format="$(identifier-counter)"></set-value>
+
+ <!-- This field must not be use with a true value -->
+ <restore-from-external field="0" entity="Authenticator"></restore-from-external>
+
+ </action>
+ <Message name="Accounting-Request">
+ <Attribute name="Acct-Session-Id" value="value_is_replaced"> </Attribute>
+ <!-- 1 stand for Start -->
+ <Attribute name="Acct-Status-Type" value="1"> </Attribute>
+ <Attribute name="NAS-Identifier" value="ims.hpintelco.org"> </Attribute>
+ </Message>
+ <action>
+ <store name="ACCT_SES_ID" entity="Acct-Session-Id"></store>
+ <start-timer></start-timer>
+ </action>
+ </send>
+
+ <receive channel="trans-ip-v4">
+ <action>
+ <stop-timer></stop-timer>
+ </action>
+ <Message name="Accounting-Response">
+ <Attribute name="Acct-Session-Id" value="na"> </Attribute>
+ <!-- 1 stand for Start -->
+ <Attribute name="Acct-Status-Type" value="1"> </Attribute>
+ </Message>
+ </receive>
+
+ <wait-ms value="500"></wait-ms>
+
+ <!-- Stop Accouting Request -->
+ <send channel="trans-ip-v4">
+ <action>
+ <!-- For each new call, increment the Acct-Session-Id counter -->
+ <inc-counter name="identifier-counter"> </inc-counter>
+ <set-value name="Identifier"
+ format="$(identifier-counter)"></set-value>
+
+ <!-- This field must not be use with a true value -->
+ <restore-from-external field="1" entity="Authenticator"></restore-from-external>
+
+ <restore name="ACCT_SES_ID" entity="Acct-Session-Id"></restore>
+ </action>
+ <Message name="Accounting-Request">
+ <Attribute name="Acct-Session-Id" value="value_is_replaced"> </Attribute>
+ <!-- 2 stand for Stop -->
+ <Attribute name="Acct-Status-Type" value="2"> </Attribute>
+ <Attribute name="NAS-Identifier" value="ims.hpintelco.org"> </Attribute>
+ </Message>
+ <action>
+ <start-timer></start-timer>
+ </action>
+ </send>
+
+ <receive channel="trans-ip-v4">
+ <action>
+ <stop-timer></stop-timer>
+ </action>
+ <Message name="Accounting-Response">
+ <Attribute name="Acct-Session-Id" value="na"> </Attribute>
+ <!-- 2 stand for Stop -->
+ <Attribute name="Acct-Status-Type" value="2"> </Attribute>
+ </Message>
+ </receive>
+
+</traffic>
+
+</scenario>
+ ]]></source>
+ </td>
+ <td>
+ <source><![CDATA[XML header
+
+Scenario name
+
+Counters definitions
+In this section are initialized the counters that will
+then be used during the calls.
+For example here: we initialize the two counter that will
+be incremented every time a call is started.
+
+No init section
+
+
+
+
+Traffic section
+
+
+
+Actions before sending the first Accounting-Request message:
+Increment the session-counter counter.
+Increment the identifier-counter counter.
+Set the field Acct-Session-Id with the counter session-counter
+
+Set the field Acct-Session-Id with the counter session-counter
+
+
+
+
+restore-from-external gets some data from an external file into the Authentificator field.
+
+
+Send the Accounting-Request message with 3 attributes
+The Acct-Session-Id attribute is added to the message, the value had been changed with set-value action
+
+The Acct-Status-Type attribute is added to the message with the value 1
+The NAS-Identifier attribute is added to the message with the value "ims.hpintelco.org"
+
+Actions after sending the first Accounting-Request message:
+store the value of the field Acct-Session-Id into the variable ACCT_SES_ID
+start the timer (to measure response time)
+
+
+
+
+Actions before receiving Accounting-Response
+stop the timer
+
+Receive the Accounting-Response message with 2 attributes
+The real values of attributes are set by the remote.
+
+
+
+
+
+Make a pause in scenario (of 500ms)
+
+
+
+Actions before sending the Accounting-Request message
+
+Increment the identifier-counter
+set the value of the field Identifier with the identifier-counter
+
+
+
+restore an external value into the field authentificator
+
+restore the value of the variable ACCT_SES_ID into the field Acct-Session-Id
+
+Send the message Accounting-Request
+The Acct-Session-Id attribute is added to the message, the value had been changed with restore action
+
+The Acct-Status-Type attribute is added to the message with the value 2
+The NAS-Identifier attribute is added to the message with the value "ims.hpintelco.org"
+
+Actions after sending the first Accounting-Request message:
+start the timer (to measure response time)
+
+
+
+
+Actions before receiving Accounting-Response
+stop the timer
+
+Receive the Accounting-Response message with 2 attributes
+The real values of attributes are set by the remote
+
+ ]]></source>
+ </td>
+ </tr>
+ </table>
+ </section>
+ </section>
+
+<section id="config">
+ <title>Configuration files</title>
+ <p>There are 3 different configuration files:</p>
+ <ul>
+ <li>
+ <a href="#config_generic">Generic</a> configuration file - describing traffic and network parameters</li>
+ <li>
+ <a href="#config_dict">Protocol dictionary</a> configuration file - rarely to be edited </li>
+ <li>
+ <a href="#config_scenario">Scenario</a> file - description of the message exchanges</li>
+ </ul>
+ <figure alt="Config files" src="images/conf_files.png" width="424"/>
+ <p/>
+ <section id="config_generic">
+ <title>Generic configuration</title>
+ <p>The generic configuration file describes the network environment
+ as well as traffic parameters.</p>
+ <anchor id="cfg_transport"/>
+ <p>The network environment is described through "<a href="core.html#ref_transport">transport channel
+ entities</a>". The transport entity is then used as an attribute of <a href="core.html#cmd_send"><code>send</code>
+ </a> and
+ <a href="core.html#cmd_receive"><code>receive</code>
+ </a> scenario commands, as well as during the
+ opening of the transport channel (see below). </p>
+ <source>
+<![CDATA[<!-- Radius example -->
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<configuration name="Simple Radius Accounting TCP/IP Client Conf">
+
+<!-- Define the transport to be used: -->
+ <define entity="transport"
+ name="trans-ip-v4"
+ file="libtrans_ip.so"
+ create_function="create_cipio_instance"
+ delete_function="delete_cipio_instance"
+ init-args="type=tcp">
+ </define>
+
+<!-- Then you specify the opening of the channel, on the transport previously described. -->
+
+<!-- For a server listening to port 1813 on interface "127.0.0.1", it will look like this: -->
+ <define entity="channel"
+ name="trans-ip-v4"
+ protocol="radius-accounting-v1"
+ transport="trans-ip-v4"
+ open-args="mode=server;source=127.0.0.1:1813">
+ </define>
+
+<!-- For a client sending messages to port 1813 on interface "127.0.0.1", it will look like this: -->
+ <define entity="channel"
+ name="trans-ip-v4"
+ protocol="radius-accounting-v1"
+ transport="trans-ip-v4"
+ open-args="mode=client;dest=127.0.0.1:1813">
+ </define>
+]]>
+ </source>
+ </section>
+ <section id="config_dict">
+ <title>Radius dictionary</title>
+ <p>Radius messages and parameters are described in XML dictionaries.
+ The tool comes with a complete Radius dictionary.</p>
+ <p>A dictionary contains several XML sections</p>
+ <section>
+ <title>Types</title>
+ <p>"types" section contains all types needed for the protocol. For Diameter, these are:
+ <source><![CDATA[<types>
+ <!-- Types defined for the Attributes -->
+ <typedef name="Octet" type="number" size="1" unit="octet"> </typedef>
+ <typedef name="Integer32" type="signed" size="4" unit="octet"> </typedef>
+ <typedef name="Unsigned32" type="number" size="4" unit="octet"> </typedef>
+ <typedef name="Address" type="number" size="4" unit="octet"> </typedef>
+ <typedef name="Time" type="number" size="4" unit="octet"> </typedef>
+ <typedef name="String" type="string" unit="octet"> </typedef>
+ <typedef name="Text" type="string" unit="octet"> </typedef>
+ <typedef name="Grouped" type="grouped" > </typedef>
+
+ <typedef name="Octet_16" type="string" size="16" unit="octet"> </typedef>
+ <typedef name="AddressV6" type="string" size="16" unit="octet"> </typedef>
+ <typedef name="InterfaceId" type="string" size="8" unit="octet"> </typedef>
+</types>
+ ]]></source>
+ </p>
+ </section>
+ <section>
+ <title>Header</title>
+ <p>"header" section contains the description of message header.
+ For Radius, this is:</p>
+ <source><![CDATA[<header name="Message" length="Length" type="Code">
+ <fielddef name="Code" size="1" unit="octet"> </fielddef>
+ <fielddef name="Identifier" size="1" unit="octet"> </fielddef>
+ <fielddef name="Length" size="2" unit="octet"> </fielddef>
+ <fielddef name="Authenticator" type="Octet_16"> </fielddef>
+</header>
+ ]]></source>
+ </section>
+ <section>
+ <title>Body</title>
+ <p>"body" section contains the description of message body (which
+ naturally comes after the header). For Radius, this is: </p>
+ <source><![CDATA[<body>
+ <header name="Attribute" length="Attr-Length" type="Attr-Type">
+ <fielddef name="Attr-Type" size="1" unit="octet"> </fielddef>
+ <fielddef name="Attr-Length" size="1" unit="octet"> </fielddef>
+ </header>
+</body>
+ ]]></source>
+ </section>
+ <section>
+ <title>Dictionary</title>
+ <p>"dictionary" section contains all possible parameters
+ that a message can contain. Here is a description for some Radius attributes:</p>
+ <source><![CDATA[<dictionary>
+ <!-- RADIUS Attribute definitions -->
+ <Attribute>
+ <!-- RADIUS Base Attribute definitions see RFC 2865 -->
+ <define name="User-Name" type="String">
+ <setfield name="Attr-Type" value="1"></setfield>
+ </define>
+ <define name="User-Password" type="String">
+ <setfield name="Attr-Type" value="2"></setfield>
+ </define>
+ <define name="CHAP-Password" type="String">
+ <setfield name="Attr-Type" value="3"></setfield>
+ <!-- composed by CHAP-Id Octect and String -->
+ </define>
+ <define name="NAS-IP-Address" type="Address">
+ <setfield name="Attr-Type" value="4"></setfield>
+ </define>
+ <define name="NAS-Port" type="Integer32">
+ <setfield name="Attr-Type" value="5"></setfield>
+ </define>
+ <define name="Service-Type" type="Integer32">
+ <setfield name="Attr-Type" value="6"></setfield>
+ </define>
+ </Attribute>
+</dictionary>
+ ]]></source>
+ </section>
+ <section>
+ <title>Message</title>
+ <p>"Message" section contains all possible Diameter messages (from RFC 2865 and 2866).
+ Here is an example of Radius messages:</p>
+ <source><![CDATA[ <define name="Access-Request">
+ <setfield name="Code" value="1"></setfield>
+ </define>
+ <define name="Access-Accept">
+ <setfield name="Code" value="2"></setfield>
+ </define>
+ ]]></source>
+ </section>
+ </section>
+ <section id="prepostactions_radius">
+ <title>Actions in scenario commands for Radius</title>
+ <p>The <send> and <receive> scenario commands include an <action> and
+ <message> sections.</p>
+ <p>The <action> section can be placed before or after the <message> section.</p>
+ <p>Actions placed before the message (called
+ "<strong>pre-actions</strong>") are executed before the message is actually
+ sent or received. Actions placed after the message (called
+ "<strong>post-actions</strong>") are executed after the
+ message is sent or received. </p>
+ <p>For example, actions that can be placed before a message are actions
+ to set the values of some ids or to set some fields using external values,
+ before sending a message. Example:</p>
+ <source><![CDATA[ <send channel="trans-ip-v4">
+ <action>
+ <!-- For each new call, increment the Acct-Session-Id counter -->
+ <inc-counter name="session-counter"> </inc-counter>
+ <inc-counter name="identifier-counter"> </inc-counter>
+ <set-value name="Acct-Session-Id"
+ format="$(session-counter)"></set-value>
+ <set-value name="Identifier"
+ format="$(identifier-counter)"></set-value>
+
+ <!-- This field must not be use with a true value -->
+ <restore-from-external field="0" entity="Authenticator"></restore-from-external>
+
+ </action>
+
+]]></source>
+ <p>Actions that can be placed after a message are actions to store
+ some values after the message has been received. Example:</p>
+ <source><![CDATA[<action>
+ <store name="ACCT_SES_ID" entity="Acct-Session-Id"></store>
+ </action>
+ </send>]]></source>
+ <p>The list of <a href="#ref_actions">possible actions</a> is available
+ in the reference section.</p>
+ </section>
+ </section>
+
+
<section id="radius_authentication">
<title>Radius authentication</title>
-
- <p>The authentication implementation in Radius protocol is to be used as an example.
+ <p>The authentication implementation in Radius protocol is to be used as an example.
The "crypto_method" method, used for the authentication, is defined in
<a href="http://gull.svn.sourceforge.net/viewvc/gull/seagull/trunk/src/library-crypto/CryptExternalMethods.hpp?view=markup">"library-crypto/CryptExternalMethods.hpp"</a>
and implemented in <a href="http://gull.svn.sourceforge.net/viewvc/gull/seagull/trunk/src/library-crypto/CryptExternalMethods.cpp?view=markup">"library-crypto/CryptExternalMethods.cpp"</a>
in the sources.<br/> It can be modified to match the exact authentication algorithm.</p>
<section id="implementaion">
<title>Seagull implementation</title>
- <p>At first, the message is built with the "Authenticator" field filled with '0000000000000000' in the scenario:
- <source><![CDATA[<Message name="Accounting-Request">
+ <p>At first, the message is built with the "Authenticator" field filled with '0000000000000000' in the scenario:
+ <source><![CDATA[<Message name="Accounting-Request">
<setfield name="Authenticator" value="0000000000000000"> </setfield>
...
]]></source> <br/>
- In the pre-action part of the scenario, the "Authenticator" field is set with the result of the authentication method:
- <source><![CDATA[<set-value name="Authenticator" method="authentication" message_part="all"
+ In the pre-action part of the scenario, the "Authenticator" field is set with the result of the authentication method:
+ <source><![CDATA[<set-value name="Authenticator" method="authentication" message_part="all"
format="shared_secret=$(SH_SE)"></set-value>
]]></source>
- <p>The "method" field selects the function to be used for the authentication from the ones defined in the dictionary.<br/>
- The "message_part" defines which part of the message is used for the authentication
- (in this case, the entire message is used).<br/>
- The "format" defines additional parameters if the method needs some (In this case,
- the "shared_secret" parameter is passed to the method with the value of the memory zone "SH_SE". The
- memory zone "SH_SE" can be filled by a "restore from_exernal" action for example).
- </p>
- </p>
- </section>
- <section id="authentication_dictionary">
- <title>Authentication dictionary</title>
- <p>The authentication method must be defined in the dictionary with its name, the name of the function to be
- used and the name of the library in which the function is defined.<br/>
- Example:
- <source><![CDATA[<!-- external methods for fields modifications -->
+ <p>The "method" field selects the function to be used for the authentication from the ones defined in the dictionary.<br/>
+ The "message_part" defines which part of the message is used for the authentication
+ (in this case, the entire message is used).<br/>
+ The "format" defines additional parameters if the method needs some (In this case,
+ the "shared_secret" parameter is passed to the method with the value of the memory zone "SH_SE". The
+ memory zone "SH_SE" can be filled by a "restore from_exernal" action for example).
+ </p>
+ </p>
+ </section>
+ <section id="authentication_dictionary">
+ <title>Authentication dictionary</title>
+ <p>The authentication method must be defined in the dictionary with its name, the name of the function to be
+ used and the name of the library in which the function is defined.<br/>
+ Example:
+ <source><![CDATA[<!-- external methods for fields modifications -->
<external-method>
<defmethod name="authentication"
param="lib=lib_crypto.so;function=crypto_method_radius">
</defmethod>
-</external-method>
-]]></source>
- The authentication method "name" is used in the scenario to call the authentication function.<br/>
- The "param" defines the name of the library "lib=lib_crypto.so" and the name of the function "function=crypto_method_radius".
- </p>
- </section>
- <section id="authentication_scenario">
+</external-method>]]></source>
+ The authentication method "name" is used in the scenario to call the authentication function.<br/>
+ The "param" defines the name of the library "lib=lib_crypto.so" and the name of the function "function=crypto_method_radius".
+ </p>
+ </section>
+ <section id="authentication_scenario">
<title>Authentication scenario</title>
<p>Here is the commented version of the Radius client using the "authentication" method defined
- in "library-crypto/CryptExternalMethods.hpp" and implemented in "library-crypto/CryptExternalMethods.cpp"
- in the sources</p>
- <table>
- <tr>
- <th>Client XML scenario.</th>
- <th>Comments</th>
- </tr>
- <tr>
- <td>
- <source><![CDATA[<?xml version="1.0" encoding="ISO-8859-1" ?>
+ in "library-crypto/CryptExternalMethods.hpp" and implemented in "library-crypto/CryptExternalMethods.cpp"
+ in the sources</p>
+ <table>
+ <tr>
+ <th>Client XML scenario.</th>
+ <th>Comments</th>
+ </tr>
+ <tr>
+ <td>
+ <source><![CDATA[<?xml version="1.0" encoding="ISO-8859-1" ?>
<scenario name="Simple Radius Accouting Client scenario">
@@ -110,9 +678,8 @@
</traffic>
-</scenario>
-]]></source>
- </td>
+</scenario>]]></source>
+ </td>
<td>
<source><![CDATA[XML header
@@ -159,12 +726,9 @@
]]></source>
</td>
- </tr>
- </table>
+ </tr>
+ </table>
+ </section>
</section>
-
-
- </section>
-
</body>
</document>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <bru...@us...> - 2007-07-18 09:10:20
|
Revision: 282
http://svn.sourceforge.net/gull/?rev=282&view=rev
Author: bruno_guerin
Date: 2007-07-18 02:10:19 -0700 (Wed, 18 Jul 2007)
Log Message:
-----------
FIX: compile warning in hpux
Modified Paths:
--------------
seagull/trunk/src/generator-ext-AgnerLib/stoc1.cpp
Modified: seagull/trunk/src/generator-ext-AgnerLib/stoc1.cpp
===================================================================
--- seagull/trunk/src/generator-ext-AgnerLib/stoc1.cpp 2007-07-18 08:47:42 UTC (rev 281)
+++ seagull/trunk/src/generator-ext-AgnerLib/stoc1.cpp 2007-07-18 09:10:19 UTC (rev 282)
@@ -43,7 +43,7 @@
if (n < FAK_LEN) {
if (n <= 1) {
- if (n < 0) FatalError("Parameter negative in LnFac function");
+ if (n < 0) FatalError((char*)"Parameter negative in LnFac function");
return 0;}
if (!initialized) { // first time. Must initialize table
// make table of ln(n!)
@@ -85,7 +85,7 @@
if (L < 17) {
if (L < 1.E-6) {
if (L == 0) return 0;
- if (L < 0) FatalError("Parameter negative in poisson function");
+ if (L < 0) FatalError((char*)"Parameter negative in poisson function");
//--------------------------------------------------------------
// calculate probabilities
@@ -107,7 +107,7 @@
return PoissonInver(L);}}
else {
- if (L > 2.E9) FatalError("Parameter too big in poisson function");
+ if (L > 2.E9) FatalError((char*)"Parameter too big in poisson function");
//----------------------------------------------------------------
// ratio-of-uniforms method
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <bru...@us...> - 2007-07-18 08:47:40
|
Revision: 281
http://svn.sourceforge.net/gull/?rev=281&view=rev
Author: bruno_guerin
Date: 2007-07-18 01:47:42 -0700 (Wed, 18 Jul 2007)
Log Message:
-----------
FIX: alias for malloc in C_XmlParser.cpp and auth.c
Modified Paths:
--------------
seagull/trunk/src/library-crypto/auth.c
seagull/trunk/src/xml-parser/C_XmlParser.cpp
Modified: seagull/trunk/src/library-crypto/auth.c
===================================================================
--- seagull/trunk/src/library-crypto/auth.c 2007-06-22 17:47:18 UTC (rev 280)
+++ seagull/trunk/src/library-crypto/auth.c 2007-07-18 08:47:42 UTC (rev 281)
@@ -29,6 +29,8 @@
#include <openssl/md5.h>
#include "milenage.h"
+#include "Utils.hpp"
+
#define MAX_HEADER_LEN 2049
#define MD5_HASH_SIZE 16
#define HASH_HEX_SIZE 2*MD5_HASH_SIZE
@@ -376,7 +378,7 @@
unsigned int i ;
int j,x1,x2,x3,x4;
char *out;
- out = (char *)malloc( ( len * 3/4 ) + 8 );
+ ALLOC_VAR(out,char *,(( len * 3/4 ) + 8 ));
for(i=0,j=0;i+3<len;i+=4){
x1=base64_val(buf[i]);
x2=base64_val(buf[i+1]);
@@ -431,7 +433,7 @@
triplets = len/3;
rest = len%3;
- out = (char *)malloc( ( triplets * 4 ) + 8 );
+ ALLOC_VAR(out,char *,(( triplets * 4 ) + 8 ));
ptr = out;
for(i=0;i<triplets*3;i+=3){
Modified: seagull/trunk/src/xml-parser/C_XmlParser.cpp
===================================================================
--- seagull/trunk/src/xml-parser/C_XmlParser.cpp 2007-06-22 17:47:18 UTC (rev 280)
+++ seagull/trunk/src/xml-parser/C_XmlParser.cpp 2007-07-18 08:47:42 UTC (rev 281)
@@ -138,7 +138,7 @@
// m_lex_string_value = (char*) malloc (1024) ;
// m_lex_max_string_size = 1024 ;
- m_lex_string_value = (char*) malloc (2048) ;
+ ALLOC_VAR(m_lex_string_value,char*,2048);
m_lex_max_string_size = 2048 ;
NEW_VAR(m_pXmldata, C_XmlData((char*)""));
GEN_DEBUG(1, "C_XmlParser::init() end");
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|