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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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@hipac.org>  |  <creatix@hipac.org> |
+-----------------------+----------------------+
|    High Performance Packet Classification    |
|       nf-hipac: http://www.hipac.org/        |
+----------------------------------------------+

Attachment: pgp00080.pgp
Description: PGP signature


[Index of Archives]     [Netdev]     [Ethernet Bridging]     [Linux 802.1Q VLAN]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Git]     [Bugtraq]     [Yosemite News and Information]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux PCI]     [Linux Admin]     [Samba]

  Powered by Linux