netdev
[Top] [All Lists]

Re: [PATCH] PKT_SCHED: Provide compat policer stats in action policer

To: Thomas Graf <tgraf@xxxxxxx>, Patrick McHardy <kaber@xxxxxxxxx>
Subject: Re: [PATCH] PKT_SCHED: Provide compat policer stats in action policer
From: jamal <hadi@xxxxxxxxxx>
Date: 15 Dec 2004 09:09:34 -0500
Cc: "David S. Miller" <davem@xxxxxxxxxxxxx>, netdev@xxxxxxxxxxx
In-reply-to: <20041215130128.GK8493@xxxxxxxxxxxxxx>
Organization: jamalopolous
References: <20041215130128.GK8493@xxxxxxxxxxxxxx>
Reply-to: hadi@xxxxxxxxxx
Sender: netdev-bounce@xxxxxxxxxxx
Hopefully this makes my point to Patrick earlier about regression
testing? ;-> Good effort Thomas.

cheers,
jamal

On Wed, 2004-12-15 at 08:01, Thomas Graf wrote:
> Dave,
> 
> This should go in before 2.6.10. It fixes a forgotten case to provide
> police backward compatibility statistics for old iproute2 versions
> running on a new kernel with actions enabled. Should make distributions
> happy with older iproute2 versions and all-included kernel configs
> since they probably favour actions over plain policer.
> 
> Testing results:
>   iproute2-2.4.7 on 2.6.10-rc3-bk8:
>   cls-police: police creation succeeded
>   cls-police: Sending 10 ICMP echo requests
>   cls-police: police dumping succeeded with output:
>   filter protocol ip pref 10 u32 
>   filter protocol ip pref 10 u32 fh 800: ht divisor 1 
>   filter protocol ip pref 10 u32 fh 800::800 order 2048 key ht 800 bkt 0 
> flowid 10:12 
>   police 3 action drop rate 2Kbit burst 10Kb mtu 2Kb 
>     match 00010000/00ff0000 at 8
>    Sent 420 bytes 10 pkts (dropped 0, overlimits 0)  <-- This would have been 
> missing
>   cls-police: police deletion succeeded
> 
>  iproute2-2.6.9 on 2.6.10-rc3-bk8:
>  ...
>   filter protocol ip pref 10 u32 
>   filter protocol ip pref 10 u32 fh 800: ht divisor 1 
>   filter protocol ip pref 10 u32 fh 800::800 order 2048 key ht 800 bkt 0 
> flowid 10:12  (rule hit 10 success 10)
>     match 00010000/00ff0000 at 8 (success 10 ) 
>    police 0x4 rate 2000bit burst 10Kb mtu 2Kb action drop 
>   ref 1 bind 1
>    Sent 420 bytes 10 pkts (dropped 0, overlimits 0) 
>  ...
> 
>  (Same results for fw classifier)
> 
> Signed-off-by: Thomas Graf <tgraf@xxxxxxx>
> 
> --- linux-2.6.10-rc3-bk7.orig/net/sched/act_api.c     2004-12-14 
> 14:24:34.000000000 +0100
> +++ linux-2.6.10-rc3-bk7/net/sched/act_api.c  2004-12-14 16:15:13.000000000 
> +0100
> @@ -418,6 +418,7 @@
>  
>  int tcf_action_copy_stats (struct sk_buff *skb,struct tc_action *a)
>  {
> +     int err;
>       struct gnet_dump d;
>       struct tcf_act_hdr *h = a->priv;
>       
> @@ -428,7 +429,14 @@
>       if (NULL == h)
>               goto errout;
>  
> -     if (gnet_stats_start_copy(skb, TCA_ACT_STATS, h->stats_lock, &d) < 0)
> +     if (a->type == TCA_OLD_COMPAT)
> +             err = gnet_stats_start_copy_compat(skb, TCA_ACT_STATS,
> +                     TCA_STATS, TCA_XSTATS, h->stats_lock, &d);
> +     else
> +             err = gnet_stats_start_copy(skb, TCA_ACT_STATS,
> +                     h->stats_lock, &d);
> +
> +     if (err < 0)
>               goto errout;
>  
>       if (NULL != a->ops && NULL != a->ops->get_stats)
> 
> 


<Prev in Thread] Current Thread [Next in Thread>