[ns] fatal error message!! with .cc file please help
amarjit nagra
amarjitnagra80 at hotmail.com
Sun Feb 29 10:09:11 PST 2004
Hello I desperately need some help. When I compile my .cc file by typing
make in the ns directory I get the following error message
Id: fatal: Symbol referencing errors. No output written to ns
Collect2:Id returned 1 exit status
make:*** [ns] Error 1
Does anybody know how to solve this please help. Any response would be
greatly appreciated. Thank you
cc file*******************************************************
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include "simple_flooding.h"
static class simplefloodingClass : public TclClass{
public:
simplefloodingClass() : TclClass("Agent/simpleflooding") {}
TclObject* create(int argc, const char*const* argv) {
return (new simplefloodingAgent() );
}
}class_simpleflooding;
simplefloodingAgent::simplefloodingAgent() : Agent(PT_SIMPLEFLOODING) {
//initialise variables
pkt_num=0;
bind ("off_simpleflooding_", &off_simpleflooding_);
}
void simpleflooding:: recv(Packet* packet, Handler*)
{
hdr_simpleflooding* fp = HDR_SIMPLEFLOODING(packet);
//use hash table to store info about packets in hash table
Pkt_Hash_Entry *hashPtr= PktTable.GetHash(fp-> source_addr, fp->pk_num);
//received this packet before?
if (hashPtr != NULL) {
Packet::free(packet);
return;
}
//never seen before? put in hash table
PktTable.put_in_hash(fp);
broadcast_packet(packet);
}
void simplefloodingAgent::broadcast_packet(Packet *p)
Packet* p = allockpkt();
hdr_simpleflooding* fp = HDR_SIMPLEFLOODING(p);
hdr_cmn* cmnh = HDR_CMN(p);
hdr_ip* iph = HDR_IP(p);
fp->pkt_num = pkt_count;
pkt_count++;
cmnh-> next_hop() = MAC_BROADCAST:
iph-> src_ = fp-> source_addr;
iph-> dst_.addr = MAC_BROADCAST;
iph-> dst_.port = 255;
Scheduler::instance().schedule(ll,p,0.0);
}
int simplefloodingAgent:: command(int argc, const char*const* argv)
{
Tcl& tcl = Tcl::instance();
if (argc == 2) {
if (strcasecmp (argv[1], "create") == 0) {
return TCL_OK;
}
if (argc == 3) {
if (strcasecmp(argv[1], "set-ll") == 0) {
TclObject *obj;
if ((obj = TclObject::lookup(argv[2])) == 0) {
fprintf(stderr, "flooding node: %s lookup of %s failed\n",
argv[1],argv[2]);
return TCL_ERROR;
ll = (NsObject *) obj;
return TCL_OK;
}
return Agent::command(argc, argv);
}
}
_________________________________________________________________
It's fast, it's easy and it's free. Get MSN Messenger today!
http://www.msn.co.uk/messenger
More information about the Ns-users
mailing list