All of lore.kernel.org
 help / color / mirror / Atom feed
From: Martin Volf <mv@inv.cz>
To: lartc@vger.kernel.org
Subject: Re: [LARTC] use 3rd octet as hashkey
Date: Mon, 24 Nov 2003 18:07:42 +0000	[thread overview]
Message-ID: <marc-lartc-106969774615956@msgid-missing> (raw)
In-Reply-To: <marc-lartc-106964777500955@msgid-missing>

On Mon, 24 Nov 2003 09:52:30 +0530
"Venkatesh. K" <venkatesh@cbayscribe.com> wrote:

> Hi,
> 
> I want to use 3rd octet in the ip address for creating hashng filters?
> 
> How do I do it?

Hi,

what about this (two level hashing with the 3rd and the 4th octet):


FILTER_ADD="/sbin/tc filter add dev imq0 parent 1:0 protocol ip"

# 1st level - 3rd octet (mask 0x0000ff00)
$FILTER_ADD handle 2: u32 divisor 256
$FILTER_ADD u32 ht 800:: match ip dst 0/0 \
	hashkey mask 0x0000ff00 at 16 link 2:

# 2nd level - 4th octet (mask 0x000000ff)
for i in $(seq 0 255); do
	n=$(printf "%x" $i)
	$FILTER_ADD handle $n: u32 divisor 256
	$FILTER_ADD u32 ht 2:$n match ip dst 0/0 \
		hashkey mask 0x000000ff at 16 link $n:
done

# hexa 10.11.12.13 -> c:d
hexa()
{
	local IFS='.'
	set $1
	printf "%x:%x" $3 $4
}

# example: put 10.11.12.13 into the class 1:42
ip\x10.11.12.13
$FILTER_ADD u32 ht $(hexa $ip) match ip dst $ip flowid 1:42


Something like that is working for me for about half a year. If you need "match ip src", use "at 12" instead of "at 16".

HTH

-- 
Martin Volf
_______________________________________________
LARTC mailing list / LARTC@mailman.ds9a.nl
http://mailman.ds9a.nl/mailman/listinfo/lartc HOWTO: http://lartc.org/

  reply	other threads:[~2003-11-24 18:07 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-11-24  4:34 [LARTC] use 3rd octet as hashkey Venkatesh. K
2003-11-24 18:07 ` Martin Volf [this message]
2003-11-25  9:27 ` Venkatesh. K

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=marc-lartc-106969774615956@msgid-missing \
    --to=mv@inv.cz \
    --cc=lartc@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.