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>