From owner-freebsd-atm Wed Apr 4 9:39: 8 2001 Delivered-To: freebsd-atm@freebsd.org Received: from mail.matriplex.com (ns1.matriplex.com [208.131.42.8]) by hub.freebsd.org (Postfix) with ESMTP id 88DC337B725 for ; Wed, 4 Apr 2001 09:38:58 -0700 (PDT) (envelope-from rh@matriplex.com) Received: from mail.matriplex.com (mail.matriplex.com [208.131.42.9]) by mail.matriplex.com (8.9.2/8.9.2) with ESMTP id JAA42984; Wed, 4 Apr 2001 09:38:35 -0700 (PDT) (envelope-from rh@matriplex.com) Date: Wed, 4 Apr 2001 09:38:35 -0700 (PDT) From: Richard Hodges To: Alex Huppenthal Cc: freebsd-atm@FreeBSD.ORG Subject: Re: ATM 4.3 and so on In-Reply-To: <007501c0bcc5$c408bca0$1800a8c0@d7k> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-freebsd-atm@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.org On Tue, 3 Apr 2001, Alex Huppenthal wrote: > some may have seen my postings on Freebsd-isp, but I think they are more > appropriate here. > > I'm running a 4.2 FreeBSD machine with Fore PCA200E installed. > > After some week on and off struggling to understand ATM and also FreeBSD's > HARP stack, I finally have an ATM network connection running. Good job. Now the fun part starts. > After learning that FreeBSD HARP stack doesn't pace outbound cells, we > designed an alternative solution. Actually, the rate control is done in the driver. As it turns out, the hfa driver does not even look at the VC traffic info... > Our FreeBSD system is attached to a Lucent PSAX at OC3 speeds. The PSAX ATM > switch talks to the ATM cloud via a DS3. Packets from the BSD system egress > at 135 mbits per second, and the ATM cloud starts discarding them after the > first 190 bytes or so.. about 4 cells. Yep, this will happen when you burst cells over the maximum rate. Would it help if you could put a cap on the cell rate for each PVC? If so, there is probably an easy way to do this at the driver level. If you care to look at fore_output.c you will see the line: xdp->xd_rate = FORE_DEF_RATE; This is where the driver inserts the "Rate Control Information" into the transmit PDU descriptor. In fore.h, you will see FORE_DEF_RATE defined as zero (meaning no rate control). You can change this to other values to specify different cell rates. Here are some sample values: #define FORE_RATE(h,l) htonl((h << 16) | (l)) #define FORE_DEF_RATE FORE_RATE(184,71) /* 223215 cells/s = 94.6 mb/s */ #define FORE_DEF_RATE FORE_RATE(127,128) /* 156250 cells/s = 66.3 mb/s */ #define FORE_DEF_RATE FORE_RATE(76,179) /* 94697 cells/s = 40.2 mb/s */ #define FORE_DEF_RATE FORE_RATE(21,234) /* 26261 cells/s = 11.1 mb/s */ #define FORE_DEF_RATE FORE_RATE(2,253) /* 2509 cells/s = 1.1 mb/s */ The third would be suitable for filling a DS3 (96000 cells/s), and the fourth could carry 10 mb/s of user data. Keep in mind that this is per VC, so if you have many going at once, you may still exceed your cell rate. I believe that the Fore card expects this rate info in network byte order, but if not, just remove the "htonl()" from the macro. There are many more possible values; let me know if you want the rest. And I haven't tested this myself, so if you give it a try, please let us all know how it works :-) All the best, -Richard ------------------------------------------- Richard Hodges | Matriplex, inc. Product Manager | 769 Basque Way rh@matriplex.com | Carson City, NV 89706 775-886-6477 | www.matriplex.com To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-atm" in the body of the message