Main Page | Alphabetical List | Data Structures | Directories | File List | Data Fields | Globals

police.c File Reference

#include <asm/uaccess.h>
#include <asm/system.h>
#include <asm/bitops.h>
#include <linux/config.h>
#include <linux/types.h>
#include <linux/kernel.h>
#include <linux/sched.h>
#include <linux/string.h>
#include <linux/mm.h>
#include <linux/socket.h>
#include <linux/sockios.h>
#include <linux/in.h>
#include <linux/errno.h>
#include <linux/interrupt.h>
#include <linux/netdevice.h>
#include <linux/skbuff.h>
#include <linux/rtnetlink.h>
#include <linux/init.h>
#include <linux/proc_fs.h>
#include <net/sock.h>
#include <net/pkt_sched.h>

Include dependency graph for police.c:

Go to the source code of this file.

Defines

#define BUG_TRAP(x)   if (!(x)) { printk("Assertion (" #x ") failed at " __FILE__ "(%d):" __FUNCTION__ "\n", __LINE__); }
#define L2T(p, L)   ((p)->R_tab->data[(L)>>(p)->R_tab->rate.cell_log])
#define L2T_P(p, L)   ((p)->P_tab->data[(L)>>(p)->P_tab->rate.cell_log])

Functions

static __inline__ unsigned tcf_police_hash (u32 index)
static __inline__ struct tcf_policetcf_police_lookup (u32 index)
static __inline__ u32 tcf_police_new_index (void)
void tcf_police_destroy (struct tcf_police *p)
tcf_policetcf_police_locate (struct rtattr *rta, struct rtattr *est)
int tcf_police (struct sk_buff *skb, struct tcf_police *p)

Variables

static u32 idx_gen
static struct tcf_policetcf_police_ht [16]


Define Documentation

#define BUG_TRAP x   )     if (!(x)) { printk("Assertion (" #x ") failed at " __FILE__ "(%d):" __FUNCTION__ "\n", __LINE__); }
 

Definition at line 34 of file police.c.

#define L2T p,
 )     ((p)->R_tab->data[(L)>>(p)->R_tab->rate.cell_log])
 

Definition at line 36 of file police.c.

Referenced by cbq_dequeue(), cbq_update(), tbf_dequeue(), and tcf_police().

#define L2T_P p,
 )     ((p)->P_tab->data[(L)>>(p)->P_tab->rate.cell_log])
 

Definition at line 37 of file police.c.

Referenced by tbf_dequeue(), tcf_police(), and tcf_police_locate().


Function Documentation

int tcf_police struct sk_buff skb,
struct tcf_police p
 

Definition at line 158 of file police.c.

References tcf_police::action, tc_stats::bps, tcf_police::burst, tc_stats::bytes, tcf_police::ewma_rate, L2T, L2T_P, sk_buff::len, long, tcf_police::mtu, now, NULL, tc_stats::overlimits, tcf_police::P_tab, tc_stats::packets, PSCHED_GET_TIME, PSCHED_TDIFF_SAFE, tcf_police::ptoks, tcf_police::R_tab, tcf_police::result, tcf_police::stats, tcf_police::t_c, and tcf_police::toks.

Referenced by fw_classify(), and u32_classify().

void tcf_police_destroy struct tcf_police p  ) 
 

Definition at line 69 of file police.c.

References BUG_TRAP, h, kfree(), tcf_police::next, qdisc_kill_estimator(), qdisc_put_rtab(), and tcf_police_hash().

Referenced by tcf_police_release().

Here is the call graph for this function:

static __inline__ unsigned tcf_police_hash u32  index  )  [static]
 

Definition at line 42 of file police.c.

Referenced by tcf_police_destroy(), tcf_police_locate(), and tcf_police_lookup().

struct tcf_police* tcf_police_locate struct rtattr rta,
struct rtattr est
 

Definition at line 91 of file police.c.

References tc_police::action, tc_police::burst, failure, h, tc_police::index, kfree(), kmalloc(), L2T_P, memset, tc_police::mtu, NULL, p, parm, tc_police::peakrate, PSCHED_GET_TIME, qdisc_get_rtab(), qdisc_new_estimator(), qdisc_put_rtab(), tc_ratespec::rate, tc_police::rate, tcf_police::refcnt, RTA_DATA, RTA_PAYLOAD, rtattr_parse(), TCA_POLICE_AVRATE, TCA_POLICE_MAX, TCA_POLICE_PEAKRATE, TCA_POLICE_RATE, TCA_POLICE_RESULT, TCA_POLICE_TBF, tcf_police_hash(), tcf_police_lookup(), tcf_police_new_index(), and u32.

Referenced by fw_change(), route4_change(), rsvp_change(), and u32_set_parms().

Here is the call graph for this function:

static __inline__ struct tcf_police* tcf_police_lookup u32  index  )  [static]
 

Definition at line 47 of file police.c.

References tcf_police::index, tcf_police::next, NULL, p, and tcf_police_hash().

Referenced by tcf_police_locate(), and tcf_police_new_index().

Here is the call graph for this function:

static __inline__ u32 tcf_police_new_index void   )  [static]
 

Definition at line 58 of file police.c.

References idx_gen, and tcf_police_lookup().

Referenced by tcf_police_locate().

Here is the call graph for this function:


Variable Documentation

u32 idx_gen [static]
 

Definition at line 39 of file police.c.

Referenced by tcf_police_new_index().

struct tcf_police* tcf_police_ht[16] [static]
 

Definition at line 40 of file police.c.