#ifndef __CHASH_H #define __CHASH_H #include "constants.h" #include "hash.h" #include "transaction.h" #include /* Here we define type for connection key that will be used for hashing */ struct conn_key { unsigned int srcIP; unsigned int dstIP; unsigned short srcport; unsigned short dstport; }; /* Connection record */ struct conn_stats{ unsigned int seqnum; unsigned int acknum; int bytes; int duration; int jitter; int loss; int type; double starttime; double lasttime; struct transaction* trans[MAX_T]; struct transaction* t; int nt; }; /* Functions defined in chash.c */ int conn_clean(struct conn_stats*); int conn_compare(struct conn_key*, struct conn_key*); unsigned long conn_hash1(struct conn_key*, unsigned long); unsigned long conn_hash2(struct conn_key*, unsigned long); void create_conntable(); struct conn_stats* get_cdata(int); struct conn_key* get_ckey(int); long insert_connection(unsigned int, unsigned int, unsigned short, unsigned short); unsigned long find_connection(unsigned int, unsigned int, unsigned short, unsigned short); void delete_connection(unsigned int, unsigned int, unsigned short, unsigned short); void delete_conntable(); void purge_connections(int); void clean_packets(unsigned int); void reset_conntable(); int setActiveTransaction(struct conn_stats* cs, enum app tapp, int identification); void removeTransaction(struct conn_stats* cs, double time, struct transaction* t); int insertTransaction(struct conn_stats* cs, double time, enum type ttype, enum app tapp, enum trans ttrans, unsigned int sIP, int sport, unsigned int dIP, int dport, int tid); #endif