~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~ [ freetext search ] ~ [ file search ] ~

Linux Cross Reference
cvs/emstar/routing/geo-linkstate/README


  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

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~ [ freetext search ] ~ [ file search ] ~

This page was automatically generated by the LXR engine.
Visit the LXR main site for more information.