annotate tools/python-PE/CompactRouting/Start-dycstra.py @ 8:6c40056777be

Initial revision
author fuchita
date Sat, 16 Feb 2008 13:18:02 +0900
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
8
6c40056777be Initial revision
fuchita
parents:
diff changeset
1 import re
6c40056777be Initial revision
fuchita
parents:
diff changeset
2 import sys
6c40056777be Initial revision
fuchita
parents:
diff changeset
3 import string
6c40056777be Initial revision
fuchita
parents:
diff changeset
4 import struct
6c40056777be Initial revision
fuchita
parents:
diff changeset
5
6c40056777be Initial revision
fuchita
parents:
diff changeset
6 sys.path.append('../modules')
6c40056777be Initial revision
fuchita
parents:
diff changeset
7
6c40056777be Initial revision
fuchita
parents:
diff changeset
8 import FederatedLinda
6c40056777be Initial revision
fuchita
parents:
diff changeset
9 from CompactRouting import *
6c40056777be Initial revision
fuchita
parents:
diff changeset
10
6c40056777be Initial revision
fuchita
parents:
diff changeset
11 ROUTING_HEADER_FORMAT = "!I"
6c40056777be Initial revision
fuchita
parents:
diff changeset
12 MAKER = "::::"
6c40056777be Initial revision
fuchita
parents:
diff changeset
13
6c40056777be Initial revision
fuchita
parents:
diff changeset
14 TUPLE_ID_LINKCONFIG = 1
6c40056777be Initial revision
fuchita
parents:
diff changeset
15 TUPLE_ID_ROUTING = 2
6c40056777be Initial revision
fuchita
parents:
diff changeset
16
6c40056777be Initial revision
fuchita
parents:
diff changeset
17 ROUTING_COMMAND_CONNECT = 1
6c40056777be Initial revision
fuchita
parents:
diff changeset
18 ROUTING_COMMAND_DISCONNECT = 2
6c40056777be Initial revision
fuchita
parents:
diff changeset
19 ROUTING_COMMAND_TRANSFER = 3
6c40056777be Initial revision
fuchita
parents:
diff changeset
20 ROUTING_COMMAND_UPDATE_TABLE = 4
6c40056777be Initial revision
fuchita
parents:
diff changeset
21
6c40056777be Initial revision
fuchita
parents:
diff changeset
22 testxml = \
6c40056777be Initial revision
fuchita
parents:
diff changeset
23 """<graph name = "Graf">
6c40056777be Initial revision
fuchita
parents:
diff changeset
24 <node label = "A" tsid = "localhost:10000">
6c40056777be Initial revision
fuchita
parents:
diff changeset
25 <destination label = "B"/>
6c40056777be Initial revision
fuchita
parents:
diff changeset
26 </node>
6c40056777be Initial revision
fuchita
parents:
diff changeset
27 <node label = "B" tsid = "localhost:10001">
6c40056777be Initial revision
fuchita
parents:
diff changeset
28 <destination label = "C"/>
6c40056777be Initial revision
fuchita
parents:
diff changeset
29 <destination label = "D"/>
6c40056777be Initial revision
fuchita
parents:
diff changeset
30 </node>
6c40056777be Initial revision
fuchita
parents:
diff changeset
31 <node label = "C" tsid = "localhost:10002">
6c40056777be Initial revision
fuchita
parents:
diff changeset
32 <destination label = "D"/>
6c40056777be Initial revision
fuchita
parents:
diff changeset
33 </node>
6c40056777be Initial revision
fuchita
parents:
diff changeset
34 <node label = "D" tsid = "localhost:10003">
6c40056777be Initial revision
fuchita
parents:
diff changeset
35 </node>
6c40056777be Initial revision
fuchita
parents:
diff changeset
36 </graph>
6c40056777be Initial revision
fuchita
parents:
diff changeset
37 """
6c40056777be Initial revision
fuchita
parents:
diff changeset
38
6c40056777be Initial revision
fuchita
parents:
diff changeset
39 def getFirstTsid(xmltext):
6c40056777be Initial revision
fuchita
parents:
diff changeset
40 p = re.compile('(?<=tsid = \").*(?=\")')
6c40056777be Initial revision
fuchita
parents:
diff changeset
41 m = p.findall(xmltext)
6c40056777be Initial revision
fuchita
parents:
diff changeset
42 return m[0]
6c40056777be Initial revision
fuchita
parents:
diff changeset
43
6c40056777be Initial revision
fuchita
parents:
diff changeset
44
6c40056777be Initial revision
fuchita
parents:
diff changeset
45
6c40056777be Initial revision
fuchita
parents:
diff changeset
46 if __name__ == "__main__":
6c40056777be Initial revision
fuchita
parents:
diff changeset
47
6c40056777be Initial revision
fuchita
parents:
diff changeset
48 if (len(sys.argv) == 2):
6c40056777be Initial revision
fuchita
parents:
diff changeset
49 print " : %s <xmlfilename>" % sys.argv[0]
6c40056777be Initial revision
fuchita
parents:
diff changeset
50 xmltext = open(sys.argv[1]).read()
6c40056777be Initial revision
fuchita
parents:
diff changeset
51 if xmltext is None:
6c40056777be Initial revision
fuchita
parents:
diff changeset
52 sys.exit(1)
6c40056777be Initial revision
fuchita
parents:
diff changeset
53
6c40056777be Initial revision
fuchita
parents:
diff changeset
54 else:
6c40056777be Initial revision
fuchita
parents:
diff changeset
55 xmltext = testxml
6c40056777be Initial revision
fuchita
parents:
diff changeset
56 #close else
6c40056777be Initial revision
fuchita
parents:
diff changeset
57 pass
6c40056777be Initial revision
fuchita
parents:
diff changeset
58
6c40056777be Initial revision
fuchita
parents:
diff changeset
59 firsttsid = getFirstTsid(xmltext)
6c40056777be Initial revision
fuchita
parents:
diff changeset
60 flinda = FederatedLinda.FederatedLinda()
6c40056777be Initial revision
fuchita
parents:
diff changeset
61 #first Landmark set
6c40056777be Initial revision
fuchita
parents:
diff changeset
62 landmark_tsidlist = firsttsid + ","
6c40056777be Initial revision
fuchita
parents:
diff changeset
63 #define dycstra hopcount
6c40056777be Initial revision
fuchita
parents:
diff changeset
64 landmark_hopcount = 2
6c40056777be Initial revision
fuchita
parents:
diff changeset
65
6c40056777be Initial revision
fuchita
parents:
diff changeset
66 host, portnum = string.split(firsttsid,':')
6c40056777be Initial revision
fuchita
parents:
diff changeset
67
6c40056777be Initial revision
fuchita
parents:
diff changeset
68 #set send packet format
6c40056777be Initial revision
fuchita
parents:
diff changeset
69 data = struct.pack(ROUTING_HEADER_FORMAT,landmark_hopcount)+landmark_tsidlist+MAKER+testxml
6c40056777be Initial revision
fuchita
parents:
diff changeset
70 linda1 = flinda.open(host, int(portnum))
6c40056777be Initial revision
fuchita
parents:
diff changeset
71 linda1.Out(TUPLE_ID_LINKCONFIG, data)
6c40056777be Initial revision
fuchita
parents:
diff changeset
72
6c40056777be Initial revision
fuchita
parents:
diff changeset
73 #landmark_data = struct.pack(ROUTING_HEADER_FORMAT,landmark_hopcount,rt.landmark_tslist)
6c40056777be Initial revision
fuchita
parents:
diff changeset
74 #linda1.Out(TUPLE_ID_LANDMARKCONFIG, landmark_data)
6c40056777be Initial revision
fuchita
parents:
diff changeset
75
6c40056777be Initial revision
fuchita
parents:
diff changeset
76 flinda.sync()
6c40056777be Initial revision
fuchita
parents:
diff changeset
77
6c40056777be Initial revision
fuchita
parents:
diff changeset
78
6c40056777be Initial revision
fuchita
parents:
diff changeset
79