Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 19 Sep 1996 15:29:21 -0400
From:      dennis@etinc.com (Dennis)
To:        Joe Greco <jgreco@brasil.moneng.mei.com>
Cc:        hackers@freebsd.org
Subject:   Re: Routers - hardware received wisdom
Message-ID:  <199609191929.PAA13911@etinc.com>

next in thread | raw e-mail | index | archive | help
Joe writes....

>What I am saying is that at some point, you can probably saturate the host 
>CPU.  UNLESS the host CPU is powerful enough to deal with the worst case
>scenario in the first place...  Come on Dennis, you _know_ this as well as
>I do.
>
>> at 5us per character, you've got 200us to pull off a 40byte packet. Thats
your
>> limit on the board. You've got a 32K buffer to protect against cpu
>> contention, which
>> is plenty.
>
>Bullshit.  Pure bullshit.  This rate is almost irrelevant to this
>discussion, as long as it is large enough to support saturation at the
>desired speed.  I can't believe you do not understand this concept, 
>but I will draw it out for you.
>
>Let us pretend for the sake of argument that it takes 1ms for the host
>CPU to route and dispose of a packet.  This is known as "overhead". 
>
>Now for large packets (lets say 1000 bytes), you have 5000us (5ms) to
>pull off the 1000 byte packet.  You also have the 1000us (1ms) packet
>overhead.  HOWEVER - I will grant that in the most ideal circumstances,
>the two can be overlapped thanks to DMA transfers, and therefore
>packet reception becomes max(5000us, 1000us) = 5000us.  At that rate,
>I believe that I can receive 200 packets per second.  I hope we can
>agree on that!  Because it is derived purely from your 5us figure.
>
>Now, given a much smaller packet..  let's use your 40 byte packet.
>You have 200us to pull off the 40 byte packet.  You also have
>the 1000us (1ms) packet processing overhead.  Packet reception time
>is max(200us, 1000us) = 1000us.  At that rate, I believe that I can
>receive 1000 packets per second.

Well, interfaces just queue packets for the OS, so if  you do your queue
management properly, you discard packets based on age, and if you have
enough memory to hold your bandwidth * hold_time you wont dump anything
that shouldnt be dumped. However, what you're talking about is not real data...
you can bring a Cisco 4500 to its knees with about 512kbs of data under
attack, so the 4000 pps number ain't half bad!

Dennis





Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199609191929.PAA13911>