/usr/src/other/ns-allinone-2.27/ns_orig/aodv/aodv.cc
00032
00033 //#include <ip.h>
00034
00035 #include <aodv/aodv.h>
00036 #include <aodv/aodv_packet.h>
00037 #include <random.h>
00038 #include <cmu-trace.h>
00039 //#include <energy-model.h>
00040
00041 #define max(a,b) ( (a) > (b) ? (a) : (b) )
00042 #define CURRENT_TIME Scheduler::instance().clock()
00043
00044 //#define DEBUG
00045 //#define ERROR
00046
00047 #ifdef DEBUG
00048 static int extra_route_reply = 0;
00049 static int limit_route_request = 0;
00050 static int route_request = 0;
00051 #endif
00052
00053
00054 /*
00055 TCL Hooks
00056 */
00057
00058
00059 int hdr_aodv::offset_;
00060 static class AODVHeaderClass : public PacketHeaderClass {
00061 public:
00062 AODVHeaderClass() : PacketHeaderClass("PacketHeader/AODV",
00063 sizeof(hdr_all_aodv)) {
00064 bind_offset(&hdr_aodv::offset_);
00065 }
00066 } class_rtProtoAODV_hdr;
00067
00068 static class AODVclass : public TclClass {
00069 public:
00070 AODVclass() : TclClass("Agent/AODV") {}
00071 TclObject* create(int argc, const char*const* argv) {
00072 assert(argc == 5);
00073 //return (new AODV((nsaddr_t) atoi(argv[4])));
00074 return (new AODV((nsaddr_t) Address::instance().str2addr(argv[4])));