4 | | -rw-r--r-- 1 glawler SAFER 11740 Feb 12 07:05 annotated.xml |
5 | | -rw-r--r-- 1 glawler SAFER 151 Feb 12 07:05 assignment |
6 | | -rw-r--r-- 1 glawler SAFER 68 Feb 12 07:05 backend_config.yaml |
7 | | drwxr-xr-x 2 glawler SAFER 1024 Feb 12 07:05 children |
8 | | -rw-r--r-- 1 glawler SAFER 7784 Feb 12 07:05 config.tgz |
9 | | -rw-r--r-- 1 glawler SAFER 7591 Feb 12 07:05 converted.xml |
10 | | -rw-r--r-- 1 glawler SAFER 2563 Feb 12 07:05 embedding.yaml |
11 | | -rw-r--r-- 1 glawler SAFER 1396 Feb 12 07:05 experiment.tcl |
12 | | -rw-r--r-- 1 glawler SAFER 0 Feb 12 07:05 ghosts |
13 | | -rw-r--r-- 1 glawler SAFER 793 Feb 12 07:05 hosts |
14 | | -rw-r--r-- 1 glawler SAFER 6 Feb 12 07:05 hostsw.pickle |
15 | | -rw-r--r-- 1 glawler SAFER 1403 Feb 12 07:05 maverick_url |
16 | | -rw-r--r-- 1 glawler SAFER 1803 Feb 12 07:05 openvz_guest_url |
17 | | -rw-r--r-- 1 glawler SAFER 13217 Feb 12 07:05 partitioned.xml |
18 | | -rw-r--r-- 1 glawler SAFER 816 Feb 12 07:05 phys_topo.ns |
19 | | -rw-r--r-- 1 glawler SAFER 1120 Feb 12 07:05 phys_topo.xml |
20 | | -rw-r--r-- 1 glawler SAFER 16 Feb 12 07:05 pid_eid |
21 | | -rw-r--r-- 1 glawler SAFER 54 Feb 12 07:05 pnode_types.yaml |
22 | | -rw-r--r-- 1 glawler SAFER 10 Feb 12 07:05 qemu_users.yaml |
23 | | drwxr-xr-x 2 glawler SAFER 512 Feb 12 07:05 route |
24 | | -rw-r--r-- 1 glawler SAFER 205 Feb 12 07:05 shaping.yaml |
25 | | -rw-r--r-- 1 glawler SAFER 732 Feb 12 07:05 site.conf |
26 | | drwxr-xr-x 2 glawler SAFER 512 Feb 12 07:05 software |
27 | | drwxr-xr-x 2 glawler SAFER 512 Feb 12 07:05 switch |
28 | | -rw-r--r-- 1 glawler SAFER 707 Feb 12 07:05 switch_extra.yaml |
29 | | -rw-r--r-- 1 glawler SAFER 6 Feb 12 07:05 swlocs.pickle |
30 | | -rw-r--r-- 1 glawler SAFER 40008 Feb 12 07:05 topo.xml |
31 | | -rw-r--r-- 1 glawler SAFER 3136 Feb 12 07:05 traffic_shaping.pickle |
32 | | -rw-r--r-- 1 glawler SAFER 61375 Feb 12 07:05 visualization.png |
33 | | -rw-r--r-- 1 glawler SAFER 3 Feb 12 07:05 wirefilters.yaml |
| 6 | set ns [new Simulator] |
| 7 | source tb_compat.tcl |
| 8 | |
| 9 | set opt(netSpeed) 100Mb |
| 10 | |
| 11 | set allNodes "beaker beauregard brewster drbunsenhoneydew floyd lips mousey rizzo pops kermit piggy fozzie drteeth animal janice" |
| 12 | set studNodes "beaker beauregard brewster drbunsenhoneydew kermit piggy fozzie" |
| 13 | set mayhemNodes "floyd lips mousey rizzo pops drteeth animal janice" |
| 14 | |
| 15 | foreach node $allNodes { |
| 16 | set $node [$ns node] |
| 17 | } |
| 18 | |
| 19 | # link between LANS |
| 20 | set rainbow [$ns duplex-link "fozzie" "janice" 100Mb 0.0ms DropTail] |
| 21 | |
| 22 | # two LANs |
| 23 | set studebaker [$ns make-lan $studNodes $opt(netSpeed) 0.0ms] |
| 24 | set electricmayhem [$ns make-lan $mayhemNodes $opt(netSpeed) 0.0ms] |
| 25 | |
| 26 | $ns rtproto Static |
| 27 | $ns run |
| 29 | |
| 30 | {{{ |
| 31 | [glawler@users:~/src/nsfiles]$ /share/containers/containerize.py DETER muppetnet ./muppetnet.ns |
| 32 | }}} |
| 33 | |
| 34 | This creates the directory {{{/proj/Deter/exp/muppetnet}}} which contains a {{{containers}}} directory. This directory has the following files: |
| 35 | |
| 36 | {{{ |
| 37 | -rw-r--r-- 1 glawler Deter 9668 Feb 12 07:25 annotated.xml |
| 38 | -rw-r--r-- 1 glawler Deter 142 Feb 12 07:25 assignment |
| 39 | -rw-r--r-- 1 glawler Deter 68 Feb 12 07:25 backend_config.yaml |
| 40 | drwxr-xr-x 2 glawler Deter 1024 Feb 12 07:25 children |
| 41 | -rw-r--r-- 1 glawler Deter 7246 Feb 12 07:26 config.tgz |
| 42 | -rw-r--r-- 1 glawler Deter 5660 Feb 12 07:25 converted.xml |
| 43 | -rw-r--r-- 1 glawler Deter 2432 Feb 12 07:25 embedding.yaml |
| 44 | -rw-r--r-- 1 glawler Deter 662 Feb 12 07:25 experiment.tcl |
| 45 | -rw-r--r-- 1 glawler Deter 0 Feb 12 07:25 ghosts |
| 46 | -rw-r--r-- 1 glawler Deter 793 Feb 12 07:26 hosts |
| 47 | -rw-r--r-- 1 glawler Deter 6 Feb 12 07:26 hostsw.pickle |
| 48 | -rw-r--r-- 1 glawler Deter 1315 Feb 12 07:25 maverick_url |
| 49 | -rw-r--r-- 1 glawler Deter 1690 Feb 12 07:25 openvz_guest_url |
| 50 | -rw-r--r-- 1 glawler Deter 11063 Feb 12 07:25 partitioned.xml |
| 51 | -rw-r--r-- 1 glawler Deter 816 Feb 12 07:25 phys_topo.ns |
| 52 | -rw-r--r-- 1 glawler Deter 1120 Feb 12 07:25 phys_topo.xml |
| 53 | -rw-r--r-- 1 glawler Deter 16 Feb 12 07:25 pid_eid |
| 54 | -rw-r--r-- 1 glawler Deter 54 Feb 12 07:25 pnode_types.yaml |
| 55 | -rw-r--r-- 1 glawler Deter 10 Feb 12 07:25 qemu_users.yaml |
| 56 | drwxr-xr-x 2 glawler Deter 512 Feb 12 07:26 route |
| 57 | -rw-r--r-- 1 glawler Deter 205 Feb 12 07:26 shaping.yaml |
| 58 | -rw-r--r-- 1 glawler Deter 732 Feb 12 07:25 site.conf |
| 59 | drwxr-xr-x 2 glawler Deter 512 Feb 12 07:26 software |
| 60 | drwxr-xr-x 2 glawler Deter 512 Feb 12 07:26 switch |
| 61 | -rw-r--r-- 1 glawler Deter 708 Feb 12 07:26 switch_extra.yaml |
| 62 | -rw-r--r-- 1 glawler Deter 6 Feb 12 07:26 swlocs.pickle |
| 63 | -rw-r--r-- 1 glawler Deter 36759 Feb 12 07:26 topo.xml |
| 64 | -rw-r--r-- 1 glawler Deter 3136 Feb 12 07:26 traffic_shaping.pickle |
| 65 | -rw-r--r-- 1 glawler Deter 66961 Feb 12 07:26 visualization.png |
| 66 | -rw-r--r-- 1 glawler Deter 3 Feb 12 07:26 wirefilters.yaml |
| 67 | }}} |
| 68 | |
| 69 | Notes on these files: |
| 70 | |
| 71 | **annotated.xml** - This is an XML file that describes the nodes and substrates (networks) of the experiment. The node description includes name, interfaces, container type, and node type (pc, etc). |
| 72 | |
| 73 | **assignment** - Shows container assignment to physical node. e.g. node "foo" runs on physical node 1. |
| 74 | |
| 75 | **backend_config.yaml** - "{server: 'boss.isi.deterlab.net:6667', unique_id: fdb56b6d989ff6a4}" |
| 76 | |
| 77 | **children** - Not sure. Is a directory that has files which describe a DAG - relationships between pnodes, openvz, and container nodes. Mostly empty files in this experiment though as the network topology is minimal. |
| 78 | |
| 79 | **config.tgz** - This directory, {{{./containers}}} tarred and gzipped. |
| 80 | |
| 81 | **converted.xml** - the same as {{{annotated.xml}}} minus the container information added. |
| 82 | |
| 83 | **embedding.yaml** - container and pnode relationships in YAML. |
| 84 | |
| 85 | **experiment.tcl** - The NS file which generated the experiment. |
| 86 | |
| 87 | **ghosts** - empty file |
| 88 | |
| 89 | **hosts** - {{{/etc/hosts}}} which includes the container nodes. |
| 90 | |
| 91 | **hostsw.pickle** - ??? {{{(dp0\n.}}} Looks like a pickle file (binary python marhshalling format), but does not "un-pickle" into any data. Hits EOF. |
| 92 | |
| 93 | **maverick_url** - URLs to container images. Default location is {{{http://scratch/benito/...}}}. Used for qemu images, I think. |
| 94 | |
| 95 | **openvz_guest_url** - URLs to openvz images. Default location {{{/share/containers/images/...}}} |
| 96 | |
| 97 | **partitioned.xml** - Another XML file that is used in the partitioning process. See {{{annotated.xml}}} |
| 98 | |
| 99 | **phys_topo.ns**, **phys_topo.xml** - physical NS file/topology/nodes of experiment. |
| 100 | |
| 101 | **pid_eid** - group and experiment ID of experiment |
| 102 | |
| 103 | **pnode_types.yaml** - The machine types of the pnodes, "pc2133, bpc2133, MicroCloud", in YAML. |
| 104 | |
| 105 | **qemu_users.yaml** - list of users for qemu nodes? Just contains {{{[glawler]}}} for this experiment, so it's not an exhaustive list... |
| 106 | |
| 107 | **route** - routing info for containers. directory with one file per node, showing route info. e.g. {{{10.0.0.0/8 10.0.1.7}}}. |
| 108 | |
| 109 | **shaping.yaml** - traffic shaping for container networks. |
| 110 | |
| 111 | **site.conf** - configuration settings for containers: example: |
| 112 | {{{ |
| 113 | [containers] |
| 114 | switch_shaping = true |
| 115 | qemu_host_hw = pc2133,bpc2133,MicroCloud |
| 116 | openvz_guest_url = %(exec_root)s/images/ubuntu-10.04-x86.tar.gz |
| 117 | exec_root = /share/containers |
| 118 | qemu_host_os = Ubuntu1204-64-STD |
| 119 | openvz_host_os = CentOS6-64-openvz |
| 120 | maverick_url = http://scratch/benito/pangolinbz.img.bz2 |
| 121 | xmlrpc_server = boss.isi.deterlab.net:3069 |
| 122 | url_base = http://www.isi.deterlab.net/ |
| 123 | grandstand_port = 4919 |
| 124 | backend_server = boss.isi.deterlab.net:6667 |
| 125 | openvz_template_dir = %(exec_root)s/images/ |
| 126 | attribute_prefix = containers |
| 127 | switched_containers = qemu,process |
| 128 | }}} |
| 129 | |
| 130 | **software** - empty directory |
| 131 | |
| 132 | **switch** - directory of per switch node (pnodes) files. Each file describes vlan creation, numbering, and switch port/vlan assignment for containers on that node. Does this get fed to the {{{vde_switch}}es on the pnodes? |
| 133 | |
| 134 | **switch_extra.yaml** - YAML file which looks like it contains information about gluing together the VDE switches - extra interfaces (taps), double pipes (attaching switches together I think), and tap pipes (for attaching tap ifaces to the switch) |
| 135 | |
| 136 | **swlocs.pickle** - another python pickle file. But hits EOF before it is decoded. No idea what this is for. |
| 137 | |
| 138 | **topo.xml** - Containers topology in YAML format. Has substrates (networks). For nodes it shows interfaces and addressing (ip/MAC) as well as which {{{vde_switch}}} the node is attached to. Nodes also contain some VM info like disk size, template/image path/name, vhost. |
| 139 | |
| 140 | **traffic_shaping.pickle** - Looks like, oddly, traffic shaping information in the python pickle format: |
| 141 | |
| 142 | {{{ |
| 143 | >>> import pickle |
| 144 | >>> import pprint |
| 145 | >>> fd = open('traffic_shaping.pickle', 'rb') |
| 146 | >>> d = pickle.load(fd) |
| 147 | >>> pprint.pprint(d) |
| 148 | >>> pprint.pprint(d) |
| 149 | {u'animal': {u'10.0.0.1': {'bandwidth': None, 'delay': None, 'loss': None}, |
| 150 | u'10.0.0.2': {'bandwidth': None, 'delay': None, 'loss': None}, |
| 151 | u'10.0.0.3': {'bandwidth': None, 'delay': None, 'loss': None}, |
| 152 | u'10.0.0.4': {'bandwidth': None, 'delay': None, 'loss': None}, |
| 153 | u'10.0.0.5': {'bandwidth': None, 'delay': None, 'loss': None}, |
| 154 | u'10.0.0.6': {'bandwidth': None, 'delay': None, 'loss': None}, |
| 155 | u'10.0.0.8': {'bandwidth': None, 'delay': None, 'loss': None}}, |
| 156 | ... |
| 157 | u'rizzo': {u'10.0.0.1': {'bandwidth': None, 'delay': None, 'loss': None}, |
| 158 | u'10.0.0.2': {'bandwidth': None, 'delay': None, 'loss': None}, |
| 159 | u'10.0.0.3': {'bandwidth': None, 'delay': None, 'loss': None}, |
| 160 | u'10.0.0.5': {'bandwidth': None, 'delay': None, 'loss': None}, |
| 161 | u'10.0.0.6': {'bandwidth': None, 'delay': None, 'loss': None}, |
| 162 | u'10.0.0.7': {'bandwidth': None, 'delay': None, 'loss': None}, |
| 163 | u'10.0.0.8': {'bandwidth': None, 'delay': None, 'loss': None}}} |
| 164 | }}} |
| 165 | |
| 166 | **visualization.png** - image of the topology of the container networks. |
| 167 | |
| 168 | **wirefilters.yaml** - empty YAML file: {{{ {} }}} |