kernel-aodv_v2.0.1
aodv V2  

所属分类:Linux/Unix编程
开发工具:Unix_Linux
文件大小:56KB
下载次数:62
上传日期:2008-01-09 13:45:14
上 传 者judyzll
说明:  一种AODV实现方法,要修改linux内核。
(AODV to achieve a method, it is necessary to amend the linux kernel.)

文件列表:
kernel-aodv_v2.0.1\aodv.h (5364, 2002-08-30)
kernel-aodv_v2.0.1\aodv_thread.c (6177, 2002-08-30)
kernel-aodv_v2.0.1\aodv_thread.h (450, 2002-08-30)
kernel-aodv_v2.0.1\event_queue.c (6014, 2002-08-30)
kernel-aodv_v2.0.1\event_queue.h (627, 2002-08-30)
kernel-aodv_v2.0.1\interface_list.c (9093, 2002-08-30)
kernel-aodv_v2.0.1\interface_list.h (653, 2002-08-30)
kernel-aodv_v2.0.1\Makefile (2657, 2002-08-30)
kernel-aodv_v2.0.1\module.c (6193, 2002-08-30)
kernel-aodv_v2.0.1\module.h (491, 2002-08-30)
kernel-aodv_v2.0.1\neighbor_list.c (3859, 2002-08-30)
kernel-aodv_v2.0.1\neighbor_list.h (646, 2002-08-30)
kernel-aodv_v2.0.1\packet_in.c (6762, 2002-08-30)
kernel-aodv_v2.0.1\packet_in.h (701, 2002-08-30)
kernel-aodv_v2.0.1\packet_out.c (2919, 2002-08-30)
kernel-aodv_v2.0.1\packet_out.h (737, 2002-08-30)
kernel-aodv_v2.0.1\packet_queue.c (9789, 2002-08-30)
kernel-aodv_v2.0.1\packet_queue.h (2362, 2002-08-30)
kernel-aodv_v2.0.1\rerr.c (13147, 2002-08-30)
kernel-aodv_v2.0.1\rerr.h (759, 2002-08-30)
kernel-aodv_v2.0.1\route_table.c (22988, 2002-08-30)
kernel-aodv_v2.0.1\route_table.h (1740, 2002-08-30)
kernel-aodv_v2.0.1\rrep_ack.c (1239, 2002-08-30)
kernel-aodv_v2.0.1\rrep_ack.h (258, 2002-08-30)
kernel-aodv_v2.0.1\rrep.c (11328, 2002-08-30)
kernel-aodv_v2.0.1\rrep.h (515, 2002-08-30)
kernel-aodv_v2.0.1\rreq.c (10566, 2002-08-30)
kernel-aodv_v2.0.1\rreq.h (443, 2002-08-30)
kernel-aodv_v2.0.1\rreq_id_queue.c (8839, 2002-08-30)
kernel-aodv_v2.0.1\rreq_id_queue.h (700, 2002-08-30)
kernel-aodv_v2.0.1\start_gateway.sh (854, 2002-08-30)
kernel-aodv_v2.0.1\start.sh (399, 2002-08-30)
kernel-aodv_v2.0.1\timer_queue.c (19071, 2002-08-30)
kernel-aodv_v2.0.1\timer_queue.h (1400, 2002-08-30)
kernel-aodv_v2.0.1\utils.c (14850, 2002-08-30)
kernel-aodv_v2.0.1\utils.h (1378, 2002-08-30)
kernel-aodv_v2.0.1\write (66, 2002-08-30)
kernel-aodv_v2.0.1 (0, 2007-10-14)
... ...

Kernel AODV Created by Luke Klein-Berndt National Institute of Standards and Technology http://w3.antd.nist.gov/wctg/aodv_kernel/ --------------------------------- Kernel AODV is a loadable kernel module for Linux. It implements AODV routing between computers equipped with WLAN devices. Kernel AODV began as an update to the MadHoc implementation of the AODV protocol. However it has evolved into a completely separate implementation. Version 2.0.1 improvements: * Fixed an error that occurs on ARMs when they do ***bits differently * Thanks to S. Peter Li for coming up with this fix! Version 2.0 improvements: * Updated to AODV draft version 11. * Managed internet gatewaying. * Monitor wireles signal strength. * Fixed buffer size for /proc Route Table. * Fixed Expanding Ring Search. Version 1.5 improvements: * Supports multiple interfaces. * Based on draft 10 of AODV. * Runs on ARM based PDAs. * Completely redesigned and improved internal message handling system. * Simplified installation process. Version 1.0 features: * Since it is a Kernel module it runs in the Kernel space instead of the user space, which allows for better access to resources. * Uses Netfilters from the 2.4 Kernel to capture packets going in and out of the node instead of using the libcap library. * Uses a Proc file to update the user about current routes and statistics for that node. Contact: If you have any questions, concerns or comments please feel free to contact Luke Klein-Berndt at: kleinb@nist.gov Requirements: * Linux with Kernel 2.4. * Packet Forwarding enabled. This can be set by making sure there is a line in /etc/sysconfig/network which says: FORWARD_IPV4=yes. * Netfilters. If you don't have it installed you need to reconfigure the your Kernel options and then rebuild the Kernel. There is a HOWTO manual on this which maybe helpful. * A networking card is needed. If it is a wireless card have it configured in Ad Hoc mode. If you are unsure on how to do this look for information on iwconfig and setting up a wireless network under Linux. * The source files for the Linux kernel you have installed. It should be located in the /usr/src/linux directory. If they are not you can download them from: http://www.kernel.org Installation: * Download the file. * Unpack it - tar xvfz kernel_aodv_2.0.tar.gz. * Switch into the new directory and run - make. * If notice any errors during compilation you may need to alter the Makefile. The Makefile contains instructions on how to do this. Usage: Once Kernel AODV is compiled you can try running it. Make sure you are root and run - insmod kernel_aodv.o. Now start up atleast two other nodes. With all the nodes in range, check the routing table - cat /proc/aodv/route_table. Each node should appear in the routing table. There maybe multiple entries for nodes with more than one interface. Once you verify that all nodes are able communicate try setting up a configuration where multiple hops would be needed, i.e. A---B---C. Now try pinging across the nodes. If this works you are up in running. If not, refer to the troubleshooting section. Options: * The amount of information Kernel AODV displays on the console terminal is selectable. If you want to see the operational messages add -DMESSAGES to the MODCFLAGS line in the Makefile. To trace the operation add -DTRACE to MODCFLAGS. Run make clean and then make. * It is possible to prevent Kernel AODV from sending Hello Messages out on a device - insmod kernel_aodv.o block_dev=eth1. * Kernel AODV is also able to make use of the loopback (lo) device - insmod kernel_aodv.o use_lo=1. * If you would like to limit Kernel AODV to only using one interface you can specify the device it should use - insmod kernel_aodv.o aodv_dev=eth0 * If you are using a gateway to an external network (aka the internet) you can specify a subnet that all the AODV nodes are in. Any internet address outside of the range is assumed to be on the External Network and is passed to the gateway. 0s are used as wild-cards when specifying the subnet. insmod kernel_aodv.o aodv_subnet=129.6.230.0 Proc files: * AODV Routing table - /proc/aodv/route_table . * List of timers - /proc/aodv/timer_queue . * List of RREQs - /proc/aodv/rreq_id_queue . Managed Internet Gatewaying: Ver 2.0 of Kernel AODV introduces managed internet gatewaying. If an IP address is outside of a subnet it is assumed that the address is on the external network. In order to successfully gateway you will need one node with two network interfaces. One of these interfaces will be used to connect to the external network while the other will be used to communicate with other AODV nodes. The gatewaying nodes then has to be configured using - netconf. After the conrect settings for accessing the internet are entered, the node should be able to access the Internet before Kernel AODV is started. The other nodes which are going to use the gatewaying node also have to reconfigure using netconf. They will want to use the same DNS servers as the gatewaying node except as a gateway they will use the IP address of the gatewaying nodes interface which is connected to the AODV network. IPTABLES is used to do NAT, allowing AODV nodes to access the external network. IPTABLES should be installed on the gatewaying node. A sample script, start_gateway.sh has been included. It will have to be configured before use. For example: Node A - the gatewaying nodes eth0- connected to internet IP= 129.6.53.50 eth1- WLAN connected to other AODV nodes IP= 129.6.230.5 (use start_gateway.sh or start IPTABLES manually) insmod kernel_aodv.o aodv_dev=eth1 aodv_subnet=129.6.230.0 Node B - AODV node eth0- connected to other AODV nodes IP=129.6.230.4 insmod kernel_aodv.o aodv_subnet=129.6.230.0 Node B has been configured using netconf so that its default gateway is the IP of Node A's eth1 Troubleshooting: Q: When I try pinging I get, Network Unreachable. A: You probably have a routing problem unrelated to Kernel AODV. Try doing the same thing except without Kernel AODV running on either computer. If the problem persists the next thing to check is the routing table. If you don't see a default route run - "route add default dev eth0". Q: The route between two Neighboring nodes is not too stable even though they are next to each other. A: Check to make sure the wireless settings are the same on all the nodes. The iwconfig utility will be helpful. Make sure that encryption is turned off and that the rate is the same on all the nodes. You may want to try - iwconfig eth0 rate 2. It is recommended that you try a rate of 2 because that is the rate at which broadcast messages are sent at. Setting the rate to 2 means that unicast packets and broadcast packets will be sent at the same rate. Q: Kernel AODV seems to be able to find routes between nodes but I am unable to ping between them. A: Make sure you have IP forwarding turned on. Try echo 1 > /proc/sys/net/ipv4/ip_forward . Also make sure you do not have a uni-directional link. Check the routing table on each node to make sure it can see the other nodes. Q: Something doesn't seem right but I can't figure out what. A: Try all of the solutions listed above. None of them will do any damage and one might fix a problem you did not even know you had! If that does not work send an email describing you problem to: kleinb@nist.gov . Created: 11/05/01 Updated: 08/15/02 NIST is an agency of the U.S. Commerce Department's Technology Administration

近期下载者

相关文件


收藏者