| 1 | [[PageOutline(2-4)]] |
| 2 | |
| 3 | == Simple testbed == |
| 4 | |
| 5 | This is the simplest configuration for testing with freeDiameter. |
| 6 | |
| 7 | This testbed involves only two peers directly connected, and the [wiki:test_app.fdx test_app] application is used to exchange a message over Diameter between these two peers. |
| 8 | |
| 9 | {{{ |
| 10 | #!graphviz |
| 11 | graph G { |
| 12 | graph [bgcolor="#E8E8E8C8"]; |
| 13 | rankdir = "LR" |
| 14 | node [shape=box]; |
| 15 | edge [color=blue]; |
| 16 | cli [ |
| 17 | label="cli.simple.testbed.aaa" |
| 18 | URL="#cli.simple.testbed.aaa" |
| 19 | ] |
| 20 | serv [ |
| 21 | label="serv.simple.testbed.aaa" |
| 22 | URL="#serv.simple.testbed.aaa" |
| 23 | ] |
| 24 | cli -- serv [label=Diameter]; |
| 25 | } |
| 26 | }}} |
| 27 | |
| 28 | |
| 29 | === Screencast === |
| 30 | |
| 31 | This first video shows the [wiki:test_app.fdx test_app] extension in action in the simple testbed. The video shows two consoles, bottom-left and top-right. Bottom-left is the client, upper-right the server. |
| 32 | |
| 33 | It is recommended to watch the video in HD and fullscreen. |
| 34 | |
| 35 | [[Embed(youtube=FQwPBncbIxQ&hd=1,w=660,h=525)]] |
| 36 | |
| 37 | Here is what happens in the video: |
| 38 | * (0:00 ~ 0:04) Very short explanation. |
| 39 | * (0:00 ~ 0:38) Preparation of freeDiameter, using cmake. |
| 40 | * (0:39 ~ 2:15) Compilation (with make). |
| 41 | * (2:24 ~ 2:35) Start the daemon on both peers. |
| 42 | * (2:36 ~ 3:00) Check connection status in the logs. |
| 43 | * (3:00 ~ 3:50) Trig the {{{test_app}}} "ping" and watch the effect on the logs. |
| 44 | * (3:51 ~ 4:03) Stop the daemon. |
| 45 | |
| 46 | === Configuration files === |
| 47 | |
| 48 | Please note that these files may have been updated since the time the video was created. However, the purpose of the testbed remains the same. |
| 49 | |
| 50 | ==== Scripts ==== |
| 51 | The following scripts are referenced in this video: |
| 52 | [source:VirtualTestbed/scripts/freeDiameter-install.sh freeDiameter-install.sh]:: |
| 53 | Install missing dependencies (!Debian/Ubuntu), configure the source (running {{{cmake}}}). |
| 54 | |
| 55 | [source:VirtualTestbed/scripts/freeDiameter-run.sh freeDiameter-run.sh]:: |
| 56 | Compile the sources ({{{make}}}), then start the daemon. |
| 57 | |
| 58 | [source:VirtualTestbed/scripts/freeDiameter-trig.sh freeDiameter-trig.sh]:: |
| 59 | Send the USR1 signal to the daemon in a loop, to trig the {{{test_app}}} action. |
| 60 | |
| 61 | ==== cli.simple.testbed.aaa ==== |
| 62 | |
| 63 | These are the configuration files for freeDiameter on the client: |
| 64 | [source:VirtualTestbed/conf/cli.simple.testbed.aaa/freeDiameter/CMakeFlags CMakeFlags]:: |
| 65 | The flags passed to {{{cmake}}} (on the command-line) when preparing the source. The noticeable ones are: |
| 66 | * {{{-DBUILD_TEST_APP:BOOL=ON}}} : compile the [wiki:test_app.fdx] extension. |
| 67 | * {{{-DBUILD_DBG_MONITOR:BOOL=ON}}} : compile the [wiki:dbg_monitor.fdx] extension. |
| 68 | |
| 69 | [source:VirtualTestbed/conf/cli.simple.testbed.aaa/freeDiameter/freeDiameter.conf freeDiameter.conf]:: |
| 70 | The main freeDiameter configuration file. It simply indicates to load the two extensions and to connect to the server. |
| 71 | |
| 72 | [source:VirtualTestbed/conf/cli.simple.testbed.aaa/freeDiameter/test_app.conf test_app.conf]:: |
| 73 | Configuration file for the test_app extension. It can be changed to test different routing properties for example (by changing Destination-Realm value). |
| 74 | |
| 75 | ==== serv.simple.testbed.aaa ==== |
| 76 | |
| 77 | The server uses these files: [source:VirtualTestbed/conf/serv.simple.testbed.aaa/freeDiameter/CMakeFlags CMakeFlags], [source:VirtualTestbed/conf/serv.simple.testbed.aaa/freeDiameter/freeDiameter.conf freeDiameter.conf], and [source:VirtualTestbed/conf/serv.simple.testbed.aaa/freeDiameter/test_app.conf test_app.conf]. They are very similar to the client's one, so see previous section for explanations. |