[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