The toolbox is also shipped with a Graphical User Interface. This section illustrates the use and the functionnalities of the GUI.
Probably the first thing you want to do is to load a domain. This can be done by selecting the "Load Topology" item in the "File" menu (or by pressing Ctrl+O). The topology must be a "good" topology, i.e. a instance of the topology XML schema (see section 3) and no domain with the same ASID shall already be loaded.
You can select different options from the load topology dialog (see figure 4). "Remove multiple links" is used to merge all links between the same source and destination node. It might be useful since not every algorithm is compatible with multiple links between nodes. The "Use bandwidth sharing" indicates if bandwidth sharing should be used (see 5.1).
Once the domain is loaded, it becomes automatically the default domain, i.e. the domain that is displayed in the right part of the TOTEM main window. The tabbed tables (located on the bottom part of the window) shows the links, nodes and LSPs attributes of the current default domain. It is also possible, via the "View" menu, to display those tables (representing links, nodes and lsps properties) in new windows. Note that those windows won't follow a change of the default domain, on the contrary of the tabbed tables which are always displaying default domain information. Right clicking on the columns headers displays a menu that allows columns to be shown or hidden (see figure 5). Note that some columns are not displayed by default. You can change the column display order by dragging the column header.
The menu items "Network stats", "Load Tables" and "Link info" under the "View" menu give more information about the loaded domain and its resource usages. The information concerns the MPLS reservation as well as the calculated loads. "Network stats" gives domain-wise statistics and "Load Tables" per link information.
You can see the loaded domains by looking at the "Domains" menu (see figure 6). Every loaded domain is an item in that menu and you can change the default domain by simply clicking on the correpsponding item. The "Domain Manager" (see figure 7), which is accessible from the same menu, displays the domain description and can be used to unload domains or change default one.
Finally, you can save the domain by selecting "Save topology as..." from the "File" menu. Note that you won't be prompted to save a modified domain that you are closing. If you want to save your changes in a file, you must do it explicitly.
The right part of the main window displays the current default domain. The nodes can be moved by dragging them. Once the nodes has been moved, their latitude and longitude can be updated by clicking on the small button located in the bottom right corner of the visualization panel (between the two scrollbars). Note that when the domain is saved, the node positions are automatically updated.
Clicking outside a node and dragging will select multiple nodes. The graph can be zoomed with mouse wheel. There are two kinds of zoom modes : one won't change the size of nodes, labels and links, so a more detailed view will be displayed when zooming. The other is proportional zoom. It has to be used when graph items (labels, nodes, links) should be drawn in bigger size. Proportional zoom is obtained by holding down the control key and using mouse wheel. The control key is also used to move the graph inside the window to display a specific part (panning). Leaving the mouse on a node or link during a short period of time will result in a tooltip display, showing useful information about the element under the mouse pointer (see figure 8).
You can also change the appearance of the represented graph by selecting one of the pre-defined layouts from the "Layout" submenu from the "View" menu.
Right clicking on the graph window displays a contextual menu whose content is different if the click is made on a link, a node or somewhere else. Table 14 summarizes the actions that can be performed from contextual menus.
The links colors and their meaning can be freely chosen You can choose in which color should the links be displayed and what is the meaning of the colors. The legend located on the left side of the main window shows the colors that are currently displayed on the graph. From the panel straight above, you can choose the color meaning: you can display the link status (link up or down) by selecting "Link status" or the MPLS reservation by selecting "Reservation". It is also possible to display the relative load of the links resulting from traffic matrix routing (see section 10.6).
You can change the colors of the displayed legend by selecting "Choose Link colors" from the "View" menu. Changing the colors for the reservation or the load will lead to a change for both reservation and loads. Note that the colors for the link status can be independently changed.
The graphical topology editor lets you create XML topology files with ease. It supports multiple domain editing through tabbed pane. The toplogy editor can be accessed through the "TopEdit" menu. You can create a new topology (New...), edit the current loaded domain (Edit...) or generate some topologies with BRITE (TopGen). Depending on the chosen action the topology editor window will appear on a blank or on current topology (see figure 9 for a screenshot).
Note: Editing the current topology is not the same as loading the same topology file in the topology editor because TOTEM adds some default values for information that is not present but the topology editor don't, which allows more flexibity in XML file creation.
From this menu you can create (New Topology...), load (Load Topology...), save (Save Topology...), close (Close Topology...) and edit domain properties (Properties...).
When you create a new topology, the domain properties dialog appears. You can select different domain specific parameters here. The most important ones are ASID, bandwidth and delay units and diff-serv priority levels. It is recommended to set all the required priority levels before adding any links to the topology.
You can access and/or modify the domain properties at any time by selecting "Properties..." from the "File" menu.
Please note that it is different to load a domain from the topology editor and to load the same domain in the TOTEM main window and then edit it in the topology editor. Indeed the TOTEM GUI fills in missing parameters with default values so that all features can be used in the toolbox, while the topology editor does not fill any missing parameters. For example, if you don't specify any classtypes and preemption level in an XML file which is loaded in the main TOTEM GUI, a default one will be added so that you can use the diff-serv MPLS algorithm.
This menu allows you to perform different action on the current domain.
From this menu you can access the following features:
The "Models" menu allows you to define models of links and nodes so that you do not have to re-enter all the selected parameters for each link or node creation.
First you have to select the model to edit from the "Edit" submenu. The dialog appears where you can select the node or link parameters. Once you have accepeted the parameters, the model is saved. You have to select the modified model from the "Select" submenu to use it. Each time a new object is created, the model will be copied and thus the new object will have the same parameters as its model.
Note: In the node dialog, if you want to have the location set for each node, select <SET> from the location combo and insert a any value in the latitude and longitude textfields of the model. The newly created nodes will have their location set to a value corresponding to the location where they are created.
The "Use batch mode" menu item allows you to create topologies even quicker. If this option is selected, the dialogs about node and link won't appear on link/node creation. For quickly creating topologies, you can simply (a) select the domain properties, (b) define node and link models, (c) select batch mode, (d) create topology by clicking for node and dragging between nodes for links.
This menu allows you select the functionning mode of the editor. There are 3 different modes:
In every mode, you can edit or remove nodes and links by right clicking and choosing the appropriate option in the contextual menu.
This menu allows you to select some additional constraints of the domain and check that there are respected for the domain under edition. The constraints presents are
You can load a traffic matrix from the "Load Traffic Matrix" item of the "Traffic Matrix" menu (shortcut: Ctrl+M). The matrix must be an instance of the Traffic Matrix XML schema (see section 4) and must correspond to one of the loaded domain.
The loaded traffic matrices can be seen in the tabbed tables on the bottom of the main window, where a new tab is added for each loaded traffic matrix relative to the default domain. The domain can have a default traffic matrix, which is identified on the tab label by a * following the word TrafficMatrix (see figure 11).
You can also manage traffic matrices of the current domain by using the TrafficMatrix Manager window. The TrafficMatrix Manager lists the matrices curently loaded for the current domain and allows you to perform various operations on the matrices. From there, you can select the default matrix, save the matrix to a file or edit the traffic matrix content.
It is also possible to create a new traffic matrix corresponding to the current domain. Simply select "Create TrafficMatrix" from the "TrafficMatrix" menu. A new traffic matrix will be created with no traffic at all and the traffic matrix editing window will be displayed.
To edit the traffic matrix, select the cells for which you want to change the value and right click to display the menu (see 12). Select the operation that you want to perform (set the traffic to a given value, add, substract, multiply or divide the current traffic) and input a value in the input box. You can also edit a single cell by double clicking on it and directly entering the new value.
Another way to obtain traffic matrices is to generate them using a synthetic traffic model. Currently 3 models are implemented in the toolbox: Random, Gravity and Constant model.
The traffic matrix generation capabilities can be accessed via the "Generate..." item of the "TrafficMatrix" menu. You have to select one of these generators from the combobox and to set its specific parameters (please see section 9.4.4 for more information and the list of parameters).
It is possible to generate some intra TM traffic matrices from the GUI. The intra TM traffic matrix can be generated from an inter TM traffic matrix, BGP rib dumps and BGP cluster file. The inter TM traffic matrix can be generated from netflow traces or it can be loaded from a file.
Those capabilities are in the TMGeneration module and can be accessed via the module's menu.
More information on the traffic matrix generation including the file formats and the parameters to use can be found in sections 11 and 9.4.1.
An inter domain traffic matrix can be generated from netflow traces. You have to select the Netflow base directory as well as the suffix used. The base directory is the directory where Netflow files are read from. It should contains a directory for each node in the network. Directories have to be named by the node id or by its rid (router IP address). The suffix filename refers to a path to the filenames containing the netflow data, directly under the node directory. Once you have selected those parameters, you can generate the matrix. It will also be loaded, so you can infer an intra domain traffic matrix from it.
In the inter domain traffic matrix generation dialog, you can optionally save the matrix to a XML file for future use and also select the sampling the sampling rate and the minutes of the recorded data. If you specified those options, the matrix will be created with bandwidth unit corresponding to the domain one. If it is not provided, only raw data (without units) will be produced.
In order to generate an intra domain traffic matrix from a loaded inter domain traffic matrix (either loaded from a file or generated from netflow traces), you first have to give BGP information such as a BGP cluster file and the BGP rib dumps location.
The BGP directories can be chosen thanks to the dialog from "Select BGP directories..." of the "TMGeneration" menu. The BGP rib dumps locations are to be specified given a BGP base directory which should contains a directory for every nodes (named by the node id or rid) and a BGP suffix which identify the file under that directory.
The cluster file can be given with the "Read cluster file...".
You also have to configure the router adjacencies in your topology file. You can use the two menu item "add iBGP fullmesh to the domain" and "add eBGP information (from BGP dumps)" to respectively add a fullmesh of iBGP sessions and read established eBGP sessions from the BGP rib file (you must have specify the directories).
Once you have loaded the BGP ribs, the cluster file and loaded the inter domain traffic matrix, you can generate the intra domain traffic matrix thanks to the "Generate intra TM" menu item.
Do not forget to check the standard output (or the console window) for specific warnings or errors.
This section indicates how you can route LSPs on the network. For routing traffic on those LSP see IProuting (10.6).
Once a domain is loaded, you can compute LSPs and add them to the domain. Click on the "Routing" menu, then "Add Primary Lsp". The "Add LSP" dialog is displayed (see figure 13) and invites you to give lsp parameters such as ingress and egress nodes, lsp bandwidth, the algorithm to compute the path and some additional algorithm-specific parameters. It is also possible to specify the id of the new lsp. If it is not specified, it'll be automatically generated. You can also change the default Diffserv parameters by expanding the corresponding panel. There, either the priority identifier either the class type and preeemption levels can be specified. Note that if the panel if retracted, the default Diffserv parameters will be used (least preemption level, lowest class type value). Finally, you can also choose which classes of service can be the LSP can accept when routing traffic on it. You must have defined some classes of service in the domain topology file to use this option.
The algorithm combobox shows all the started algorithms compatible with the current default domain. Some algorithm uses an internal topology database (such as XAMCRA, MIRA, DAMOTE,...) while others don't. These ones can be used only on the domain on which they were started. So the combobox displays all the started generic algorithms and the algorithms with a local database that were started on the domain.
Important note: If you modify the topology (removing/adding nodes or links, changing link bandwidth), it is preferable to stop and restart the algorithms in order to rebuild the internal database. Indeed, these cases had not been tested thoroughly with all the algorithms, so it might lead to unexpected results.
If you have not started an algorithm on the domain yet - or you want to use another one -, click on the "start another algorithm..." button. There, you are proposed with a list of all the available algorithms (see figure 14). You can choose from that list and tune the parameters relevant for the chosen algorithm. Note that some algorithms have no parameters at all. It is notably the case for all the CSPF algorithms.
Once you click the "Start Algorithm" button, the algorithm is started. You can see all the started algorithm and their parameters in the algorithm manager (see figure 15), accessible from the "Algorithms" menu.
Note that when you close a domain (by choosing "close Topology" from the file menu or via the domain Manager), the algorithms that are specific to the domain are also stopped.
Since TOTEM version 2.2, the GUI includes the possibility to compute detour lsps (backup paths). This can be achieved by selecting "Compute Detour Lsp" from the "Routing" menu (see figure 16). The dialog allows you to specify an id for the new lsp, to choose the lsp to protect, the detour type (local or global), the protection type, the algorithm and its parameters. Among the algorithms shipped with the toolbox, DAMOTE and CSPF algorithms are able to compute backup paths.
If local backup is selected, you can choose if the calculated paths should protect the primary lsp from nodes or from links failures. The last option of the protection type category ("Default") lets the algorithm choose the parameter value for you. Note that DAMOTE doesn't take this parameter into account at all: it always tries to protect the downstream link AND the downstream node. If the downstream node cannot be protected, only the link will be.
Since TOTEM version 3.1, the GUI includes the possibility to compute bypass LSPs (facility backups). You can chose between NHOP and NNHOP and select the resource to protect.
The GUI also offers the possibility to compute a fullmesh of LSPs on a domain. The modus operandi is quite the same as for adding a single LSP. The only differences are that you mustn't provide the source and destination nodes as it is a fullmesh and that you must specify a traffic matrix instead of the bandwidth of the LSP.
You can access the fullmesh dialog (see figure 17) via the "Apply Full Mesh" item from the "Routing" menu. The dialog won't open if no traffic matrix is loaded for the default domain. The dialog allows you to choose the algorithm to use to route the LSPs, the traffic matrix from which the lsps bandwidth will be derived, the diff-serv parameters and the algorithm-specific parameters. You can also choose the LSP establishment order (Decreasing bandwidth, increasing bandwidth or shuffle). After accepting the parameters by clicking the "compute" button, you will be prompted to choose between adding the fullmesh while keeping existent LSPs or adding the fullmesh after removing all the LSPs already existing in the domain.
You can route a traffic matrix on the network, simulating IP routing. From the routing menu, select "IGP Routing". From there you can select the metric to use, the IP strategy, the traffic matrix and options (see figure 18).
You can choose from different metric that can be used by the shortest path algorithm (see also 8.1). These are :
You can choose from the following IP strategies:
You can find more information about these strategies in the paragraph describing ShowLinkInfo event (9.5.4).
You can also choose to use ECMP (Equal Cost Multi Path) or not. If you tick the ECMP checkbox, the calculated traffic will be split over all paths of equal metric. If not checked, the traffic will take an arbitrary chosen path among all the equal cost paths of minimum cost.
Once the load is calculated, an entry will be added to the panel where you can choose what the link colors represents (on the left side of the screen). On this panel, you can choose to display the link reservation, the link status (up and down links) and one of the calculated load (see figure 19). Note that the calculated load will observe for changes in the domain and an icon next to the item indicates if the load is up-to-date. Clicking this icon will triggers the recomputation of the calculated load. Note that if you close a traffic matrix, all the links load calculated thanks to this matrix will disappear from the panel.
You can route multiple traffic matrices, each representing a class of service. This feature is accesible via the "Cos MPLS routing" item of the "Routing" menu. Traffic is then routed exclusively on LSPs (no IP routing) that accept the class of service associated with the matrix.
If you want to have some traffic routed on backup lsps in case of resource failures on the primary path, you have to enable traffic switching on the domain. This can be done using the "Enable Traffic Switching" item of the "Routing" menu. When traffic switching is enabled, the path of the primary lsp used to route traffic (using an hybrid strategy) will be updated in response to resource failure/repair events. This path is referred to as the "Working path" of the primary lsp. It can be displayed in the lsp table by displaying the corresponding column (see figure 20).
You can view the paths that are used for IP routing. Use the "List shortest paths" dialog which is accessible from the "routing" menu. The dialogs (see figure 21) allows you to choose the algorithm to use (from the SPF algorithm family) and the paths that you want to observe. You can either display the paths from a single source node to a single destination or select all sources and/or all destinations. This dialog updates in real-time: it starts the algorithms if necessary and calculate the paths in function of the chosen options. Paths can be displayed as a list of node ids or as a list of link ids. If you select a path in the result list, it will be highlighted (links represented by dashed lined) in the network visualization panel.
The ECMP (Equal Cost MultiPath) Analysis dialog behaves the same way as the "List shortest paths" dialog (see section 10.6.3). The only option you can choose is the algorithm to use. The result list shows shortest paths of equal costs (if there are more than one) for all source-destination pairs.
If you want to use (nearly) optimal routing, you can either use the MCF that uses glpsol program (see section 8.10) or the OptDivideTM algorithm (see section 8.5). The CPLEX algorithm is not yet integrated in the GUI (see section 8.13). With the current model, the MCF algorithm optimizes the maximum link utilization of the network. The OptDivideTM algorithm (see section 8.5) allows you to choose the objective function to optimize.
Both algorithms are accessible from the routing menu.
It is also possible to optimize link weights from the GUI thanks to IGP-WO algorithm (see section 8.7). To start IGP-WO weight optimization, you must load a domain and a traffic matrix for that domain. Starting IGP-WO is done via the "IGP-WO" menu by selecting "Optimize Link Weight...". A dialog where you can tune the algorithm parameters is displayed and filled with default values (see figure 22). You may also want to select different traffic matrices to use in the computation. The loaded traffic matrix ids are displayed in a listbox and you can select multiple ones by pressing and holding the control key while clicking on the matrix ids. Pay attention to the fact that the calculation may require a long amount of time to perform. For now, it is not possible to cancel the operation. After the calculation is completed, the new optimized metric values are put in the TEMetric property of the links, and displayed on the graph next to the corresponding links. Also, a report is generated by IGP-WO during computation and displayed in a window after the calculations are done. You can save the report as a text file for futur use. It is also possible to consult the lastly generated report via the "View last report" item of the "IGPWO" menu. The last report is in fact located in the text file named "IGP-WO-output.txt" in the Totem root folder.
The Totem graphical interface allows you to load a scenario and take control on its execution process and see the step by step results graphically.
A scenario file (see section 9) can be loaded from the "Execute scenario" item of the "Scenario" menu. The loaded scenario is then shown in a new window with a hierarchical structure reflecting the XML document content (see figure 23).
The window is divided into two parts: the top part represents the scenario hierarchical structure and the bottom one is a text area that displays the results and the error messages coming from event execution.
The window is also decorated with three buttons : Step, Advance to selection and Finish Execution. The action of the first button is to execute the next event in the scenario. The second one executes all the events until and including the selected one. The last one execute all the remaining events until the end of the scenario. As you can see on picture 23, the events that are correctly executed appears in green and those that led to an execution error are displayed in red. Note that it is impossible to undo execution of an event or to rollback the scenario.
At the very bottom of the window, there is a checkbox named "Stop on error". If it is checked, the execution will stop on the first error and an error dialog message will be displayed. Otherwise, the error will be ignored and the scenario will continue to execute.
Important note: If you close the window before finishing scenario execution, you can't get the rest of the scenario executed.
If you want to have more detailed information about what is going on in the toolbox, you can display the console (by selecting "Console" from the "View" menu). The console displays what should normally go on the standard and error output in addition to more detailed logging information. You can choose the level of logging information to display in the console by selecting one of the item (DEBUG, INFO, WARN, ERROR, FATAL) from the combobox located on top of the console window (see figure 24).
Note that when you close the Console window, the standard output and error output are displayed where they were before you open the window console.
SAMTE is a hybrid IP/MPLS optimization algorithm. The description of the algorithm and its parameters can be found in the section 8.9.
You can start SAMTE after loading a traffic matrix, by clicking "SAMTE..." from SAMTE menu of the main window. You first have to specify candidate path list parameters such as the the maximum number of hops of the solution (MAX_HOP) and number of sortest path that are taken into account (NB_SHORTEST_PATH). On the same dialog, you can also choose the traffic matrix to use and the number of LSPs to establish (Max Lsp). After accepting those parameters you will have a dialog that permit searching for SAMTE solutions (see 25). Tune the parameters according to your wishes (on the left part of the dialog) then click on "Execute SA" to start SAMTE heuristic. You will see on the right part of the dialog a graph representing the evolution of the solution. If the solution found satisfies your needs, you may want to display it by clicking the "Display solutions" button. You will have a list of the LSPs found by SAMTE and you can establish them in the network if you wish to.
You can display the load on the links when using the established LSPs by starting IGP routing with strategy set to one of the hybrid strategy, i.e. Basic IGP shortcut or IGP shortcut.
The What-if menu helps you to see the changes made on a domain in reaction to a (set of) specific event(s). For now, two sorts of events can be simulated by this mean: Link failure/Repare Link events and change link capacity events. Once you have chosen the events you want to simulate, you can see the result on the network as tables of values and as charts.
The "What-If" menu contains an item for each event that you can simulate and an item that allows you to combine multiple of these events ("Compose Events").
In order to simulate a link failure, you must first load a domain and a traffic matrix as the default one for that domain. Then, click on the "link failure" menu item, choose the link you want to see down and choose the characteristics that you want to observe on the domain. The link (and the reversed one) will be disabled, so the load on the other links will be increased to keep in accordance with the loaded traffic matrix. You can see the effect of the link failure on the report that is generated.
You can also compare the difference of load on the links of the domain between two different traffic matrices. To simulate a change of traffic matrix, you must have at least two traffic matrices loaded for the domain. Then you must route them by using the "IGP Routing" feature and then in the load observation panel, you have to select those link load computer.
You can also simulate a change of one's link capacity.
The last thing you can do is to create a scenario composed with multiple events of the kinds described above. This is done by selecting and adding the events you want to a list that represent the generated scenario.
Each of the What-if scenario executions will result in the display of a report (see figure 26) that shows the initial and final load for all links of the domain as well as some aggregation of these values (such as max, mean, standard deviation and percentile10). The report also contains a "show charts" button that displays two charts, each of them comparing the load before and after the simulated scenario. You can then right click on the charts to access some functionalities and properties of the graph (saving, printing, zooming, changing titles, changing appearance, ...).
The interface of the GUI for chart creation functions quite the same way as in the scenario XML files (see section 9.6).
As already said, the chart creation process is divided into 3 steps : Create the chart by selecting a data collector and its parameters, add series of data to the chart and plot the chart.
To create a chart from the GUI, go in the chart menu then select "New chart...". You are then proposed to give an identifier, to choose a data collector among those available and to tune the collector-specific parameters. After accepting, a new Chart object is created internally. However, no data represents the chart : you just specified which sort of data your chart will be able to receive. Now that your chart is created and that you have specified a collector, it's time to add some data series. Go on the "Charts" menu again, you should be able to see the chart identifier you give as a sub-menu (see figure 27). By selecting "Add series..." from the sub-menu, a new series of data will be added to the chart. You are prompted to enter a series name and eventually to tune some parameters, specifying how the data will be collected by the collector. Series name identifies the data series and will be used on the chart legend. Note that the series name should be unique.
Draw the chart by selecting "Plot..." from your chart menu. You can then enter the general title of the chart, the axises title and you can select a plotter and its parameters. The plotter is in charge of creating a specific chart representation given the data. After acceptance of the parameters, the chart representation is generated and displayed in a new window. From there, you can right click to get a contextual menu (see figure 28) where you can do various operation on the chart such as saving, printing, changing appearence, zooming, ...
You can always view the last chart that you plot by selecting "View last plot" from the corresponding chart sub-menu. Until you remove the chart (by selecting "Remove chart"), you can always add new data series and replot the chart possibly using different plotter and parameters.
CBGP description can be found in section 8.6. CBGP GUI integration was not yet tested thoroughly and might contains some bugs.
Prior to using CBGP, you need to start a CBGP instance by selecting "Start..." from the "Algorithms" menu and choosing CBGP. You can have access to CBGP functionnalities using "CBGP" menu from the main window or by right clicking on a node of the domain.
Examples of XML files that you can use with CBGP are located in examples/abilene/cbgp (see README for more info).
More information about CBGP utilisation coming soon.Simon Balon 2008-06-18