Switching packets from netif_rx()

From: Madhavi
Date: Wed Nov 19 2003 - 08:47:01 EST



Hi

I am implementing a soft switch that can switch packets received on an
interface over certain outgoing interfaces.

The setup is -

+-----------+ +------------+ +------+
| Streamer |-----------| Switch |----------| Host |
+-----------+ +------------+ +------+

The switching functionality is implemented in function netif_rx(). Based
on the list of outgoing interfaces, I am doing the following things.

* Cloning the packets.
* Obtaining outgoing device from outgoing interface index.
* Calling dev_queue_xmit() to send the packet on outgoing device.


I am having the following is PROBLEM with this:
~~~~~~~
When streamer sends a continuous flow of packets to switch, the switch is
able to send upto 3500 (approx. - this varies each time) to the host and
afterwards, the switch is hanging.

I tried sending bunches of 100 packets each with 1 second time gap between
bunches, the switch is functioning without interruptions.

- Is there any problem in the way I am implementing the switch? The
"bridge" code seems to be doing the same things.
- Or, is there is some limit on the incoming flow rate the kernel will be
able to handle?

I would be very grateful if someone can help me with this.

Regards
Madhavi.

Madhavi Suram
Software Engineer
Customer Delivery / Networks
Sasken Communication Technologies Limited
139/25, Ring Road, Domlur
Bangalore - 560071 India
Email: madhavis@xxxxxxxxxx
Tel: + 91 80 5355501 Extn: 8062
Fax: + 91 80 5351133
URL: www.sasken.com

************************************************************************

SASKEN BUSINESS DISCLAIMER



This message may contain confidential, proprietary or legally Privileged information. In case you are not the original intended Recipient of the message, you must not, directly or indirectly, use, Disclose, distribute, print, or copy any part of this message and you are requested to delete it and inform the sender. Any views expressed in this message are those of the individual sender unless otherwise stated. Nothing contained in this message shall be construed as an offer or acceptance of any offer by Sasken Communication Technologies Limited ("Sasken") unless sent with that express intent and with due authority of Sasken. Sasken has taken enough precautions to prevent the spread of viruses. However the company accepts no liability for any damage caused by any virus transmitted by this email.

***********************************************************************