#include "vera_directc.h"
extern void setpgSeed( unsigned int seed
);
extern unsigned int pgrand();
// global name crc32 collides with one in the denali library
unsigned int crc32(unsigned char *pktbuf
,unsigned int pktlen
)
crc
= (unsigned int) 0xffffffff;
for (byte
= 0; byte
< pktlen
; byte
++) {
c
= (unsigned int) pktbuf
[byte
];
printf("index - %d CRC Byte - %x CRC So far - %x \n",byte
,c
,crc
);
for (bit
= 0; bit
< 8; bit
++) {
if ((c
& 0x1) ^ (crc
& 0x1))
crc
= (crc
>> 1)^0xedb88320;
printf("CRC - %x \n",~crc
);
unsigned char getNextByte(unsigned char in
, int data_type
) {
if(data_type
== DATA_SEQ
) {
} else if(data_type
== DATA_FIXED
) {
} else if(data_type
== DATA_RAND
) {
} else if(data_type
== DATA_ALL0
) {
} else if(data_type
== DATA_ALL1
) {
unsigned char * genPayload ( int data_type
, unsigned int seed
, int data_length
) {
/* defined data types are
* DATA_RANDOM - Random data
* More to be defined later
payload
= (unsigned char *) malloc(data_length
* sizeof(unsigned char));
if(data_type
== DATA_RAND
) {
} else if(data_type
== DATA_ALL0
) {
} else if(data_type
== DATA_ALL1
) {
} else if(data_type
== DATA_FC_PAUSE
) {
// maintain seed for first 4 bytes and then all0s
for(i
=0;i
<data_length
;i
++) {
payload
[index
]= ((seed
& (0xff << (8*i
)))>>(8*i
));
payload
[index
] = getNextByte(payload
[index
-1],data_type
);
// printf(" Index - %d data -0 %x \n",index, payload[index] );
unsigned char * addL2Pad(unsigned char * pktbuf
,int pktlen
,int l2_pad_length
) {
payload
= (unsigned char *) malloc((pktlen
+ l2_pad_length
)* sizeof(unsigned char));
for(i
=pktlen
;i
<pktlen
+ l2_pad_length
;i
++){
payload
[i
] = (i
%2) ? 0xa5:0x5a ;
unsigned char * addCrc ( unsigned char * p1
, int l1
, unsigned int crc
) {
payload
= (unsigned char *) malloc((l1
+4)* sizeof(unsigned char));
payload
[l1
+ i
]= ((crc
& (0xff << (8*i
)))>>(8*i
));
unsigned char * addPayload ( unsigned char * p1
, int l1
, unsigned char * p2
, int l2
) {
if( (l1
+l2
) == 0) return(NULL
);
payload
= (unsigned char *) malloc((l1
+l2
)* sizeof(unsigned char));
for(i
=l1
;i
<l1
+ l2
;i
++) {