netdev
[Top] [All Lists]

Re: [RFC] High Performance Packet Classifiction for tc framework

To: "David S. Miller" <davem@xxxxxxxxxx>
Subject: Re: [RFC] High Performance Packet Classifiction for tc framework
From: Michael Bellion and Thomas Heinz <nf@xxxxxxxxx>
Date: Tue, 12 Aug 2003 16:56:33 +0200
Cc: hadi@xxxxxxxxxx, linux-net@xxxxxxxxxxxxxxx, netdev@xxxxxxxxxxx
In-reply-to: <20030811224050.59bc36fe.davem@redhat.com>
References: <200307141045.40999.nf@hipac.org> <1058328537.1797.24.camel@jzny.localdomain> <3F16A0E5.1080007@hipac.org> <1059934468.1103.41.camel@jzny.localdomain> <3F2E5CD6.4030500@hipac.org> <1060012260.1103.380.camel@jzny.localdomain> <3F302E04.1090503@hipac.org> <1060286331.1025.73.camel@jzny.localdomain> <3F381B3E.6080807@hipac.org> <20030811224050.59bc36fe.davem@redhat.com>
Sender: netdev-bounce@xxxxxxxxxxx
User-agent: Mozilla/5.0 (X11; U; Linux i686; de-AT; rv:1.4) Gecko/20030714 Debian/1.4-2
Hi David

You wrote:
The ipv4 FIB hash tables tackle exactly this problem.  The resulting
worse cast complexity is O(n_bits_in_prefix_mask).

The problem you've described is exactly the same as trying to use
hashing for routing tables.

Yes, that's true for the 1-dimensional case. You refer to the following algorithm, don't you?

   min_prio := infinity
   match_rule := nil
   for all list_entries e: { // at most w+1 entries where w is the bit
                             // width of the keys
       rule = lookup(hash(e), packet)  // let's assume O(1) here
       if (prio(rule) < min_prio) {
                min_prio = prio(rule)
                match_rule = rule
       }
   }
   return match_rule

This algorithm has running time O(w).
[In fact it's O(number of different prefix lengths) which is O(w)
 in the worst case.]

But what about the d-dimensional case? If you extend this
approach to handle rules with d prefix based matches you end
up in a running time of:  O(w^d)
                         (assuming w to be the max. bit width)

This is definitely not desirable.


Regards,

+-----------------------+----------------------+
|   Michael Bellion     |     Thomas Heinz     |
| <mbellion@xxxxxxxxx>  |  <creatix@xxxxxxxxx> |
+-----------------------+----------------------+
|    High Performance Packet Classification    |
|       nf-hipac: http://www.hipac.org/        |
+----------------------------------------------+

Attachment: pgpx3ehBMPGAJ.pgp
Description: PGP signature

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