/* See the DRL-LICENSE file for this file's software license. */ #ifndef _RATEROUTER_H_ #define _RATEROUTER_H_ #define _XOPEN_SOURCE 600 /* for pthread_rwlock_t */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include /* defines getifaddrs */ #include enum policies { POLICY_GRD = 1, POLICY_FPS = 2 }; enum commfabrics { COMM_MESH = 1, COMM_GOSSIP = 2 }; enum accountings { ACT_STANDARD = 1, ACT_SAMPLEHOLD = 2, ACT_SIMPLE = 3 }; /* The comm library also has definitions for comfabrics. This prevents us * from defining them twice. */ #define COMM_DEFS /* global constants */ #define IDENT_CLEAN_INTERVAL 5 /* in seconds */ #define LIMITER_LISTEN_PORT 9001 /** * The weight percentage increase that must occur before FPS does increase * dampening. */ #define LARGE_INCREASE_PERCENTAGE (0.05) /** * Below this rate, a limiter is basically treated as idle, and its limit is * raised to allow for increases should the limiter suddenly become active. * * This is used for FPS only. See estimate.c */ #define FLOW_START_THRESHOLD (6000) #define CLOSE_ENOUGH (0.99) /** * All fields come from the ip protocol header. * * 1 byte for the protocol. * 4 bytes for the source ip. * 4 bytes for the destination ip. * 2 bytes for the source port. * 2 bytes for the destination port. * * 4+4+2+2+1 = 13. */ #define FLOWKEYSIZE (13) /* forward declare some structs */ struct limiter; struct identity; /* prototypes for threaded processing DRL model */ void handle_estimation(void *arg); #endif