130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#ifndef _XT_RATE_H 230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define _XT_RATE_H 330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#include <linux/types.h> 530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng/* timings are in milliseconds. */ 730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define XT_LIMIT_SCALE 10000 830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 930692c65c4174412c90e79489e98ab85c1a7412fBen Chengstruct xt_limit_priv; 1030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 1130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng/* 1/10,000 sec period => max of 10,000/sec. Min rate is then 429490 1230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng seconds, or one every 59 hours. */ 1330692c65c4174412c90e79489e98ab85c1a7412fBen Chengstruct xt_rateinfo { 1430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng __u32 avg; /* Average secs between packets * scale */ 1530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng __u32 burst; /* Period multiplier for upper limit. */ 1630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 1730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng /* Used internally by the kernel */ 1830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng unsigned long prev; /* moved to xt_limit_priv */ 1930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng __u32 credit; /* moved to xt_limit_priv */ 2030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng __u32 credit_cap, cost; 2130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng 2230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng struct xt_limit_priv *master; 2330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng}; 2430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#endif /*_XT_RATE_H*/ 25