Subject: Re: [PATCH 5/6] htb: use hlist for hash lists.

From: Jarek Poplawski <[email-masked]>
Date: Thu, 3 Aug 2006 11:34:44 +0200

On 03-08-2006 00:03, Stephen Hemminger wrote:
...

Hi,

By the way, isn't htb supposed to recognize here ids 
got like this: tc filter add ... classid 0:1 
Some qdisc like prio do this and it is mentioned in
sch_api.c which is passing this without error code:

> @@ -220,12 +220,13 @@ #endif
>  static inline struct htb_class *htb_find(u32 handle, struct Qdisc *sch)
>  {
>  	struct htb_sched *q = qdisc_priv(sch);
> -	struct list_head *p;
> +	struct hlist_node *p;
> +	struct htb_class *cl;
> +
>  	if (TC_H_MAJ(handle) != sch->handle)
>  		return NULL;

I've tried this for example:

-	if (TC_H_MAJ(handle) != sch->handle) 
+	if (TC_H_MAJ(handle) == 0) /* 0:Y class is X:Y, where X:0 is qdisc */
+		handle += sch->handle;
+	else if (TC_H_MAJ(handle) != sch->handle)
 		return NULL;
 	
On the other hand I don't understand why it should be good
if there could be the real priority(from tos) only by accident
equal to the classid?

Jarek P.