X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=drl%2Fratetypes.h;h=5430c2ded02ff9b04b7c03f32b74f018176a5fb1;hb=266bcb55dbeb328bc583f3b712e7ab90d7ff004e;hp=319d0714cfd0880ea98a135e41beaaa46c7dff0e;hpb=f83340496f632165030cc92cd98408a87082f6b1;p=distributedratelimiting.git diff --git a/drl/ratetypes.h b/drl/ratetypes.h index 319d071..5430c2d 100644 --- a/drl/ratetypes.h +++ b/drl/ratetypes.h @@ -36,12 +36,19 @@ typedef struct identity { /** The global rate limit. */ uint32_t limit; + /** The effective global rate limit. Can be lower than the nominal global + * rate limit due to the failure of one or more peers. */ + uint32_t effective_limit; + /** The local rate limit. */ uint32_t locallimit; /** Pointer to the identity's parent in the HTB hierarchy. */ struct identity *parent; + /** For sets, indicates the parent should be 0x10. Meaningless for machines. */ + int independent; + /** Array of the leaves that are limited by this identity. Points into the * leaves array for the identity's instance. */ struct leaf **leaves; @@ -185,6 +192,10 @@ typedef struct leaf { /** GRD: The leaf's packet drop probability. */ double drop_prob; + + /** Only used for experimentation. */ + int delay; + } leaf_t; /**