NETWORK ATTACKS FRAMEWORK  1.0.0
A NETwork Attacks framework. Making network attacks impact evaluation easier!
AODV_msg Struct Reference

#include <NA_defs_aodv.h>

Inheritance diagram for AODV_msg:
RERR RREP RREP_ack RREQ

List of all members.

Public Member Functions

 AODV_msg (const char *name=NULL)
 ~AODV_msg ()
 AODV_msg (const AODV_msg &m)
AODV_msgoperator= (const AODV_msg &m)
virtual AODV_msgdup () const
uint8_t getType () const
uint8_t getTtl () const
bool getPrevFix () const
AODV_extaddExtension (int, int, char *)
void clearExtension ()
AODV_extgetExtension (int i)
AODV_extgetExtensionRef (int i)
AODV_extgetFirstExtension ()
AODV_extgetNexExtension (AODV_ext *)
int getNumExtension ()

Public Attributes

u_int8_t type
uint8_t ttl
bool prevFix

Private Member Functions

void copy (const AODV_msg &other)

Private Attributes

AODV_extextension
int extensionsize

Detailed Description

Definition at line 216 of file NA_defs_aodv.h.


Constructor & Destructor Documentation

AODV_msg::AODV_msg ( const char *  name = NULL) [inline, explicit]

Definition at line 37 of file NA_aodv_msg_struct.h.

: cPacket(name) {extensionsize=0; extension=NULL;}

Definition at line 76 of file NA_aodv_msg_struct.cc.

AODV_msg::AODV_msg ( const AODV_msg m)

Definition at line 23 of file NA_aodv_msg_struct.cc.

                                    : cPacket(m)
{
    copy(m);
}

Member Function Documentation

AODV_ext * AODV_msg::addExtension ( int  type,
int  len,
char *  data 
)

Definition at line 81 of file NA_aodv_msg_struct.cc.

{
    AODV_ext* extension_aux;
    if (len<0)
    {
        return NULL;
    }
    extension_aux =   new AODV_ext [extensionsize+1];
    for (int i=0; i < extensionsize; i++)
    {
        extension_aux[i].type = extension[i].type;
        extension_aux[i].length = extension[i].length;
        extension_aux[i].pointer = extension[i].pointer;
    }
    if (extensionsize>0)
        delete [] extension;
    extension =  extension_aux;
    extensionsize++;
    extension[extensionsize-1].type = type;
    extension[extensionsize-1].length = len;
    extension[extensionsize-1].pointer  =  new char[len];
    memcpy(extension_aux[extensionsize-1].pointer, data, len);
    setBitLength(getBitLength()+((AODV_EXT_HDR_SIZE+len) *8));
    return & extension[extensionsize-1];
}

Definition at line 61 of file NA_aodv_msg_struct.cc.

{
    if (extensionsize==0)
    {
        return;
    }
    for (int i=0; i < extensionsize; i++)
    {
        delete extension[i].pointer;
    }
    delete [] extension;
    extensionsize = 0;
    extension = NULL;
}
void AODV_msg::copy ( const AODV_msg other) [private]

Definition at line 40 of file NA_aodv_msg_struct.cc.

{
    type = m.type;
    ttl = m.ttl;
    prevFix = m.prevFix;
    extensionsize = m.extensionsize;
    if (extensionsize==0)
    {
        extension = NULL;
        return;
    }
    extension = new AODV_ext [extensionsize];
    for (int i=0; i < extensionsize; i++)
    {
        extension[i].type = m.extension[i].type;
        extension[i].length = m.extension[i].length;
        extension[i].pointer = new char[extension[i].length];
        memcpy(extension[i].pointer, m.extension[i].pointer, extension[i].length);
    }
}
virtual AODV_msg* AODV_msg::dup ( ) const [inline, virtual]

Reimplemented in RREQ, RREP_ack, RREP, and RERR.

Definition at line 41 of file NA_aodv_msg_struct.h.

{return new AODV_msg(*this);}
AODV_ext* AODV_msg::getExtension ( int  i) [inline]

Definition at line 47 of file NA_aodv_msg_struct.h.

{return &extension[i];}
AODV_ext& AODV_msg::getExtensionRef ( int  i) [inline]

Definition at line 48 of file NA_aodv_msg_struct.h.

{return extension[i];}

Definition at line 49 of file NA_aodv_msg_struct.h.

{return extension;}

Definition at line 108 of file NA_aodv_msg_struct.cc.

{
    if ((&extension[extensionsize-1]>aodv_ext+1) && (aodv_ext >= extension))
        return aodv_ext+1;
    else
        return NULL;
}
int AODV_msg::getNumExtension ( ) [inline]

Definition at line 51 of file NA_aodv_msg_struct.h.

{return extensionsize;}
bool AODV_msg::getPrevFix ( ) const [inline]

Definition at line 44 of file NA_aodv_msg_struct.h.

{return prevFix;}
uint8_t AODV_msg::getTtl ( ) const [inline]

Definition at line 43 of file NA_aodv_msg_struct.h.

{return ttl;}
uint8_t AODV_msg::getType ( ) const [inline]

Definition at line 42 of file NA_aodv_msg_struct.h.

{return type;}
AODV_msg & AODV_msg::operator= ( const AODV_msg m)

Definition at line 29 of file NA_aodv_msg_struct.cc.

{
    if (this==&m) return *this;

    clearExtension();
    cPacket::operator=(m);
    copy(m);
    return *this;
}

Member Data Documentation

Reimplemented in RREP.

Definition at line 31 of file NA_aodv_msg_struct.h.

int AODV_msg::extensionsize [private]

Definition at line 32 of file NA_aodv_msg_struct.h.

Definition at line 29 of file NA_aodv_msg_struct.h.

uint8_t AODV_msg::ttl

Definition at line 28 of file NA_aodv_msg_struct.h.

u_int8_t AODV_msg::type

Reimplemented in RREP_ack, RERR, RREQ, and RREP.

Definition at line 219 of file NA_defs_aodv.h.


The documentation for this struct was generated from the following files:
 All Classes Files Functions Variables Typedefs Enumerator Defines