Date: Thu, 29 Apr 1999 14:58:31 -0500 (CDT) From: Mike Spengler <mks@networkcs.com> To: pauls@ieng.com (Paul Southworth) Cc: freebsd-atm@FreeBSD.ORG Subject: Re: FreeBSD 3.0 ATM - more logical interfaces? Message-ID: <199904291958.OAA69199@us.networkcs.com> In-Reply-To: <Pine.IENG.4.02.9904291351560.6430-100000@home.ieng.com> from Paul Southworth at "Apr 29, 99 02:00:42 pm"
next in thread | previous in thread | raw e-mail | index | archive | help
Paul Southworth said:
>
> I would like to have more than 32 logical network interfaces associated
> with a single physical ATM device. 'atm set netif ...' appears to max at
> 32. Let's say I wanted a thousand network interfaces - I guess I have two
> questions: (a) where are all the places that need to be changed, and (b)
> am I going to break anything? The second question is the one that I'd
> really like to beg for an answer to.
>
> I am running 3.0-RELEASE on i386 with an ENI PCI OC3 card.
>
> [I realize the idea of hundreds of network interfaces may sound stupid -
> the purpose is "let's pretend a huge router to test absurdly large scaling
> of routing protocols".]
>
Well, I can get you up to 256 network interfaces pretty easily with a couple
of small patches. The first patch is for the atm command and is already
in FreeBSD 3.1. The second will require a kernel recompile and is a fix
that I will commit to the current/stable code.
Index: atm.h
===================================================================
RCS file: /home/ncvs/src/sbin/atm/atm/atm.h,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- atm.h 1998/09/15 08:22:45 1.1
+++ atm.h 1999/01/20 18:36:58 1.2
@@ -23,7 +23,7 @@
* Copies of this Software may be made, however, the above copyright
* notice must be reproduced on all copies.
*
- * @(#) $Id: atm.h,v 1.1 1998/09/15 08:22:45 phk Exp $
+ * @(#) $Id: atm.h,v 1.2 1999/01/20 18:36:58 mks Exp $
*
*/
@@ -35,7 +35,7 @@
*
*/
-#define MAX_NIFS 32 /* Max network interfaces */
+#define MAX_NIFS 256 /* Max network interfaces */
#define MIN_VCI 32 /* Smallest non-reserved VCI */
#ifndef TRUE
Index: eni_globals.c
===================================================================
RCS file: /home/ncvs/src/sys/dev/hea/eni_globals.c,v
retrieving revision 1.2
diff -u -r1.2 eni_globals.c
--- eni_globals.c 1998/10/31 20:06:45 1.2
+++ eni_globals.c 1999/04/29 19:46:26
@@ -90,7 +90,7 @@
"eni nif pool", /* si_name */
sizeof(struct atm_nif), /* si_blksiz */
5, /* si_blkcnt */
- 20 /* si_maxallow */
+ 52 /* si_maxallow */
};
struct sp_info eni_vcc_pool = {
As for going over 256 interfaces, this may be somewhat more problematical.
The 256 limit is mostly for UNI interfaces - each interface needs to have a
unique ATM address and we use the NSAP selector byte (8 bits) to differentiate
each logical interface on a physical interface. There are other ways we
could do this, but that would require a little more thinking/effort. If you
just want to use only PVCs, it would be pretty easy to bump the 256 limit -
we'd just need to bump a few resource limiters in the code. One other thing
to consider is the maximum number of VCCs active at any instant. The NIC
cards all have data structures on-card for VCC segmentation/reassembly queues -
there would need to be some tweaking with this too.
Let me know if you want to talk more about this.
--
Mike Spengler Network Computing Services, Inc.
Email: mks@networkcs.com 1200 Washington Ave. So.
Phone: +1 612 337 3557 Minneapolis MN 55415
FAX: +1 612 337 3400 (aka Minnesota Supercomputer Center)
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-atm" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199904291958.OAA69199>
