X-Git-Url: http://git.onelab.eu/?p=distributedratelimiting.git;a=blobdiff_plain;f=drl%2Fratetypes.h;h=5430c2ded02ff9b04b7c03f32b74f018176a5fb1;hp=319d0714cfd0880ea98a135e41beaaa46c7dff0e;hb=c9d6255f0c06ee41eb2c06a5f74a957ec7be3223;hpb=f83340496f632165030cc92cd98408a87082f6b1 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; /**