Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.
left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Prévia do material em texto

Template de apoio à Atividade de Teste de Software 
Criado para o MOOC Introdução ao Teste de Software – Plataforma Coursera 
1. Cenário geral do “Online Charging System Using Diameter Protocol in LTE/4G Networks”. 
The Diameter is a protocol that enables communication among internet protocol network elements, 
it can be thought of as the language that servers and software use to communicate within the core 
of the LTE Network, also is a key element for managing and securing diameter signaling, this 
protocol provides authentication , authorization and accounting (AAA) messaging services for 
network access and data mobility applications in 3G, IP Multimedia Systems (IMS), and LTE/4G 
Networks. 
The Diameter Signaling Controller (DSC) is usually deployed to centralize routing of diameter 
messages between diameter agents in the mobile operator´s core network, the DSC is required 
mainly in the Long-Term Evolution Networks (LTE) 4G networks. 
The DSC is composed of incoming and outgoing interfaces that are used to route diameter messages. 
• In the Incoming interface it allows diameter nodes, Clients in this case to send and receive 
messages through them for different applications. 
• In the Outgoing interface it allows diameter nodes, Servers in this case to send and receive 
messages through them for different applications. 
• Dictionary, in order to identify protocols and related information, it is important to have 
dictionary for applications. 
• Supported Applications: “Ro” it is used to Exchange online charging information with OCF 
(Online Charging Function). Online charging, also known as credit-based charging, is 
used to charge prepaid services. A typical example of a prepaid service is a calling card 
purchased for voice or video. The Ro protocol allows a Charging Trigger Function (CTF) to 
issue charging events to an Online Charging Function (OCF). The charging events can be 
immediate, event-based, or session-based. 
We will be using a tool called Seagull it is a free and Open Source multi-protocol traffic Generator, it 
is a powerful traffic generator for functional, load , endurance, stress and performance/benchmark 
tests for almost any kind of protocol, in addition due its openness allows to add the support of a 
brand new protocol in a very few time with not programming knowledge it comes with several 
protocol families embedded in the source code: 
• Binary/TLV (Diameter, Radius and many 3GPP and IETF protocols) 
• External library (TCAP, SCTP). 
• Text (XCAP, HTTP, H248, ASCII). 
• An attribute-value pair (AVP) is a fundamental representation of data in computer 
system which diameter protocol use, in other way avp’s are the basic unit inside that 
the diameter carries the data. 
 
2. Estratégia(s) de Teste (como será testado) 
 
In this module we will perform functional testing with boundary-value analysis, between 
incoming and outgoing interfaces so we are going to test incoming and outgoing interfaces. 
 
 
 
 
 
3. Projeto de Casos de Teste (como será testado) 
 
Function Description Test Results 
Charge the user for 
sending a text or 
multimedia message 
A subscriber is sending a text 
message from phone A to 
phone B and has to be 
charged. 
Verify that the Seagull Client is 
sending the CC-Request-TYPE value 
of 4 which is event based credit 
control process that it uses events 
as charging mechanism. Event-
based charging is typically used 
when units are not continuously 
consumed (not session-based) 
Charge the user for 
sending a message text 
or multimedia message. 
A subscriber is sending a text 
message from phone A to 
phone B and has to be 
charged. 
Seagull Client is not sending the CC-
Request-TYPE since this value is 
mandatory the system will return a 
permanent error and will reject the 
message and trigger na alarm that 
there is a bug or the system has a 
malfunction. 
Charge the user for 
sending a message text 
or multimedia message. 
A subscriber is sending a text 
message from phone A to 
phone B and has to be 
charged. 
the Seagull Client is sending the CC-
Request-TYPE value if which is an 
invalid value and not supported by 
the system it will return and check 
the subscriber plan to see if it is 
event base or session based 
otherwise if nothing is returned it 
will drop the message and it will 
trigger an alarm of permanent 
failure. 
Charge the user for 
making a call. 
A subscriber is making a 
telephone call and since it is 
taking a period of time the 
CC-REQUEST-TYPE = 1 or 2 or 
3, during the call 1= initial = 
when the user answer the call 
and it is connected 2= update 
the system will deduct credits 
during the call and 3 = 
termination of call = where 
the user finishes the call or no 
credits are available. 
The seagull client is sending the CC-
Request-Type value 1 then 2 and 
then 3 which is session based that 
uses several interrogations which 
may include first, intermediate and 
last interrogation. During 
interrogation money is reserved 
from the user account. Session-
based charging is typically used for 
scenarios where the charged units 
are continuously consumed 
charging for bytes 
upload/download. 
 
 
 
Template de apoio à Atividade de Teste de Software 
Criado para o MOOC Introdução ao Teste de Software – Plataforma Coursera 
Equivalence Classes 
 
 
 
 
 
 
 
 
 
4. Execução (quando e como será testado) 
 
Ro Accounting Application – Functional Test Scenario 1 
Prerequisites: 
1. Diameter Router installed. 
2. Ro outgoing interface, called Ro-Out is already created from DSC web page. 
3. Ro incoming interface, called Ro-Inc is already created from DSC web page. 
4. Seagull Simulator is configured as a client and server to send and receive messages through 
the incoming and outgoing interfaces created. 
5. From the simulator /config: base_ro.xml. 
6. From the simulator /config scenario use: ro.ccr-cca.event.client.xml and ro.ccr-
cca.event.server.xml. 
Steps to test it: 
• Start seagull as Diameter Ro server, then the Ro-Out interface connects to the Seagull Ro 
Server. 
• Change in the Client Script the CC-REQUEST-TYPE=”4” 
• Start seagull as Diameter Ro client, then the Ro-Inc interface connects to the Seagull Ro 
client and it will send one CCR request to the incoming interface, then it should be routed to 
the Ro-out interface. 
Results: 
1. The CCR request is successfully sent to the Ro Diameter server through incoming and 
outgoing interfaces with CC-REQUEST-TYPE = 4 (which is event based) , for EVENT_REQUEST 
, additional details can be checked on https://www.iana.org/assignments/aaa-
parameters/aaa-parameters.xhtml#aaa-parameters-28 , by searching (CC-Request-Type). 
2. CCA is successfully routed back to Ro diameter client from Ro diameter Server trough 
incoming and outgoing interface. 
3. 4 TDRs records should be generated: 2 for requests and 2 for responses. 
4. Diameter Transaction Records (TDRs) Example of a functional test result which is a success: 
10:57:49.455|REQ_IN|1|DIAMETER|272|ro|EVENT_REQUEST|1001|2001|0|roinc||NO_A
CTION| 
input values Valid equivalence 
classes 
Invalid equivalence 
classes 
Length (CC-REQUEST-
TYPE) (t) 
1 <= t <=4 t > 4 
First character is a 
letter 
None. None. 
It contains characters None. None. 
https://www.iana.org/assignments/aaa-parameters/aaa-parameters.xhtml#aaa-parameters-28
https://www.iana.org/assignments/aaa-parameters/aaa-parameters.xhtml#aaa-parameters-28
10:57:49.453|REQ_OUT|1|DIAMETER|272|ro|EVENT_REQUEST|1001|2001|2|roinc|roout
||NO_ACTION| 
10:57:49.480|RESP_IN|1|DIAMETER|272|ro|EVENT_REQUEST|1001|2001|2|roinc|roout|
2001|Success||NO_ACTION| 
10:57:49.542|RESP_OUT|1|DIAMETER|272|ro|RO_EVENT_REQUEST|1001|2001|2|roinc|r
oout|2001|Success||NO_ACTION| 
 
Ro Accounting Application – Functional Test Scenario 2 
Prerequisites: 
1. Diameter Router installed. 
2. Rooutgoing interface, called Ro-Out is already created from DSC web page. 
3. Ro incoming interface, called Ro-Inc is already created from DSC web page. 
4. Seagull Simulator is configured as a client and server to send and receive messages through 
the incoming and outgoing interfaces created. 
5. From the simulator /config: base_ro.xml. 
6. From the simulator /config scenario use: ro.ccr-cca.event.client.xml and ro.ccr-
cca.event.server.xml. 
Steps to test it: 
• Start seagull as Diameter Ro server, then the Ro-Out interface connects to the Seagull Ro 
Server. 
• Change in the Client Script the CC-REQUEST-TYPE value or delete the value assigned to it. 
• Start seagull as Diameter Ro client, then the Ro-Inc interface connects to the Seagull Ro 
client and it will send one CCR request to the incoming interface, then it should be routed to 
the Ro-out interface. 
Results: 
1. The CCR request is successfully sent to the Ro Diameter server through incoming and 
outgoing interfaces with CC-REQUEST-TYPE is missing , for EVENT_REQUEST , additional 
details can be checked on https://www.iana.org/assignments/aaa-parameters/aaa-
parameters.xhtml#aaa-parameters-28 , by searching (CC-Request-Type). 
2. CCA is successfully routed back to Ro diameter client from Ro diameter Server trough 
incoming and outgoing interface. 
3. 3 TDRs records should be generated: 2 for requests and 1 for responses, since the second 
response is not routed due to a permanent error. 
4. Diameter Transaction Records (TDRs) Example of a functional test result which is a 
permanent error: 
10:57:49.455|REQ_IN|1|DIAMETER|272|ro|EVENT_REQUEST|1001|2001|0|roinc||NO_A
CTION| 
10:57:49.453|REQ_OUT|1|DIAMETER|272|ro|EVENT_REQUEST|1001|2001|2|roinc|roout
||NO_ACTION| 
10:57:49.480|RESP_IN|1|DIAMETER|272|ro|EVENT_REQUEST|1001|2001|2|roinc|roout|
5005|DIAMETER-MISSING-AVP||NO_ACTION| 
https://www.iana.org/assignments/aaa-parameters/aaa-parameters.xhtml#aaa-parameters-28
https://www.iana.org/assignments/aaa-parameters/aaa-parameters.xhtml#aaa-parameters-28
Template de apoio à Atividade de Teste de Software 
Criado para o MOOC Introdução ao Teste de Software – Plataforma Coursera 
Ro Accounting Application – Functional Test Scenario 3 
Prerequisites: 
7. Diameter Router installed. 
8. Ro outgoing interface, called Ro-Out is already created from DSC web page. 
9. Ro incoming interface, called Ro-Inc is already created from DSC web page. 
10. Seagull Simulator is configured as a client and server to send and receive messages through 
the incoming and outgoing interfaces created. 
11. From the simulator /config: base_ro.xml. 
12. From the simulator /config scenario use: ro.ccr-cca.event.client.xml and ro.ccr-
cca.event.server.xml. 
Steps to test it: 
• Start seagull as Diameter Ro server, then the Ro-Out interface connects to the Seagull Ro 
Server. 
• Change in the Client Script the CC-REQUEST-TYPE value to and invalid one for example 
“abc4”. 
• Start seagull as Diameter Ro client, then the Ro-Inc interface connects to the Seagull Ro 
client and it will send one CCR request to the incoming interface, then it should be routed to 
the Ro-out interface. 
Results: 
1. The CCR request is successfully sent to the Ro Diameter server through incoming and 
outgoing interfaces with CC-REQUEST-TYPE = “abc4”, invalid value , for EVENT_REQUEST , 
additional details can be checked on https://www.iana.org/assignments/aaa-
parameters/aaa-parameters.xhtml#aaa-parameters-28 , by searching (CC-Request-Type). 
2. CCA is successfully routed back to Ro diameter client from Ro diameter Server trough 
incoming and outgoing interface. 
3. 3 TDRs records should be generated: 2 for requests and 1 for responses, since the second 
response is not routed due to a permanent error. 
4. Diameter Transaction Records (TDRs) Example of a functional test result which is a 
permanent error: 
10:57:49.455|REQ_IN|1|DIAMETER|272|ro|EVENT_REQUEST|1001|2001|0|roinc||NO_A
CTION| 
10:57:49.453|REQ_OUT|1|DIAMETER|272|ro|EVENT_REQUEST|1001|2001|2|roinc|roout
||NO_ACTION| 
10:57:49.480|RESP_IN|1|DIAMETER|272|ro|EVENT_REQUEST|1001|2001|2|roinc|roout|
5004|DIAMETER_INVALID_AVP_VALUE||NO_ACTION| 
 
 
 
 
https://www.iana.org/assignments/aaa-parameters/aaa-parameters.xhtml#aaa-parameters-28
https://www.iana.org/assignments/aaa-parameters/aaa-parameters.xhtml#aaa-parameters-28
Ro Accounting Application – Functional Test Scenario 4 
Prerequisites: 
13. Diameter Router installed. 
14. Ro outgoing interface, called Ro-Out is already created from DSC web page. 
15. Ro incoming interface, called Ro-Inc is already created from DSC web page. 
16. Seagull Simulator is configured as a client and server to send and receive messages through 
the incoming and outgoing interfaces created. 
17. From the simulator /config: base_ro.xml. 
18. From the simulator /config scenario use: ro.ccr-cca.session.client.xml and ro.ccr-
cca.event.session.xml. 
Steps to test it: 
• Start seagull as Diameter Ro server, then the Ro-Out interface connects to the Seagull Ro 
Server. 
• Change in the Client Script the CC-REQUEST-TYPE value = 1. then seagull should increment it 
to 2 and then to 3, after this should terminate the session. 
• Start seagull as Diameter Ro client, then the Ro-Inc interface connects to the Seagull Ro 
client and it will send 3 CCR requests to the incoming interface, then it should be routed to 
the Ro-out interface. 
Results: 
1. The CCR request is successfully sent to the Ro Diameter server through incoming and 
outgoing interfaces with CC-REQUEST-TYPE = 1 then incremented to 2 and then to 3 for 
SESSION_REQUEST, additional details can be checked on 
https://www.iana.org/assignments/aaa-parameters/aaa-parameters.xhtml#aaa-
parameters-28 , by searching (CC-Request-Type). 
2. CCA is successfully routed back to Ro diameter client from Ro diameter Server trough 
incoming and outgoing interface. 
3. 6 TDRs records should be generated: 3 for requests and 3 for responses. 
4. Diameter Transaction Records (TDRs) Example of a functional test result which is a success: 
10:57:49.455|REQ_IN|1|DIAMETER|272|ro|INITIAL_REQUEST|1045|2045|0|roinc||NO_A
CTION| 
10:57:55.563|RESP_OUT|1|DIAMETER|272|ro|INITIAL_REQUEST|1045|2045|0|roinc|roo
ut|2001|Success||NO_ACTION|| 
10:58:48.455|REQ_IN|1|DIAMETER|272|ro|UPDATE_REQUEST|1046|2046|0|roinc|roout
|NO_ACTION| 
10:59.44.221|RESP_OUT|1|DIAMETER|272|ro|UPDATE_REQUEST|1046|2046|0|roinc|roo
ut|2001|Success||NO_ACTION|| 
11:00:01.225|REQ_IN|1|DIAMETER|272|ro|TERMINATION_REQUEST|1047|2047|0|roinc|
roout|NO_ACTION| 
11:00:01.884|RESP_OUT|1|DIAMETER|272|ro|TERMINATION_REQUEST|1047|2047|0|roi
nc|roout|2001|Success||NO_ACTION|| 
https://www.iana.org/assignments/aaa-parameters/aaa-parameters.xhtml#aaa-parameters-28
https://www.iana.org/assignments/aaa-parameters/aaa-parameters.xhtml#aaa-parameters-28
Template de apoio à Atividade de Teste de Software 
Criado para o MOOC Introdução ao Teste de Software – Plataforma Coursera 
5. Análise dos Resultados e próximos passos 
After the functional tests are done , the tests are satisfactory another tool that can be used for 
guaranteed and ensure again that the results are correct , functional tests are correct we can use 
a protocol analyzer which is called Wireshark and it will tell us if the information has been sent 
correctly to the final destination, this tool let us know what is happening at the network, also it 
stores data for offline analysis, those functional test will be repeated for each value included in 
this scripts, after those tests are finished , a load test , or regression testing can be executed in 
order to see the behavior of the system where fixes are added and also when there is a load of 
messages introduced to the router, it helped to see if the steps were implemented properly too. 
Scripts used to generate the scenarios: 
Seagull Diameter Server Sample XML ConfigurationFile for ro.ccr-cca.event.server.xml: 
<?xml version="1.0" encoding="ISO-8859-1" ?> 
<scenario> 
<init> 
 <receive channel="channel-1"> 
 <command name="CER"> 
 </command> 
 <action> 
 <store name="ven" entity="Vendor-Id"> </store> 
 </action> 
 </receive> 
 
 <send channel="channel-1"> 
 <command name="CEA"> 
 <avp name="Result-Code" value="2001"> </avp> 
 <avp name="Origin-Host" value="idefix.grenoble.hp.com"> </avp> 
 <avp name="Origin-Realm" value="grenoble.hp.com"> </avp> 
 <avp name="Host-IP-Address" value="0x00010f80aa3c"> </avp> 
 <avp name="Vendor-Id" value="11"> </avp> 
 <avp name="Product-Name" value="HP_HSS"> </avp> 
 <avp name="Firmware-Revision" value="1"> </avp> 
 </command> 
 </send> 
</init> 
 
<traffic> 
 <receive channel="channel-1"> 
 <command name="CCR"> 
 <!-- Only need to specify what needs to be parsed --> 
 <avp name="Session-Id" value="dont_care"> </avp> 
 </command> 
 <!-- Store action is at the end of the command --> 
 <action> 
 <store name="HbH" entity="HbH-id"></store> 
 <store name="E2E" entity="EtE-id"></store> 
 <store name="sid" entity="Session-Id"></store> 
 </action> 
 </receive> 
 
 <send channel="channel-1"> 
 <!-- Restore action is before the command --> 
 <action> 
 <restore name="HbH" entity="HbH-id"> </restore> 
 <restore name="E2E" entity="EtE-id"> </restore> 
 <restore name="sid" entity="Session-Id"> </restore> 
 </action> 
 <!-- Warning: content of CCA to check --> 
 <command name="CCA"> 
 <avp name="Session-Id" value="will_be_erased"> </avp> 
 <avp name="Vendor-Specific-Application-Id"> 
 <avp name="Vendor-Id" value="11"></avp> 
 <avp name="Auth-Application-Id" value="167772151"></avp> 
 <avp name="Acct-Application-Id" value="0"></avp> 
 </avp> 
 <avp name="Origin-Host" value="idefix.grenoble.hp.com"> </avp> 
 <avp name="Origin-Realm" value="grenoble.hp.com"> </avp> 
 <avp name="Auth-Session-State" value="1"> </avp> 
 <avp name="Server-Name" value="idefix.grenoble.hp.com"> </avp> 
 <avp name="Result-Code" value="2001"> </avp> 
 </command> 
 </send> 
</traffic> 
</scenario> 
 
Seagull Diameter Server Sample XML Configuration File: 
 
<?xml version="1.0" encoding="ISO-8859-1"?> 
<configuration name="Simple IP Server Conf"> 
 <define entity="transport" 
 name="trans-1" 
 file="libtrans_ip.so" 
 create_function="create_cipio_instance" 
 delete_function="delete_cipio_instance" 
 init-args="type=tcp;decode-buf-len=262144;encode-buf-len=262144"> 
 </define> 
 
 <define entity="channel" 
 name="channel-1" 
 protocol="diameter-v1" 
 transport="trans-1" 
 open-args="mode=server;source=192.168.0.2:12000"> 
 </define> 
 
 <define entity="traffic-param" name="display-period" value="1"></define> 
 <define entity="traffic-param" name="model-traffic-select" value="best-effort"></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="1"></define> 
 <define entity="traffic-param" name="max-receive" value="1"></define> 
 <define entity="traffic-param" name="max-simultaneous-calls" value="1"></define> 
 <define entity="traffic-param" name="select-timeout-ms" value="50"></define> 
Template de apoio à Atividade de Teste de Software 
Criado para o MOOC Introdução ao Teste de Software – Plataforma Coursera 
 
</configuration> 
 
Seagull Diameter Client Sample XML Configuration File for ro.ccr-cca.event.client.xml: 
 
<?xml version="1.0" encoding="ISO-8859-1" ?> 
<scenario> 
 <counter> 
 <counterdef name="HbH-counter" init="1000"> </counterdef> 
 <counterdef name="EtE-counter" init="2000"> </counterdef> 
 <counterdef name="session-counter" init="0"> </counterdef> 
 <!--counterdef name="session-counter-update" init="0"> </counterdef--> 
 <!--counterdef name="session-counter-terminate" init="0"> </counterdef--> 
 <!--counterdef name="request-type-counter" init="1" max="3" behaviour="init"> 
</counterdef--> 
</counter> 
 
<init> 
 <send channel="channel-1"> 
 <command name="CER"> 
 <avp name="Origin-Host" value="test1.test.com"> </avp> 
 <avp name="Origin-Realm" value="test.com"> </avp> 
 <avp name="Host-IP-Address" value="0x00017F000001"> </avp> 
 <avp name="Vendor-Id" value="10415"> </avp> 
 <avp name="Product-Name" value="Ro Interface"> </avp> 
 <avp name="Origin-State-Id" value="1094807040"> </avp> 
 <avp name="Supported-Vendor-Id" value="10415"> </avp> 
 <avp name="Acct-Application-Id" value="4"> </avp> 
 <avp name="Vendor-Specific-Application-Id"> 
 <avp name="Vendor-Id" value="10415"></avp> 
 <avp name="Acct-Application-Id" value="4"></avp> 
 </avp> 
 <avp name="Firmware-Revision" value="1"> </avp> 
 </command> 
</send> 
 
 <receive channel="channel-1"> 
 <command name="CEA"> 
 </command> 
 </receive> 
</init> 
 
<!-- Traffic --> 
<traffic> 
<!-- Transaction in Ro CCR/CCA session --> 
 <send channel="channel-1"> 
 <action> 
 <!-- For each new call, increment the session-ID counter --> 
 <inc-counter name="HbH-counter"> </inc-counter> 
 <inc-counter name="EtE-counter"> </inc-counter> 
 <inc-counter name="session-counter"> </inc-counter> 
 <set-value name="HbH-id" 
 format="$(HbH-counter)"></set-value> 
 <set-value name="EtE-id" 
 format="$(EtE-counter)"></set-value> 
 <set-value name="Session-Id" format="ro1.1;38;13403563;$(session-counter)"></set-value> 
 <!--set-value name="CC-Request-Type" format="$(request-type-counter)"></set-value--> <!—
session based --> 
 </action> 
 <command name="CCR"> 
 <avp name="Session-Id" value="value_is_replaced"> </avp> 
 <avp name="Service-Context-Id" value="context1"> </avp> 
 <avp name="Origin-Host" value="node1.test.com"> </avp> 
 <avp name="Origin-Realm" value="test.com"> </avp> 
 <avp name="Destination-Realm" value="test2.com"> </avp> 
 <avp name="Destination-Host" value="node2.test2.com"> </avp> 
 <avp name="CC-Request-Type" value="4"> </avp> <!--Event based--> 
 <avp name="CC-Request-Number" value="0"> </avp> 
 <avp name="Auth-Application-Id" value="4"></avp> 
 </command> 
 <action> 
 <start-timer></start-timer> 
 </action> 
 </send> 
 <receive channel="channel-1"> 
 <action> 
 <stop-timer></stop-timer> 
 </action> 
 <command name="CCA"> 
 </command> 
 </receive> 
</traffic> 
</scenario> 
 
Seagull Diameter RO base file example: 
 
<?xml version="1.0" encoding="ISO-8859-1"?> 
<protocol name="diameter-v1" type="binary" padding="4"> 
 
 <types> 
 <!-- Types defined for the AVP --> 
 <typedef name="Integer32" type="signed" size="4" unit="octet"></typedef> 
 <typedef name="Unsigned32" type="number" size="4" unit="octet"></typedef> 
 <typedef name="Integer64" type="signed64" size="8" unit="octet"></typedef> 
 <typedef name="Unsigned64" type="number64" size="8" unit="octet"></typedef> 
 <typedef name="OctetString" type="string" size="4" unit="octet"></typedef> 
 <typedef name="Grouped"type="grouped"></typedef> 
 </types> 
 <header name="command" length="msg-length" type="cmd-code"> 
 <fielddef name="protocol-version" size="1" unit="octet"></fielddef> 
 <fielddef name="msg-length" size="3" unit="octet"></fielddef> 
 <fielddef name="flags" size="1" unit="octet"></fielddef> 
 <fielddef name="cmd-code" size="3" unit="octet"></fielddef> 
 <fielddef name="application-id" size="4" unit="octet"></fielddef> 
 <fielddef name="HbH-id" size="4" unit="octet"></fielddef> 
 <fielddef name="EtE-id" size="4" unit="octet"></fielddef> 
 </header> 
 <body> 
 <header name="avp" length="avp-length" type="avp-code"> 
 <fielddef name="avp-code" size="4" unit="octet"></fielddef> 
 <fielddef name="flags" size="1" unit="octet"></fielddef> 
 <fielddef name="avp-length" size="3" unit="octet"></fielddef> 
Template de apoio à Atividade de Teste de Software 
Criado para o MOOC Introdução ao Teste de Software – Plataforma Coursera 
 <optional> 
 <fielddef name="Vendor-ID" size="4" unit="octet" 
 condition="mask" field="flags" mask="128"> 
 </fielddef> 
 </optional> 
 </header> 
 </body> 
 <dictionary> 
 <!-- AVP definitions --> 
 <avp> 
 <!-- Diameter Base (RFC 3588) AVPs --> 
 <define name="Acct-Interim-Interval" type="Unsigned32"> 
 <setfield name="avp-code" value="85"></setfield> 
 <setfield name="flags" value="64"></setfield> 
 </define> 
 <define name="Accounting-Realtime-Required" type="Unsigned32"> 
 <setfield name="avp-code" value="483"></setfield> 
 <setfield name="flags" value="64"></setfield> 
 </define> 
 <define name="Acct-Multi-Session-Id" type="OctetString"> 
 <setfield name="avp-code" value="50"></setfield> 
 <setfield name="flags" value="64"></setfield> 
 </define> 
 <define name="Accounting-Record-Number" type="Unsigned32"> 
 <setfield name="avp-code" value="485"></setfield> 
 <setfield name="flags" value="64"></setfield> 
 </define> 
 <define name="Accounting-Record-Type" type="OctetString"> 
 <setfield name="avp-code" value="480"></setfield> 
 <setfield name="flags" value="64"></setfield> 
 </define> 
 <define name="Accounting-Session-Id" type="OctetString"> 
 <setfield name="avp-code" value="44"></setfield> 
 <setfield name="flags" value="64"></setfield> 
 </define> 
 <define name="Accounting-Sub-Session-Id" type="Unsigned64"> 
 <setfield name="avp-code" value="287"></setfield> 
 <setfield name="flags" value="64"></setfield> 
 </define> 
 <define name="Acct-Application-Id" type="Unsigned32"> 
 <setfield name="avp-code" value="259"></setfield> 
 <setfield name="flags" value="64"></setfield> 
 </define> 
 <define name="Auth-Application-Id" type="Unsigned32"> 
 <setfield name="avp-code" value="258"></setfield> 
 <setfield name="flags" value="64"></setfield> 
 </define> 
 <define name="Auth-Request-Type" type="Unsigned32"> 
 <setfield name="avp-code" value="274"></setfield> 
 <setfield name="flags" value="64"></setfield> 
 </define> 
 <define name="Authorization-Lifetime" type="Unsigned32"> 
 <setfield name="avp-code" value="291"></setfield> 
 <setfield name="flags" value="64"></setfield> 
 </define> 
 <define name="Auth-Grace-Period" type="Unsigned32"> 
 <setfield name="avp-code" value="276"></setfield> 
 <setfield name="flags" value="64"></setfield> 
 </define> 
 <define name="Auth-Session-State" type="Unsigned32"> 
 <setfield name="avp-code" value="277"></setfield> 
 <setfield name="flags" value="64"></setfield> 
 </define> 
 <define name="Re-Auth-Request-Type" type="Unsigned32"> 
 <setfield name="avp-code" value="285"></setfield> 
 <setfield name="flags" value="64"></setfield> 
 </define> 
 <define name="Class" type="OctetString"> 
 <setfield name="avp-code" value="25"></setfield> 
 <setfield name="flags" value="64"></setfield> 
 </define> 
 <define name="Destination-Host" type="OctetString"> 
 <setfield name="avp-code" value="293"></setfield> 
 <setfield name="flags" value="64"></setfield> 
 </define> 
 <define name="Destination-Realm" type="OctetString"> 
 <setfield name="avp-code" value="283"></setfield> 
 <setfield name="flags" value="64"></setfield> 
 </define> 
 <define name="Disconnect-Cause" type="Unsigned32"> 
 <setfield name="avp-code" value="273"></setfield> 
 <setfield name="flags" value="64"></setfield> 
 </define> 
 <define name="Error-Message" type="OctetString"> 
 <setfield name="avp-code" value="281"></setfield> 
 <setfield name="flags" value="0"></setfield> 
 </define> 
 <define name="Error-Reporting-Host" type="OctetString"> 
 <setfield name="avp-code" value="294"></setfield> 
 <setfield name="flags" value="0"></setfield> 
 </define> 
 <define name="Event-Timestamp" type="OctetString"> 
 <setfield name="avp-code" value="55"></setfield> 
 <setfield name="flags" value="64"></setfield> 
 </define> 
 <define name="Failed-AVP" type="Grouped"> 
 <setfield name="avp-code" value="279"></setfield> 
 <setfield name="flags" value="0"></setfield> 
 </define> 
 <define name="Firmware-Revision" type="Unsigned32"> 
 <setfield name="avp-code" value="267"></setfield> 
 <setfield name="flags" value="64"></setfield> 
 </define> 
 <define name="Host-IP-Address" type="OctetString"> 
 <setfield name="avp-code" value="257"></setfield> 
 <setfield name="flags" value="64"></setfield> 
 </define> 
 <define name="Origin-Host" type="OctetString"> 
 <setfield name="avp-code" value="264"></setfield> 
 <setfield name="flags" value="64"></setfield> 
 </define> 
 <define name="Origin-Realm" type="OctetString"> 
 <setfield name="avp-code" value="296"></setfield> 
 <setfield name="flags" value="64"></setfield> 
Template de apoio à Atividade de Teste de Software 
Criado para o MOOC Introdução ao Teste de Software – Plataforma Coursera 
 </define> 
 <define name="Origin-State-Id" type="Unsigned32"> 
 <setfield name="avp-code" value="278"></setfield> 
 <setfield name="flags" value="64"></setfield> 
 </define> 
 <define name="Product-Name" type="OctetString"> 
 <setfield name="avp-code" value="269"></setfield> 
 <setfield name="flags" value="0"></setfield> 
 </define> 
 <define name="Result-Code" type="Unsigned32"> 
 <setfield name="avp-code" value="268"></setfield> 
 <setfield name="flags" value="64"></setfield> 
 </define> 
 <define name="Route-Record" type="OctetString"> 
 <setfield name="avp-code" value="282"></setfield> 
 <setfield name="flags" value="64"></setfield> 
 </define> 
 <define name="Session-Id" type="OctetString"> 
 <setfield name="avp-code" value="263"></setfield> 
 <setfield name="flags" value="64"></setfield> 
 </define> 
 <define name="Session-Timeout" type="Unsigned32"> 
 <setfield name="avp-code" value="27"></setfield> 
 <setfield name="flags" value="64"></setfield> 
 </define> 
 <define name="Supported-Vendor-Id" type="Unsigned32"> 
 <setfield name="avp-code" value="265"></setfield> 
 <setfield name="flags" value="64"></setfield> 
 </define> 
 <define name="Termination-Cause" type="Unsigned32"> 
 <setfield name="avp-code" value="295"></setfield> 
 <setfield name="flags" value="64"></setfield> 
 </define> 
 <define name="User-Name" type="OctetString"> 
 <setfield name="avp-code" value="1"></setfield> 
 <setfield name="flags" value="64"></setfield></define> 
 <define name="Vendor-Id" type="Unsigned32"> 
 <setfield name="avp-code" value="266"></setfield> 
 <setfield name="flags" value="64"></setfield> 
 </define> 
 <define name="Vendor-Specific-Application-Id" type="Grouped"> 
 <setfield name="avp-code" value="260"></setfield> 
 <setfield name="flags" value="64"></setfield> 
 </define> 
 <define name="Service-Information" type="Grouped"> 
 <setfield name="avp-code" value="873"></setfield> 
 <setfield name="flags" value="64"></setfield> 
 </define> 
 <!-- Diameter RFC 4006 AVPs --> 
 <define name="Service-Context-Id" type="OctetString"> 
 <setfield name="avp-code" value="461"></setfield> 
 <setfield name="flags" value="64"></setfield> 
 </define> 
 <define name="CC-Request-Type" type="OctetString"> 
 <setfield name="avp-code" value="416"></setfield> 
 <setfield name="flags" value="64"></setfield> 
 </define> 
 <define name="CC-Request-Number" type="Unsigned32"> 
 <setfield name="avp-code" value="415"></setfield> 
 <setfield name="flags" value="64"></setfield> 
 </define> 
 <define name="Requested-Action" type="Unsigned32"> 
 <setfield name="avp-code" value="436"></setfield> 
 <setfield name="flags" value="64"></setfield> 
 </define> 
 <define name="Granted-Service-Unit" type="Grouped"> 
 <setfield name="avp-code" value="431"></setfield> 
 <setfield name="flags" value="64"></setfield> 
 </define> 
 <define name="Requested-Service-Unit" type="Grouped"> 
 <setfield name="avp-code" value="456"></setfield> 
 <setfield name="flags" value="64"></setfield> 
 </define> 
 <define name="Value-Digits" type="Integer64"> 
 <setfield name="avp-code" value="447"></setfield> 
 <setfield name="flags" value="64"></setfield> 
 </define> 
 </avp> 
 <!-- COMMAND definitions --> 
 <command session-id="Session-Id" out-of-session-id="HbH-id"> 
 <!-- Diameter Base (RFC 3588) commands --> 
 <define name="CER"> 
 <!-- It's a request, R bit is set --> 
 <setfield name="flags" value="128"></setfield> 
 <setfield name="cmd-code" value="257"></setfield> 
 <setfield name="protocol-version" value="1"></setfield> 
 </define> 
 <define name="CEA"> 
 <!-- It's an answer, R bit is unset --> 
 <setfield name="flags" value="0"></setfield> 
 <setfield name="cmd-code" value="257"></setfield> 
 <setfield name="protocol-version" value="1"></setfield> 
 </define> 
 <!-- Diameter RFC 4006 commands --> 
 <define name="CCR"> 
 <!-- It's a request, R bit is set --> 
 <setfield name="flags" value="128"></setfield> 
 <setfield name="cmd-code" value="4"></setfield> 
 <setfield name="application-id" value="4"></setfield> 
 <setfield name="protocol-version" value="1"></setfield> 
 </define> 
 <define name="CCA"> 
 <!-- It's an answer, R bit is unset --> 
 <setfield name="flags" value="0"></setfield> 
 <setfield name="cmd-code" value="4"></setfield> 
 <setfield name="application-id" value="4"></setfield> 
 <setfield name="protocol-version" value="1"></setfield> 
 </define> 
 </command> 
 </dictionary> 
</protocol>

Mais conteúdos dessa disciplina