1WMND: Window Maker Network Devices 2================================== 3 4WMND (WindowMaker Network Devices) is a highly customizable network monitoring 5dockapp for Window Maker (and compatibles) for many operative systems and 6devices. WMND can be found at https://www.thregr.org/~wavexx/software/wmnd/ 7 8.. contents:: 9 10 11Hints for WMND 12-------------- 13 14Generic 15~~~~~~~ 16 17WMND supports command-line options, 'wmnd -h' prints help about them. 18 19Use option -i to monitor a particular interface at startup:: 20 21 wmnd -i eth0 & 22 wmnd -i ppp0 & 23 24Without the -i option, wmnd will auto-magically use the interface that is first 25found in /proc/net/dev (or the current driver), but skip the lo and irda. 26 27Use the -I option to load only a specific interface into wmnd. By default wmnd 28loads all available interfaces. 29 30To monitor the lo or irda devices you must manually force wmnd as shown below:: 31 32 wmnd -I lo & 33 wmnd -I irda & 34 35To monitor dialup interfaces under linux either use the -I ppp0 flag or use the 36streams solaris_fpppd driver (-D solaris_fpppd -I ppp0). The linux_proc driver 37supports multiple interfaces on the command line through the -I flag:: 38 39 wmnd -D linux_proc -I eth0,eth1,ppp0 40 41This way you can combine multiple interfaces (whether they're online or not) on 42the same WMND instance. This trick allows also to create handy dialup shortcuts 43using the button actions (by passing the active interface name and status on 44the command line). Look at the example wmndrc file for details. 45 46 47GUI Usage 48~~~~~~~~~ 49 50You can cycle in real-time through all available active interfaces by 51simply left-clicking on the interface name gadget on the upper-left 52corner of wmnd or by using the mouse wheel anywhere. 53 54By default, wmnd show device name in short term of four characters, for 55example, the ippp0 will be displayed as ipp0. You can toggle the device 56name between short and long by right-clicking on it. 57 58Left-click on the main graphic area to cycle the graphic mode. 59Right-click on it to toggle the dial-up timer (when available). 60 61Just above the graph you have the max tx/rx values. Left-click to switch 62between screen max (latest samples only) or full history values. 63Right-click to hide or display. The default is screen max. 64 65Left-click on the letter gadget on the right-top corner can switch between 66the Byte or Packet counter mode. "B" for byte, "p" for packet. 67 68Click on the bottom rate meter can invoke the user command defined in 69resource file .wmndrc. 70 71Be sure to drag WMND on it's outer edges, it's a bit picky due to the large gfx 72pixmap it keeps ;-). You can also use a keyboard+mouse shortcut (perhaps 73ALT+left-click) in your window manager to drag it around. 74 75The history/graph can be viewed and inspected more conveniently by clicking 76with the middle button on the scale meter. With this feature, multiple 77interfaces can be monitored concurrently. See the "trend" section below. 78 79 80Transition from 0.2/0.3 81~~~~~~~~~~~~~~~~~~~~~~~ 82 83If you are coming from an old release of WMND (0.2/0.3 series) you must be 84aware that some values/scales of the ~/.wmndrc file have changed. Copy a fresh 85wmndrc from the source distribution (examples/wmndrc) or erase your old wmndrc 86to get the new defaults. 87 88 89Firing up WMND with sensible defaults 90~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 91 92Default values are easily changed from the command line or through the 93~/.wmndrc file. The ~/.wmndrc file gets created automatically the first time 94you execute WMND (unless you use -F) using the internal defaults and command 95line flags. That is, if you want to change "permanently" the defaults (so you 96can start it without command line fuss) just remove ~/.wmndrc and launch WMND 97using all the flags again. Beware however that internal defaults may 98change. Consider reading the example wmndrc that comes with the distribution. 99 100 101Creating PPP dialup scripts 102~~~~~~~~~~~~~~~~~~~~~~~~~~~ 103 104Because a very good PPP HowTo already exists, it's quite pointless for us to 105explain to you how you should and make them. Look for mouse button actions 106(bt?_action) into the example wmndrc. 107 108Read the PPP HowTo, and you'll see that it's very easy to create your own PPP 109scripts. 110 111 112Window Managers 113--------------- 114 115WindowMaker 116~~~~~~~~~~~ 117 118WindowMaker users simply drag and drop the WMND dock.app on the WindowMaker 119Dock (preferred) or on the Fiend, and then press the right mouse button on the 120outer edges of WMND and then enable 'Auto launch' from the Dock pop-up menu. 121 122 123AfterSTEP 124~~~~~~~~~ 125 126AfterSTEP users put the following in their .steprc:: 127 128 "Wharf wmnd - MaxSwallow "wmnd" wmnd -i eth0 -w &". 129 130Change the WMND's title name in order to not swallow multiple instances into a 131single dock (see -n). 132 133 134BlackBox or FluxBox 135~~~~~~~~~~~~~~~~~~~ 136 137You must enable the slit in other make wmnd visible. To add wmnd to the slit 138simply run wmnd from the command line:: 139 140 wmnd & 141 142and it will pop-up into a new slot. 143 144 145Other Window managers 146~~~~~~~~~~~~~~~~~~~~~ 147 148For other windowmanagers, WMND runs nicely as 64x64 pixel shaped icon on your 149desktop. 150 151Under gnome add the "swallow" applet and set it to run wmnd. The same thing can 152be done under KDE using the kdeswallow applet. 153 154PS: FVWM can swallow it too, so we've heard ;-) 155 156 157Display modes 158------------- 159 160Configure --enable-modes flags (space separated): traditional mgraph waveform 161wmwave wmnet sepgraphs twisted charts needle lines. 162 163Traditional: 164 Tx and Rx are piled on the same line within a single graph (like wmifs 165 original behavior). 166 167MGraph: 168 Tx and Rx scale is calculated uniquely and the slower channel is shown 169 in front of the other one. 170 171Waveform: 172 Tx and Rx are piled on the same line and mirrored using the central 173 line, in way to generate a "waveform like" silhouette 174 175WmWave: 176 Tx and Rx are opposite to the central line, however the scale is 177 calculated using both values 178 179WmNet: 180 This graph shows a reversed wmwave mode without the central line. 181 (like wmnet behavior) 182 183Sepgraphs: 184 Tx and Rx are shown on separated graphs. Tx in top and Rx in bottom, 185 divided by a central line. Scales are calculated separately. 186 187Twisted: 188 This mode displays two vertical "waveform like" graphs flowing in 189 reverse directions. The scale is unique. 190 191Charts: 192 Displays four charts disposed in this manner: 193 194 | TX Current Speed Indicator 195 | TX Average Speed Indicator 196 | RX Current Speed Indicator 197 | RX Average Speed Indicator 198 199 The average speed is calculated using the latest 58 samples for 200 each channel. Works better when using history max values, 201 toggled with the left mouse button on the max values. 202 203Needle: 204 Displays three needles. The arrangement is as follows: 205 206 | TX Average Needle 207 | Bandwidth utilization Needle 208 | RX Average Needle 209 210 The bandwidth utilization one uses this formula: 211 212 (tx_avg+rx_avg)/(tx_max+rx_max) 213 214 I particularly like this mode :), the needles speed are slow and 215 smooth like a real analog display. Works better when using 216 history max values, toggled with the left mouse button on the 217 max values. 218 219Lines: 220 Displays a trend graph using two lines. 221 222 223Drivers 224------- 225 226Introduction 227~~~~~~~~~~~~ 228 229Since release 0.3, WMND is now portable to many operating systems by using 230compile-time defines and an internal driver table (now it should be possible to 231make WMND monitor just about anything). Current supported OSs/drivers includes: 232 233Configure --enable-drivers flags (space separated) drivers: linux_proc 234freebsd_sysctl solaris_fpppd solaris_kstat irix_pcp generic_snmp netbsd_ioctl. 235 236linux_proc: 237 Supports Linux >2.2 by using the /proc/net/dev file. 238 239freebsd_sysctl: 240 FreeBSD (and Darwin) sysctl based. 241 242solaris_fpppd: 243 Free PPPd (for Linux, Solaris, and maybe others) for ppp dialup 244 interfaces. 245 246solaris_kstat: 247 Solaris kstat based. 248 249irix_pcp: 250 Based on PCP (Performance Co-Pilot API 2). 251 252generic_snmp: 253 Since WMND 0.4.5 you can now monitor IF-MIB local and/or remote snmp 254 interfaces a-la MRTG, but in realtime! 255 256netbsd_ioctl: 257 NetBSD ioctl based. 258 259Due to the new handling of the drivers, WMND won't add new devices (like PPP 260interfaces in /proc/net/dev) and remove them as they appear on the 261/proc/net/dev file. Offline devices are now shown as red (disabled). If you're 262under linux and still require to monitor a dialup interface you'll need to feed 263it on the command line through the -I flag. 264 265 266irix_pcp 267~~~~~~~~ 268 269The IRIX driver is based on the PCP API 2.x (Performance Co-Pilot). You'll need 270'pcpd' running for WMND to work. Interface format:: 271 272 [host@]interface 273 274These filesets are required:: 275 276 pcp_eoe.sw.eoe 277 pcp.sw.base 278 279If you don't have these, you can download PCP directly from here: 280http://www.sgi.com/software/co-pilot/ (pcp_eoe.* filesets are into 281"IRIX Overlays, 2/4" and "Foundation 2"). 282 283In some cases WMND may fail to compile due to the presence of Motif XPM 284headers: be sure to have freeware's XPM installed (see 285http://freeware.sgi.com/) and have "/usr/freeware/include" paths before any 286other. 287 288There seems to be a Linux version of PCP, but I can't (don't) want to try 289it. It will probably work. 290 291 292generic_snmp 293~~~~~~~~~~~~ 294 295Since 0.4.5 wmnd adds a new snmp driver for local and/or remote IF-MIB 296compliant devices. This driver requires the NET-SNMP library, available at 297http://www.net-snmp.org/, version 5 or higher. The drivers name is 298generic_snmp. It uses the parameters sent through the -I flag to initialize the 299device/s list. The format is as follows:: 300 301 [community@]host[:interface] 302 303Parameters inside [] are optional. If you do not explicitly supply these 304parameters, generic_snmp will use "public@localhost". 305 306To monitor an entire switch, you can usually do:: 307 308 wmnd -D generic_snmp -I public@switch 309 310(or "-I switch", which is shorter). To monitor only a specific interface:: 311 312 wmnd -D generic_snmp -I public@switch:1 313 314Interface numbers start at 1 (0 means all interfaces, like an empty interface 315specification). Beware that EACH remote interface, at the default refresh 316speed, burns AT LEAST 2kB/s of continuous data stream through your 317network. Monitoring a complete switch (24 ports), always at the default refresh 318speed, burns circa 30kB/s. You can slow down the refresh speed (-r) to reduce 319this traffic. The extremely fast queries done by wmnd can also reduce the 320available cpu of your snmp server/hardware and decrease overall performance. 321 322Also beware that using the -I flag on the command-line can potentially expose 323the community name of your remote snmp server. Better to use ~/.wmndrc and 324chmod it to 600 in this case. 325 326 327Building WMND 0.4 328----------------- 329 330Configure flags 331~~~~~~~~~~~~~~~ 332 333Since release 0.4 WMND is now compliant to the GNU Packaging standards and 334enables to use the GNU autotools to automagically build WMND for your box with 335little or no difficulty. See INSTALL for a first-time introduction. 336 337Configure accepts several options to enchance/minimize wmnd functionality and 338size. To forcely disable the dummy driver:: 339 340 $ ./configure --disable-dummy-driver 341 342To select only some display modes:: 343 344 $ ./configure --enable-modes="traditional wmwave" 345 346To forcely build specified drivers (beware that the dummy driver should be 347disabled with --disable-dummy-driver, also, extra libraries that may be needed 348by the driver won't be checked automatically):: 349 350 $ ./configure --enable-drivers="linux_proc" 351 352The --help flag will show you a complete list of command line flags that the 353configure script supports. 354 355 356Notes for packagers 357~~~~~~~~~~~~~~~~~~~ 358 359I'm not a professional packager, but you may want to consider these notes to 360improve the WMND package. 361 362The irix_pcp and generic_snmp drivers depends upon libraries that are not 363installed on a distribution/OS by default. Both these drivers are supported by 364different operating systems. I suggest you to build at least one package that 365doesn't require them. 366 367 368Trend support 369~~~~~~~~~~~~~ 370 371You can examine the current history in a larger window by clicking with the 372middle mouse button on the scale meter (the panel under the device name). 373Bytes/Packets mode affects the counters involved. 374 375You can leave the trend's window open, cycle the active interface and 376middle-click again to monitor multiple interfaces concurrently. trend settings 377and history can be adjusted via wmndrc. Read the sample file coming in the 378source for details. 379 380You will need trend[1] to be installed for this feature to work. 381Any version of trend starting with Rev #68 02/11/2007 should work. 382 383[1] https://www.thregr.org/~wavexx/software/trend/ 384 385 386Copyright 387--------- 388 389WMND was originally based on WMiFS, forked around 2001 by Reed Lai. WMND is 390currently maintained by Yuri D'Elia and distributed under GNU GPL v2 or 391above. See AUTHORS and COPYING for detailed licensing details. 392 393 394Bugs 395---- 396 397A list of wishes and bugs can be found at the Debian WMND bugs page[1]. 398 399[1] https://bugs.debian.org/cgi-bin/pkgreport.cgi?src=wmnd 400 401The FreeBSD driver is known to have problems on laptop systems where you can 402dynamically insert/remove addictional PCMCIA interfaces. This is rather a 403design problem of the driver. A developer with FreeBSD's MIB knowledge would be 404helpful. 405 406Certainly there are more. I actually test WMND only on Solaris, Linux and IRIX 407boxes. You can report bugs to the current maintainer's email: 408<wavexx@thregr.org>. Please be as descriptive as possible and always include 409at least: 410 411* WMND version 412* your host/target operating system 413* compiler used 414* A backtrace of the crash would be helpful, but less essential. 415