21 | | These fragments can either be described in [FeddAbout#ExperimentDescriptions the extended ns-2] language or in simple xml containing a [http://fedd.deterlab.net/wiki/FeddPluginArchitecture#TopologyDescriptionLanguage topdl] description. |
| 21 | These fragments can either be described in [FeddAbout#ExperimentDescriptions the extended ns-2] language or in simple xml containing a [http://fedd.deterlab.net/wiki/FeddPluginArchitecture#TopologyDescriptionLanguage topdl] description. The three-connection node is encoded in ns-2 as: |
| 22 | |
| 23 | {{{ |
| 24 | # simple DETER topology |
| 25 | # COMPOSITION: bot0:optional:Node:Single,Node |
| 26 | # COMPOSITION: bot0:optional:Node:Single,Node |
| 27 | # COMPOSITION: bot0:optional:Node:Single,Node |
| 28 | |
| 29 | set ns [new Simulator] |
| 30 | source tb_compat.tcl |
| 31 | |
| 32 | |
| 33 | set bot0 [$ns node] |
| 34 | tb-set-node-testbed $bot0 "deter" |
| 35 | |
| 36 | $ns rtproto Static |
| 37 | $ns run |
| 38 | |
| 39 | |
| 40 | }}} |
| 41 | |
| 42 | The comments containing the {{{COMPOSITION}}} keyword contain the constraints. The first colon-separated field gives the node name to which the constraint applies, the second whether the field is optional or required, the third the type of connector, and the last a comma-separated list of acceptable types to connect. Optional constraints need not be satisfied, though our satisfier tries to satsify as many as possible. |
| 43 | |
| 44 | The same component in XML is: |
| 45 | |
| 46 | {{{ |
| 47 | <component> |
| 48 | <constraints> |
| 49 | <constraint> |
| 50 | <name>bot0</name> |
| 51 | <required>False</required> |
| 52 | <provides>Node</provides> |
| 53 | <accepts>Single</accepts> |
| 54 | <accepts>Node</accepts> |
| 55 | </constraint> |
| 56 | <constraint> |
| 57 | <name>bot0</name> |
| 58 | <required>False</required> |
| 59 | <provides>Node</provides> |
| 60 | <accepts>Single</accepts> |
| 61 | <accepts>Node</accepts> |
| 62 | </constraint> |
| 63 | <constraint> |
| 64 | <name>bot0</name> |
| 65 | <required>False</required> |
| 66 | <provides>Node</provides> |
| 67 | <accepts>Single</accepts> |
| 68 | <accepts>Node</accepts> |
| 69 | </constraint> |
| 70 | </constraints> |
| 71 | <experiment> |
| 72 | <version>1.0</version> |
| 73 | <elements> |
| 74 | <computer> |
| 75 | <name>bot0</name> |
| 76 | <attribute> |
| 77 | <attribute>type</attribute> |
| 78 | <value>pc</value> |
| 79 | </attribute> |
| 80 | <attribute> |
| 81 | <attribute>testbed</attribute> |
| 82 | <value>deter</value> |
| 83 | </attribute> |
| 84 | <attribute> |
| 85 | <attribute>failureaction</attribute> |
| 86 | <value>fatal</value> |
| 87 | </attribute> |
| 88 | </computer> |
| 89 | </elements> |
| 90 | </experiment> |
| 91 | </component> |
| 92 | }}} |