I would appreciate if you can take a look at the following. I have the 
following simple topology:
N0 ----- N1 ------ N2
N0 sends FTP and CBR packtets to N2 throughout the simulation. I defined a new 
agent My_Agent and attached it on N1 (intermediate node). Its task is to drop 
both FTP and CBR packets from N0.

I defined the constructor as follows:
My_Agent::My_Agent() : Agent(PT_CBR) {...}
By writing PT_CBR does it mean it can only drop CBR packets? If yes, what shall 
I put there?

Below you can find the recv() function with my queries.
It doesn't work (i.e. no packet drops) although it compiles. What do you think 
is missing?

Thanks for your time.
Kind Regards,

void RL_Agent::recv(Packet* pkt, Handler*) {
     printf("INSIDE recv\n");        // (1) This is never printed. Why isn't 
the recv() called? 

     struct hdr_ip *iph = hdr_ip::access(pkt);
     int source_address = iph->saddr();
     int destination_address = iph->daddr();;
     if (source_address == 0) { drop(pkt); }    // (2) By address we mean the 
node number right?
     else {
      Packet* p = allocpkt();      
      hdr_ip *iph = hdr_ip::access(p);
      iph->saddr() = source_address;
      iph->daddr() = destination_address;      
      send(p, 0);

Reply via email to