DesigNet

Overview

  1. DesignNet Distribution
  2. System Requirements
  3. Installation
    1. Initial Installation
    2. Installing a New Prelease
  4. Becoming a DesigNet User
  5. Running DesigNet
  6. Using the DesigNet User Interface
    1. Terminology and General Concepts
    2. Mouse Clicks
    3. Extended Select
    4. Sensitivity on the Display Pane
    5. Prompt Window
    6. Iterative Selection
    7. Parameter Menus
    8. File Browser
    9. Other Interface Options
    10. Moved Commands
  7. Running Demo-1

DesigNet Distribution

Note you will need to have an user account and password to access the distributions. If you have any difficulties, questions or suggestions, please send mail to DesigNet-bugs@bbn.com.

If you'd like to join the DesigNet-Info@bbn.com mailing list to recieve information about DesigNet please send mail to major-dart@bbn.comwith a message body of the form


subscribe designet-info Your-email-address

System Requirements

The current hardware and software requirements for running DesigNet are:

Installation

Initial Installation

When installing DesigNet for the first time, one must create a directory to be the root of the DesigNet hierarchy, such as /opt/designet, or /usr/local/designet as appropriate for your site. A DesigNet directory in your home directory can also be used temporarily. Lets refer to that directory as $DESIGNET_HOME. For example:
; setenv DESIGNET_HOME /opt/designet/
; cd $DESIGNET_HOME

This directory will contain one or more versions of DesigNet. The symbolic link Version_Current indicates the version most users are expected to use. The symbolic link Version_Next indicates a new version that is being installed, or tested. So, a directory listing might look something like:
; ls -l
total 8
lrwxrwxrwx   1 kanderso        8 Jul 13 15:22 Version_Current -> designet-960712/
lrwxrwxrwx   1 kanderso        8 Jul 13 15:22 Version_Next -> designet-960712/
drwxrwxrwx   4 kanderso      512 Jul 14 13:43 designet-960712
drwxrwxrwx   3 kanderso      512 Jul 14 16:45 data
; 

Installing a New Release

  1. Untar the new distribution into the $DESIGNET_HOME directory:
    ; cd $DESIGNET_HOME
    ; zcat $DISTRIBUTION.tar.Z | tar -xvf -
  2. If desired, untar the example data also:
    ; zcat $DATA.tar.Z | tar -xvf -
  3. Install the distribution as Version_Next:
    ; ./Install next
  4. Once Version_Next has been tested, it can be installed as Version_Current:
  5. ; ./Install current

Becoming a DesigNet User

Normally, a user should use Version_Current of DesigNet, while a developer or tester might use Version_Next. For example, one might add the following line to their .cshrc file:

; set path = ($path /opt/designet/Version_Next/bin)
; rehash
To make this change effective you may need to start a new shell or source your .cshrc file.

Running DesigNet

To run designet, type the designet command to the shell:

; designet
This will start up DesigNet. The shell window will be used as a background stream.

Using the DesigNet User Interface

The orginal version of DesigNet was developed during the mid 1980's when graphical user interfaces were quite experimental. Today a Macintosh-like style is most common. While the current version of DesigNet preserves the spirit of the original version it is much more inline with today's user interfaces. The following subsections describe the most important differences in design and use between original DesigNet and the new version.

Terminology and general concepts

The mouse-sensitivity in the new DesigNet uses the standard Common Lisp/CLIM notions of presentations, input contexts, and presentation translators.

A presentation is a graphic or a piece of text displayed in some window, associated with a particular object (typically, in DesigNet, a network object: a site, a node, a host, a link, etc) and a particular type (usually, but not always, the type of the corresponding object). An input context is just a type, which establishes the kind of presentations which should be sensitive at any particular time. A presentation translator is a Lisp function which maps one type into another.

For any given input context and presentation, the presentation will be sensitive in that context if either of the following is true: the presentation's type matches the input context (ie, if the type is the same as, or a subtype of, the context); or a translator exists which can convert the presentation type into a matching type.

There are only two interesting input contexts in DesigNet: the command context, when the program is waiting for the user to select a top-level command; and various object contexts, when a running command needs to ask the user to select an object of a particular type.

The command context can only be satisfied by selecting a command, either from one of the pulldown menus on a DesigNet window, or from a command menu on an object presentation.

An object context of a particular type can be satisfied by a clicking on a presentation whose type matches the given type, or, if keyboard entry is enabled, by typing in its name. Keyboard entry can be enabled through the Interface Options window.

In any input context, typing ctl-Z acts as an abort key. To interrupt DesigNet when it's running (ie, when it's not in an input context at all), you can type ctl-C at the background window.

Mouse clicks

For the most part, the new DesigNet uses a one-button interface: in most situations, only mouse-left is meaningful. Two special logical gestures, Drag and Menu, can be bound to other mouse clicks.

The Drag gesture is used for dragging sites on a map, for viewing lat/lon on a map, and, if drag-and-drop is enabled, for drag-and-drop operations. Drag is bound by default to control-mouse-left. It can be changed through the Interface Options window. Pick one of Left , Middle or Right for the Drag Click option to select a button, and zero or more of Shift, Control and Meta for the Drag Modifiers option to include modifiers. Don't pick a combination that's already in use (eg Left with no modifiers).

There are two cases in which the Menu gesture is used, both of which apply to presentations of network objects (sites, nodes, hosts, etc). In the command context, invoking this gesture on such a presentation will pop up a menu of commands which can be run on the corresponding object. In an object-context, invoking this gesture on such a presentation may pop up a menu of associated objects for extended select. This gesture is bound by default to mouse-right, It can be changed through the Interface Options window. Pick one of Left, Middle or Right for the Menu Click option to select a button, and zero or more of Shift, Control and Meta for the Menu Modifiers option to include modifiers. Don't pick a combination that's already in use (eg Left with no modifiers).

Extended select

Given any network object and any type, that object may be able to provide objects of type even if the object itself is of some other type. For example, if the object in question is a site and the type is node , the site can provide all the nodes at that site. We use these provision relationships coupled with presentation translators to implement extended select.

In particular, if you're in an object-context for some type of object, you can either click left on a presentation that matches the type, in which case the corresponding object will be selected; or you can invoke the Menu gesture (usually right-click) on a presentation which provides objects of the type, in that case you'll get a menu of those objects from which to choose. If the providing object provides exactly one object of the desired sort, it can also be selected with a left click.

For example, if you're in an object-context of type node (in other words, if you're running a command which requires the user to select a node), you can either click left on any presentation of a node, or you can click right on any presentation of an object which can provide a list of nodes from which you can choose. Clicking right on a site would give you a menu of all the nodes at that site; clicking right on a subnet link would give you a menu of the two endpoints; etc (assuming the Menu gesture is mouse-right, of course).

Sensitivity in the main output window

In the Symbolics version of DesigNet, whenever the standard printed representation of an object is displayed on a window, it becomes mouse-sensitive automatically. In CLIM, this is not possible: mouse-sensitive presentations must be done explicitly. As a result, much of the display code in the current DesigNet results in unsensitive output on the main window. We've added sensitivity to the output of the commands we've run so far. If you encounter other output on the main window that should be sensitive but isn't, let us know which command generated the output and we'll try to fix it.

Output to the newly designed windows (maps, reports, inspectors) should have the correct sensitivity.

The Prompt window

When the system needs to solicit input from the user, it will prompt in the Prompt window. This window can run in one of two modes: either it can pop up when needed, and hide itself at other times; or it can remain open all the time (of course you can also open and close this window manually). The former makes more clear to the user when input is required, but doesn't work properly under all window managers.

The mode can be set from the Interface Option Bury After Select. Set to Yes for popup mode, No to keep the window open. Choose whichever mode works best in your specific situation.

Iterative selection

Several commands in DesigNet work in an iterative fashion, by repeatedly asking the user to select an object. In the original DesigNet, the user would end the iteration by clicking middle. Middle-click can also be used in the current DesigNet, but since this is not really in the CLIM spirit, it may be necessary to disable this at some point (if it conflicts with other mouse-button actions).

Parameter windows

With certain window managers, parameter windows won't have explicit labels. In order to make clear what the window is for, you should enable the Titles In Dialogs option in this case (in Interface Options).

File browsers

When DesigNet needs to get a file specification from the user, it can do so in one of two ways: by direct typein of the name, or through the use of a file-browser window. Popping up a browser window takes more time and more screen real-estate, but relieves the user of the problem of remembering file names and directories.

This mode can be set in Interface Options. Set Use File Menus to Yes to get a file-browser and to No if you prefer to enter/edit filenames manually.

The File Browser itself comes in three flavors, with three slightly different styles of interaction: selecting a single extant file, selecting multiple extant files, and specifying a name and directory for a new file.

Selecting a single file:
This is the simplest of the three. The window consists of a popup menu of directories, a scrolling list of files in the current directory, and four buttons: Select, Open, None and Cancel buttons. To select a file from the current directory, click on it in the scrolling window so that it becomes highlighted, then click Select. To switch to a directory that's an ancestor of the current one, pick it from the menu. To switch to a directory that's a direct descendant of the current one, click on it in the scrolling window so that it becomes highlighted, then click Open.

To select no file at all, click the None button. To cancel the file-selection operation altogether, click the Cancel.

Selecting a single file

Selecting multiple files:
This window consists of the same components as in the select-single case, plus a few additions. To the right of the current directory listing is another listing showing all selected files. This list describes what will actually be selected by the browser. There are also Include and Exclude buttons to move files in to or out of the selected files list. To select files from the current directory, click on one or more entries in the current directory list so that they're highlighted, then click the Include button. To switch directories, use the popup menu, as in the select-single case. To removed one or more previously selected files, click one or more entries in the selected files list, then click the Exclude button. Once the selected files list contains exactly the files you want, click Select.

Selecting multiple files

Selecting a new file:
This window has the components of the select-single case, plus a text box for entering the name of the new file. Use the directory menu to move to the directory in which the new file should go, enter the name and extension (if any) of the new file in the text box, then click Select. You can also create a new directory on the fly from this window. To do so, use the directory menu to move to the directory which should include the one to be created, enter the name of the new directory in the text box, then click the New Directory button.

Selecting a new files

Other interface options

Profiling and Profiling Reports:
These can be used either for simple timings of operations, or to produce detailed profiles of the Lisp code. Don't use them if you don't know what they mean.

Redisplay After Commands:
Set to Yes if you want all maps, reports, and inspectors to redisplay after every relevant command. Set to No if you'd rather handle the redisplay manually.

Enable Drag And Drop:
Set to Yes to try out our simple example of drag-and-drop network editing. This is only a toy at this stage, just a way to check out the feel of working this way.

Running Demo-1

The following briefly describes a sample DesigNet session using the Demo-1 data. Example screens are show in Exhibit Demo-1.
  1. Select "Initialization" phase.
  2. Select "Start Design" tool.
  3. Enter a design name ("demo-1" is a good one)
  4. Enter a design directory
  5. In the "Files for Network..." dialog, set "Individual Device File Names" to c10-terminal.lisp and set "Traffic Data File Names" to traffic-distr.lisp.
  6. Exit dialog; files will now load.
  7. Select "Home to PADs" phase.
  8. Select "Home Orphans to Pads" tool.
  9. In the dialog, set "Device Types to Home" to DEMO-C10, "Type for new PADs" to T/10_3, and "Home Orphans to Pads Tariff Selector" to FTS2000-T1.
  10. Exit dialog; home-to-pads will do its thing.
  11. Select "Home to Nodes" phase.
  12. Select "Home Orphans to Nodes" tool.
  13. Set "Device Types to Home" to T/10_3, "Type for new nodes" to Cisco 7513, and "Home Orphans to Nodes Tariff Selector" to FTS2000-T1.
  14. Exit dialog; home-to-nodes will do its thing.
  15. Select "Drop Nodes" tool.
  16. Set both "Drop Nodes Tariff Selector" and "Tariff Selector for Backbone Estimate" to FTS2000-T1.
  17. Exit dialog; drop-nodes will do its thing.
  18. Select "Backbone" phase.
  19. Select "Ensure Packet Connected" tool.
  20. Set "Ensure Connected Tariff Selector" to FTS200-T1.
  21. Exit dialog; ensure-connected will do its thing.
  22. Select "Ensure Packet Biconnected" tool.
  23. Set "Ensure Biconnected Tariff Selector" to FTS200-T1.
  24. Exit dialog; ensure-biconnected will do its thing.
  25. Select "Route" tool (no options need to be changed)
  26. Exit dialog; route will do its thing.

Ken Anderson
Richard Shapiro
Last modified: Thu Sep 19 13:10:18 EDT