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.comwrote:
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