INSIGNIA Testbed Source Code Release
This page describes Release 0.01 of INSIGNIA for FreeBSD 2.2.7. This code is pre-alpha release. This pre-release INSIGNIA code runs Dynamic Source Routing as its routing protocol (Please refer to Rice/CMU web pages for questions related to their DSR implementation).
INSIGNIA 0.01 contains most of the features described in draft-ietf-manet-insignia-01.txt. (Please refer to the following publications for more details)
The source code is available as a gzip'ed tar file:
o Note that the release contains code for modified system utilities a complete kernel source trees for FreeBSD 2.2.7.
o The package, INSIGNIA-001.tar.gz contains
1. insignia kernel source code
2. Graphic User Interface and API
3. WaveLAN (IEEE 802.11, 11 Mbps) Device Driver for FreeBSD 2.2.7
?? Note that you also need to download DSR
?? You should have following;
1. gui_api directory
2. sys directory
3. wavelan directory
4. README file
Under the gui_api you should have;
getin.c, getout.c, setout.c, setbw.c, insignia_func.c (and their corresponding .h files), tcl files, txt files, sample macfilters (t4 and t5) and some GIF figures used in the GUI.
Under the sys directory you should have;
dsr, i386, kern, netinet directories
Under the wavelan directory you should have;
if_wavelan_ieee.h, if_wi.c, if_wireg.h, promisc.c,wi.h,wicontrol.c
Usage Hints: Please read the README files contained in the package.
#
# INSIGNIA TESTBED source code
#
sys/ : kernel source code tree
gui_api/ : INSIGNIA monitoring tools using api
wavelan/ : Lucent Wavelan IEEE 802.11 device driver for FreeBSD 2.2.7
System Requirements:
- x86 Compatible Notebooks
- FreeBSD 2.2.7
- Lucent Wavelan IEEE 802.11 card
Software Requirements:
- DSR kernel source code
- INSIGNIA kernel source code
- INSIGNIA gui_api codes
- Tcl/Tk 8.0 or above
System Installation
0. Download FreeBSD 2.2.7 kernel source.
1. Download DSR kernel source code and install.
2. install wavelan device driver
3. compile kernel and test it.
4. patch insignia sys directories to under the current sys/ directories.
(NOTE: this is not patch script. use cp command instead)
5. cd /sys/kern/
make init_sysent.c
6. build INSIGNIA kernel.
7. compile promisc.c on wavelan directory
8. run DSR , invoke promisc program
Build INSIGNIA monitor program
0. compile insignia_func.c (gcc -c insignia_func.c)
1. make
Sample Topology
For creating such topology, it is required that all participating mobile nodes have the macfilters. For example, Source mobile node can only hear 128.59.76.202 (the source mobile node need to filter out all other mobile nodes) and the topology can be arbitrarily driven by 128.59.76.202 mobile node by changing macfilter operations. Mobile node 128.59.76.202 may filter out MAC addresses of 128.59.76.203 and 128.59.76.205 to set a route to 128.59.76.204 (128.59.76.206 has to be filtered out in order to avoid direct connection). By applying such macfilters to all participating mobile nodes allow the topology to be changed in many ways. Please refer to sample macfilter files in the package for further details.
1. Run DSR (must set mobile node to promiscuous mode)
2. On each mobile node, set initial BW state by typing
setbw <any integer value less than 255: this value should map the BW>
3. On mobile node 1, run source.tcl script
(make sure you create appropriate macfilters at all mobile nodes)
4. On mobile node 2, run in.tcl script, change topology (use appropriate
macfilters)
Usage of setbw, setout, getin and getout functions (for GUI and API)
The setout (in the gui_api directory) functionsets the INSIGNIA option fields for outgoing packets. These "INSIGNIA option" values are used/changed/updated by the distributed local admission controller(residing at every mobile nodes) and QOS_reports. The getout and getin functions are used for reading the INSIGNIAoption fields of outgoing packets and incoming packets respectively.The setbw function sets the local available BW assigned for RES classflows (i.e., you can set this value to 200 and you can assume that this is theresource [just BW for now; will be generalized later] you are provisioning forthe RES class flows). Note that the value is used for admission controlfor accepting/denying reservation requests.
- [Example of setbw, setout, getout, getin]Let's try to set up a premium class flow (viz., a RES flow) with its maximum and minimum requirement of 120 and 60.
1. setbw = 200 /* initializing the local bandwidth to 200.Make sure you have appropriate macfilters running on all mobile nodes */2. setout 1 1 1 120 60/* these values indicate ServiceMode=RES, PayloadType=BL, BW_ind=MAX, MaxBW_req=120, MinBW_req=60Similarly, setout 1 0 0 100 40 indicatesServiceMode=RES, PayloadType=EL, BW_ind=MIN, MaxBW_req=100, MinBW_req=40*/3. Check the outgoing packet fields by
- getout
- getin
원본 : http://comet.columbia.edu/insignia/testbed.html

Comments List
愿
嫄몄