Hi Sireesha I am working with MAC802.11
I am not sure about authentication packets... but my understanding is that packets are identified by the common header. The types of packets i know of are defined in packet.h as below: static const packet_t PT_TCP = 0; static const packet_t PT_UDP = 1; static const packet_t PT_CBR = 2; static const packet_t PT_AUDIO = 3; static const packet_t PT_VIDEO = 4; static const packet_t PT_ACK = 5; static const packet_t PT_START = 6; static const packet_t PT_STOP = 7; static const packet_t PT_PRUNE = 8; static const packet_t PT_GRAFT = 9; static const packet_t PT_GRAFTACK = 10; static const packet_t PT_JOIN = 11; static const packet_t PT_ASSERT = 12; static const packet_t PT_MESSAGE = 13; static const packet_t PT_RTCP = 14; static const packet_t PT_RTP = 15; static const packet_t PT_RTPROTO_DV = 16; static const packet_t PT_CtrMcast_Encap = 17; static const packet_t PT_CtrMcast_Decap = 18; static const packet_t PT_SRM = 19; /* simple signalling messages */ static const packet_t PT_REQUEST = 20; static const packet_t PT_ACCEPT = 21; static const packet_t PT_CONFIRM = 22; static const packet_t PT_TEARDOWN = 23; static const packet_t PT_LIVE = 24; // packet from live network static const packet_t PT_REJECT = 25; static const packet_t PT_TELNET = 26; // not needed: telnet use TCP static const packet_t PT_FTP = 27; static const packet_t PT_PARETO = 28; static const packet_t PT_EXP = 29; static const packet_t PT_INVAL = 30; static const packet_t PT_HTTP = 31; /* new encapsulator */ static const packet_t PT_ENCAPSULATED = 32; static const packet_t PT_MFTP = 33; /* CMU/Monarch's extnsions */ static const packet_t PT_ARP = 34; static const packet_t PT_MAC = 35; static const packet_t PT_TORA = 36; static const packet_t PT_DSR = 37; static const packet_t PT_AODV = 38; static const packet_t PT_IMEP = 39; // RAP packets static const packet_t PT_RAP_DATA = 40; static const packet_t PT_RAP_ACK = 41; static const packet_t PT_TFRC = 42; static const packet_t PT_TFRC_ACK = 43; static const packet_t PT_PING = 44; static const packet_t PT_PBC = 45; // Diffusion packets - Chalermek static const packet_t PT_DIFF = 46; // LinkState routing update packets static const packet_t PT_RTPROTO_LS = 47; // MPLS LDP header static const packet_t PT_LDP = 48; // GAF packet static const packet_t PT_GAF = 49; // ReadAudio traffic static const packet_t PT_REALAUDIO = 50; // Pushback Messages static const packet_t PT_PUSHBACK = 51; #ifdef HAVE_STL // Pragmatic General Multicast static const packet_t PT_PGM = 52; #endif //STL // LMS packets static const packet_t PT_LMS = 53; static const packet_t PT_LMS_SETUP = 54; static const packet_t PT_SCTP = 55; static const packet_t PT_SCTP_APP1 = 56; // SMAC packet static const packet_t PT_SMAC = 57; // XCP packet static const packet_t PT_XCP = 58; // HDLC packet static const packet_t PT_HDLC = 59; // Bell Labs Traffic Trace Type (PackMime OL) static const packet_t PT_BLTRACE = 60; // insert new packet types here static packet_t PT_NTYPE = 61; // This MUST be the LAST one >From the common header the ptype variable holds a number which corresponds to a certain type of packet. for instance, exponential traffic that i am using is 29... whereas DSDV routing update packets are 13. Then, the mechanism for directing the packets through the priority queue or the normal queue is as follows. All packets are received by the llc.cc file. If the packet has a direction DOWN, then it is passed to the LL::sendDown method. In this method, the schedules the packet to be received by the PriQueue::recv method in the file priqueue.cc. Now, depending on the ptype in the common header... the packet is directed to an IFQ. If it is TORA or AODV it goes to the red recvHighPriority(p, h); and get s received by the PriQueue::recvHighPriority in priqueue.cc if it is just a normal packet... like mine are type MESSAGE... then it goes to the blue Queue::recv(p, h); and is received by the normal IFQ Queue::recv in file queue.cc void PriQueue::recv(Packet *p, Handler *h) { struct hdr_cmn *ch = HDR_CMN(p); if(Prefer_Routing_Protocols) { switch(ch->ptype()) { case PT_DSR: case PT_MESSAGE: case PT_TORA: case PT_AODV: recvHighPriority(p, h); break; default: Queue::recv(p, h); } } else { Queue::recv(p, h); } } That's how i think it works... i could be completely lost... but yeah. Hope it helps Kind Regards Ariel On Mon, Mar 8, 2010 at 6:53 PM, sireesha madabhushi <siri...@gmail.com>wrote: > Hello! > Are you working on 802.11 MAC? If yes I need some help regarding the > interface queues. I want to differentiate the authentication packets from > others and give priority to them. But in the case statement of priqueue.cc, > I am not able to identify the MAC AUTH packet. I got the MAC header only > from the function hdr_cmn802_11 only. But still I'm facing the problem. > Please let me know anything about this so that I can proceed with my project > work. It is very urgent, please do take some time if you happen to know > anything about it. > > Thanks, > Sireesha. > > On Mon, Mar 8, 2010 at 7:45 PM, Ariel Goldberg > <ariel.goldbe...@gmail.com>wrote: > >> >> I'm running into a segmentation fault in my simulation. The essence of >> the >> problem is that i am putting a packet into the IFQ of a node, but when i >> take the packet off the queue to be processed by the MAC layer... it is >> blank. >> >> When the simulation tries to read the common header of the packet it >> results >> in a segmentation fault. >> >> Do you have any idea what could be happening to the packet while it is in >> the IFQ... or where this blank packet could be coming from. I am trying >> to >> monitor the queue by looking at the packets inserted before and after the >> packet... but i can't really make much sense of it right now. >> >> By looking at the memory addresses of the packets, i thought i would be >> able >> to track the packets as they are added to the queue from the LL::sendDown >> method in llc.cc and then see them in that order in the queue by looking >> at >> the next_ variable... but what i have found is that the order of the >> packets >> in the queue does not correspond to the order of the packets that came >> through llc.cc? >> >> I don't understand this? Surely all packets in the IFQ must be coming >> through the LL::sendDown method? >> >> Kind Regards >> >> Ariel Goldberg >> >> Mobile: +27 82 998 7122 >> Phone: +27 21 940 9757 >> Mail: ariel.goldbe...@gmail.com >> > > -- Kind Regards Ariel Goldberg Mobile: +27 82 998 7122 Phone: +27 21 940 9757 Mail: ariel.goldbe...@gmail.com