19 InformationWindow.__init__(self)
20 self.
win = gtk.Dialog(parent=visualizer.window,
21 flags=gtk.DIALOG_DESTROY_WITH_PARENT|gtk.DIALOG_NO_SEPARATOR,
22 buttons=(gtk.STOCK_CLOSE, gtk.RESPONSE_CLOSE))
23 self.win.set_default_size(gtk.gdk.screen_width()/2, gtk.gdk.screen_height()/2)
25 self.win.set_title(
"OLSR routing table for node %i" % node_index)
33 sw = gtk.ScrolledWindow()
34 sw.set_properties(hscrollbar_policy=gtk.POLICY_AUTOMATIC,
35 vscrollbar_policy=gtk.POLICY_AUTOMATIC)
41 column = gtk.TreeViewColumn(
'Destination', gtk.CellRendererText(),
42 text=self.COLUMN_DESTINATION)
43 treeview.append_column(column)
46 column = gtk.TreeViewColumn(
'Next hop', gtk.CellRendererText(),
47 text=self.COLUMN_NEXT_HOP)
48 treeview.append_column(column)
51 column = gtk.TreeViewColumn(
'Interface', gtk.CellRendererText(),
52 text=self.COLUMN_INTERFACE)
53 treeview.append_column(column)
56 column = gtk.TreeViewColumn(
'Num. Hops', gtk.CellRendererText(),
57 text=self.COLUMN_NUM_HOPS)
58 treeview.append_column(column)
60 self.visualizer.add_information_window(self)
65 self.visualizer.remove_information_window(self)
68 node = ns.network.NodeList.GetNode(self.
node_index)
69 olsr = node.GetObject(ns.olsr.olsr.RoutingProtocol.GetTypeId())
70 ipv4 = node.GetObject(ns.internet.Ipv4.GetTypeId())
73 self.table_model.clear()
74 for route
in olsr.GetRoutingTableEntries():
75 tree_iter = self.table_model.append()
76 netdevice = ipv4.GetNetDevice(route.interface)
80 interface_name = ns.core.Names.FindName(netdevice)
81 if not interface_name:
82 interface_name =
"(interface %i)" % route.interface
83 self.table_model.set(tree_iter,
84 self.COLUMN_DESTINATION, str(route.destAddr),
85 self.COLUMN_NEXT_HOP, str(route.nextAddr),
86 self.COLUMN_INTERFACE, interface_name,
87 self.COLUMN_NUM_HOPS, route.distance)
91 ns3_node = ns.network.NodeList.GetNode(node.node_index)
92 olsr = ns3_node.GetObject(ns.olsr.olsr.RoutingProtocol.GetTypeId())
97 menu_item = gtk.MenuItem(
"Show OLSR Routing Table")
100 def _show_ipv4_routing_table(dummy_menu_item):
103 menu_item.connect(
"activate", _show_ipv4_routing_table)
107 viz.connect(
"populate-node-menu", populate_node_menu)