1
2 /* Authors: Denis Perelyubskiy, Deepak Ganesan */
3
4 Using Geographic LinkState Routing:
5 ==================================
6
7 On one window (with SIM_GROUP appropriately set), run
8 [deepak@Gamayun obj.i686-linux]$ emrun/emsim ../emrun/examples/sim-generic ../routing/geo-linkstate/glstab 10 -o LOG_NOTICE
9 ....
10 Sun Feb 23 23:27:02.492: [3] glsd: flood_receive_nb_list_update: Received nbr_list from 1
11 Sun Feb 23 23:27:02.492: [5] glsd: flood_receive_nb_list_update: Received nbr_list from 1
12 Sun Feb 23 23:27:02.512: [1] glsd: flood_receive_nb_list_update: Received nbr_list from 3
13 Sun Feb 23 23:27:02.513: [2] glsd: flood_receive_nb_list_update: Received nbr_list from 8
14 Sun Feb 23 23:27:02.513: [3] glsd: flood_receive_nb_list_update: Received nbr_list from 5
15 Sun Feb 23 23:27:02.514: [8] glsd: flood_receive_nb_list_update: Received nbr_list from 4
16 Sun Feb 23 23:27:02.514: [5] glsd: flood_receive_nb_list_update: Received nbr_list from 3
17
18 You should see neighbor lists being flooded around among nodes. To see the
19 construction of adjacency matrices and routing paths, you can either run the
20 above command with log-level option "-o LOG_DEBUG_0" or better still, look
21 at one of the following status devices:
22
23 Adjacency List:
24 ==============
25
26 To view the adjacency list (who's near whom), look at:
27
28 [deepak@Gamayun obj.i686-linux]$ cat /dev/sim/group2/node1/link/routing/gls_adjlist
29
30 ----------------------------------------
31 ADJACENCY TABLE
32 ----------------------------------------
33 005 006 001 009 003 008 002 004 007 010
34 005 : xxx 1 1 xxx xxx 1 xxx 1 xxx 1
35 006 : 1 xxx 1 xxx xxx 1 1 1 xxx 1
36 001 : 1 1 xxx xxx xxx 1 1 1 xxx xxx
37 009 : xxx xxx xxx xxx 1 1 1 xxx 1 1
38 003 : xxx xxx xxx 1 xxx xxx xxx xxx 1 xxx
39 008 : xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx
40 002 : xxx 1 1 1 xxx 1 xxx 1 xxx 1
41 004 : xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx
42 007 : xxx xxx xxx 1 1 xxx xxx 1 xxx 1
43 010 : xxx xxx xxx xxx xxx xxx xxx xxx xxx xxx
44
45
46 Routing Paths:
47 =============
48
49 and to see the set of routing paths constructed from the above table:
50
51 [deepak@Gamayun obj.i686-linux]$ cat /dev/sim/group2/node1/link/routing/gls_rtable
52 ----------------------------------------
53 ROUTING PATHS
54 ----------------------------------------
55 Route from 001 to 005 : 1 -> 5
56 Route from 001 to 006 : 1 -> 6
57 Route from 001 to 001 : Self
58 Route from 001 to 009 : 1 -> 2 -> 9
59 Route from 001 to 003 : 1 -> 2 -> 9 -> 3
60 Route from 001 to 008 : 1 -> 8
61 Route from 001 to 002 : 1 -> 2
62 Route from 001 to 004 : 1 -> 4
63 Route from 001 to 007 : 1 -> 2 -> 9 -> 7
64 Route from 001 to 010 : 1 -> 5 -> 10
65
66 In the absense of network partitions, the adjacency table and routing paths
67 should be identical for all nodes. If there are partitions, each partition
68 should have be consistent within itself.
69
70 Testing:
71 =======
72
73 A test program "glsping.c" is provided. Run glstab as shown above, and to see
74 packets being routed to a node closest to "x,y", do the following:
75
76 [deepak@Gamayun obj.i686-linux]$ routing/glsping gls 11 10
77
78 The above input says, send the ping packet through "gls" to location <11,10>
79
80 Although there need not be any node at <11,10>, you should see an output at
81 the main window showing the packet being forwarded to the node closest to
82 the required destination. One example is shown below.
83
84 [deepak@Gamayun obj.i686-linux]$ emrun/emsim ../emrun/examples/sim-generic ../routing/geo-linkstate/glstab 10 -o LOG_NOTICE
85 ....
86 Sun Feb 23 23:40:02.346: [1] glsd: gls_enqueue: got route request
87 Sun Feb 23 23:40:02.347: [1] glsd: get_nexthop_to_dest_loc: After Lookup: Closest Node:10:10.99,9.92
88 Sun Feb 23 23:40:02.347: [1] glsd: get_nexthop_to_dest_loc: DstId:10 next hop is 5
89 Sun Feb 23 23:40:02.348: [1] glsd: get_nexthop_to_dest_loc: returning next hop is 5
90 Sun Feb 23 23:40:02.348: [1] glsd: gls_send: Next hop: 5
91 Sun Feb 23 23:40:02.348: [1] glsd: gls_forward: sending to /dev/sim/group2/node1/link/0/data
92 Sun Feb 23 23:40:02.544: [5] glsd: gls_receiver: got packet OrigSrc:2.74,7.20 FinalDst:11.00,10.00
93 Sun Feb 23 23:40:02.545: [5] glsd: get_nexthop_to_dest_loc: After Lookup: Closest Node:10:10.99,9.92
94 Sun Feb 23 23:40:02.545: [5] glsd: get_nexthop_to_dest_loc: DstId:10 next hop is 10
95 Sun Feb 23 23:40:02.545: [5] glsd: get_nexthop_to_dest_loc: returning next hop is 10
96 Sun Feb 23 23:40:02.545: [5] glsd: gls_forward: sending to /dev/sim/group2/node5/link/0/data
97 Sun Feb 23 23:40:02.735: [10] glsd: gls_receiver: got packet OrigSrc:2.74,7.20 FinalDst:11.00,10.00
98 Sun Feb 23 23:40:02.735: [10] glsd: get_nexthop_to_dest_loc: After Lookup: Closest Node:10:10.99,9.92
99 Sun Feb 23 23:40:02.735: [10] glsd: gls_upcall_to_user: Upcall to user
This page was automatically generated by the
LXR engine.
Visit the LXR main site for more
information.