From owner-freebsd-atm Thu Apr 29 12:58:42 1999 Delivered-To: freebsd-atm@freebsd.org Received: from marcos.networkcs.com (marcos.networkcs.com [137.66.16.1]) by hub.freebsd.org (Postfix) with ESMTP id B6D3E15152 for ; Thu, 29 Apr 1999 12:58:34 -0700 (PDT) (envelope-from mks@us.networkcs.com) Received: from us.networkcs.com (us.networkcs.com [137.66.11.15]) by marcos.networkcs.com (8.9.0.Beta5/8.9.0.Beta5) with ESMTP id OAA20620; Thu, 29 Apr 1999 14:58:32 -0500 (CDT) Received: (from mks@localhost) by us.networkcs.com (8.9.2/8.8.7) id OAA69199; Thu, 29 Apr 1999 14:58:31 -0500 (CDT) From: Mike Spengler Message-Id: <199904291958.OAA69199@us.networkcs.com> Subject: Re: FreeBSD 3.0 ATM - more logical interfaces? In-Reply-To: from Paul Southworth at "Apr 29, 99 02:00:42 pm" To: pauls@ieng.com (Paul Southworth) Date: Thu, 29 Apr 1999 14:58:31 -0500 (CDT) Cc: freebsd-atm@FreeBSD.ORG X-Mailer: ELM [version 2.4ME+ PL32 (25)] MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: owner-freebsd-atm@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.org 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