lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Wed, 28 May 2014 07:54:36 -0400
From:	sowmini varadhan <sowmini05@...il.com>
To:	Jamal Hadi Salim <jhs@...atatu.com>
Cc:	Eric Dumazet <eric.dumazet@...il.com>,
	Niels Möller <nisse@...thpole.se>,
	netdev <netdev@...r.kernel.org>, Jonas Bonn <jonas@...thpole.se>
Subject: Re: Scaling 'ip addr add' (was Re: What's the right way to use a
 *large* number of source addresses?)

On Wed, May 28, 2014 at 7:23 AM, Jamal Hadi Salim <jhs@...atatu.com> wrote:


>
> Did you try the scenario where you add many IP addresses to the same
> interface? Try to do a listing of the ip addresses then, should be
> fun.

I did. Here, you try it too :-) attached below is the script I got from Niels.

And yes, while it is "fun" to do "ip addr show dev $IF|grep '\<inet\>'|wc -l",
I think Niels is first trying to scale the address-addition itself first

BTW, I'm not sure it's O(n^2) - we dont have enough data points from
the script below to establish that. Once you optimize fib_sync_up,
I suspect it scales as K * n, where N > 1. FWIW, doing the quick+dirty
thing of just commenting out fib_sync_up as an experiment *halves* the
wallclock time.

$ cat nils.sh
#!/bin/sh
#
# From nisse@...thpole.se (Niels Moller)
#  I used the below script. Run, e.g, with arguments
#  eth0 100 add
# to assign 100*255 addresses..
# And to get numbers, I just ran it with time(1).


if [ $# -lt 2 ] ; then
   echo Too few arguments
   exit 1
fi

IF=$1
CNT=$2
if [ $# -gt 2 ] ; then
    CMD=$3
else
    CMD=del
fi

echo "IF $IF CNT $CNT CMD $CMD"

for x in `seq 1 $CNT` ; do
    echo 10.200.$x.x
    for y in `seq 1 255` ; do
        addr="10.200.$x.$y"
        ip address "$CMD" "$addr"/32 dev "$IF"  || echo FAIL: $addr
    done
done
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Powered by blists - more mailing lists