123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182 |
- /*
- Defines structs for frame types.
- */
- #ifndef FRAMEDEFINITIONS_H_
- #define FRAMEDEFINITIONS_H_
- //the int len_* fields are only used for copying the data to a packet,
- //so no fuzzing on those fields! Fuzzing should only be done on u_char datatypes
- //Information element
- typedef struct {
- u_char id;
- u_char len;
- int len_data;
- u_char *data;
- } infoElem;
- //Probe response frame
- typedef struct {
- int len_radioTapHdr; //usually 32 bytes
- u_char *radioTapHdr;
- int len_type; //1 byte
- u_char *type; //Protocol version, type and subtype
- int len_flags; //1 byte
- u_char *flags; //to DS, from DS, more Frag, Retry, Pwr Mgt, more Data, WEP, Order
- int len_duration; //2 bytes
- u_char *duration;
- int len_destAddr; //6 bytes
- u_char *destAddr;
- int len_sourceAddr; //6 bytes
- u_char *sourceAddr;
- int len_bssAddr; //6 bytes
- u_char *bssAddr;
- int len_seqNr; //2 bytes
- u_char *seqNr;
- int len_timeStamp; //8 bytes
- u_char *timeStamp;
- int len_beaconInterval; //2 bytes
- u_char *beaconInterval;
- int len_capabInfo; //2 bytes
- u_char *capabInfo;
- int len_taggedParams; //variable size
- infoElem *taggedParams;
- int len_fsc; //4 bytes
- u_char *fsc;
- } probeResponse;
- //Authentication frame
- typedef struct {
- int len_radioTapHdr; //usually 32 bytes
- u_char *radioTapHdr;
- int len_type; //1 byte
- u_char *type; //Protocol version, type and subtype
- int len_flags; //1 byte
- u_char *flags; //to DS, from DS, more Frag, Retry, Pwr Mgt, more Data, WEP, Order
- int len_duration; //2 bytes
- u_char *duration;
- int len_destAddr; //6 bytes
- u_char *destAddr;
- int len_sourceAddr; //6 bytes
- u_char *sourceAddr;
- int len_bssAddr; //6 bytes
- u_char *bssAddr;
- int len_seqNr; //2 bytes
- u_char *seqNr;
- int len_authAlg; //2 bytes
- u_char *authAlg;
- int len_authSeq; //2 bytes
- u_char *authSeq;
- int len_status; //2 bytes
- u_char *status;
- int len_taggedParams; //variable size
- infoElem *taggedParams;
- int len_fsc; //4 bytes
- u_char *fsc;
- } authResponse;
- //Association response frame
- typedef struct {
- int len_radioTapHdr; //usually 32 bytes
- u_char *radioTapHdr;
- int len_type; //1 byte
- u_char *type; //Protocol version, type and subtype
- int len_flags; //1 byte
- u_char *flags; //to DS, from DS, more Frag, Retry, Pwr Mgt, more Data, WEP, Order
- int len_duration; //2 bytes
- u_char *duration;
- int len_destAddr; //6 bytes
- u_char *destAddr;
- int len_sourceAddr; //6 bytes
- u_char *sourceAddr;
- int len_bssAddr; //6 bytes
- u_char *bssAddr;
- int len_seqNr; //2 bytes
- u_char *seqNr;
- int len_capabInfo; //2 bytes
- u_char *capabInfo;
- int len_status; //2 bytes
- u_char *status;
- int len_assId; //2 bytes
- u_char *assId;
- int len_taggedParams; //variable size
- infoElem *taggedParams;
- int len_fsc; //4 bytes
- u_char *fsc;
- } assResponse;
- //Association response frame
- typedef struct {
- int len_radioTapHdr; //usually 32 bytes
- u_char *radioTapHdr;
- int len_type; //1 byte
- u_char *type; //Protocol version, type and subtype
- int len_flags; //1 byte
- u_char *flags; //to DS, from DS, more Frag, Retry, Pwr Mgt, more Data, WEP, Order
- int len_duration; //2 bytes
- u_char *duration;
- int len_destAddr; //6 bytes
- u_char *destAddr;
- int len_sourceAddr; //6 bytes
- u_char *sourceAddr;
- int len_bssAddr; //6 bytes
- u_char *bssAddr;
- int len_seqNr; //2 bytes
- u_char *seqNr;
- int len_reasonCode; //2 bytes
- u_char *reasonCode;
- int len_fsc; //4 bytes
- u_char *fsc;
- } disAss;
- #endif
|