30 @param self this object
31 @param visualizer visualizer object
32 @param node_index the node index
35 InformationWindow.__init__(self)
36 self.
win = gtk.Dialog(parent=visualizer.window,
37 flags=gtk.DIALOG_DESTROY_WITH_PARENT|gtk.DIALOG_NO_SEPARATOR,
38 buttons=(gtk.STOCK_CLOSE, gtk.RESPONSE_CLOSE))
39 self.win.set_default_size(gtk.gdk.screen_width()/2, gtk.gdk.screen_height()/2)
41 self.win.set_title(
"OLSR routing table for node %i" % node_index)
49 sw = gtk.ScrolledWindow()
50 sw.set_properties(hscrollbar_policy=gtk.POLICY_AUTOMATIC,
51 vscrollbar_policy=gtk.POLICY_AUTOMATIC)
57 column = gtk.TreeViewColumn(
'Destination', gtk.CellRendererText(),
58 text=self.COLUMN_DESTINATION)
59 treeview.append_column(column)
62 column = gtk.TreeViewColumn(
'Next hop', gtk.CellRendererText(),
63 text=self.COLUMN_NEXT_HOP)
64 treeview.append_column(column)
67 column = gtk.TreeViewColumn(
'Interface', gtk.CellRendererText(),
68 text=self.COLUMN_INTERFACE)
69 treeview.append_column(column)
72 column = gtk.TreeViewColumn(
'Num. Hops', gtk.CellRendererText(),
73 text=self.COLUMN_NUM_HOPS)
74 treeview.append_column(column)
76 self.visualizer.add_information_window(self)
82 @param self this object
84 @param response the response
88 self.visualizer.remove_information_window(self)
93 @param self this object
96 node = ns.network.NodeList.GetNode(self.
node_index)
97 olsr = node.GetObject(ns.olsr.olsr.RoutingProtocol.GetTypeId())
98 ipv4 = node.GetObject(ns.internet.Ipv4.GetTypeId())
101 self.table_model.clear()
102 for route
in olsr.GetRoutingTableEntries():
103 tree_iter = self.table_model.append()
104 netdevice = ipv4.GetNetDevice(route.interface)
105 if netdevice
is None:
106 interface_name =
'lo'
108 interface_name = ns.core.Names.FindName(netdevice)
109 if not interface_name:
110 interface_name =
"(interface %i)" % route.interface
111 self.table_model.set(tree_iter,
112 self.COLUMN_DESTINATION, str(route.destAddr),
113 self.COLUMN_NEXT_HOP, str(route.nextAddr),
114 self.COLUMN_INTERFACE, interface_name,
115 self.COLUMN_NUM_HOPS, route.distance)
119 ns3_node = ns.network.NodeList.GetNode(node.node_index)
120 olsr = ns3_node.GetObject(ns.olsr.olsr.RoutingProtocol.GetTypeId())
125 menu_item = gtk.MenuItem(
"Show OLSR Routing Table")
128 def _show_ipv4_routing_table(dummy_menu_item):
131 menu_item.connect(
"activate", _show_ipv4_routing_table)
135 viz.connect(
"populate-node-menu", populate_node_menu)
def update(self)
Update function.
def __init__(self, visualizer, node_index)
Initializer.
def _response_cb(self, win, response)
Initializer.
ShowOlsrRoutingTable class.
def populate_node_menu(viz, node, menu)