From owner-freebsd-atm Sat Jun 29 12:10:27 2002 Delivered-To: freebsd-atm@freebsd.org Received: from mx1.FreeBSD.org (mx1.FreeBSD.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 9E20837B405 for ; Sat, 29 Jun 2002 12:10:13 -0700 (PDT) Received: from mail.matriplex.com (ns1.matriplex.com [208.131.42.8]) by mx1.FreeBSD.org (Postfix) with ESMTP id 0FFD043E09 for ; Sat, 29 Jun 2002 12:10:13 -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 MAA47928; Sat, 29 Jun 2002 12:09:57 -0700 (PDT) (envelope-from rh@matriplex.com) Date: Sat, 29 Jun 2002 12:09:57 -0700 (PDT) From: Richard Hodges To: Vincent Jardin Cc: freebsd-atm@FreeBSD.ORG Subject: Re: VBR support In-Reply-To: <20020629085300.83F2315039F@venus.vincentjardin.net> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-freebsd-atm@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.org On Sat, 29 Jun 2002, Vincent Jardin wrote: > What are the limits of the VBR support of these LE and IDT boards ? The IDT 77211 chip is the heart of all the Fore LE155 and LE25 boards, most of the IDT boards, and some other ATM cards (like "Lightning"). This 77211 chip works with a set of cell time-slots. Each time slot is one cell. A time slot can be a CBR cell, a VBR cell, or unused. In my driver, an OC3 interface has exactly 2075 slots, and each slot is 64000 bits per second (actually it is 64003), so it is convenient to set up a CBR circuit in multiples of 64000b/s. (Think voice circuits :-) For VBR, there is not as much flexibility. The chip has 3 VBR channels. The driver uses one of these VBR channels for VBR traffic. One is unused, and the last is used for high-priority UBR traffic. For instance, 0/5 and 0/16 are given higher priority than ordinary UBR. It is easy to add others if you want (for instance, 0/18 for PNNI). The hardware uses a divisor m/n to send VBR PDUs out the interface. All VBR connections use the same queue, so m/n is the sum of all the VBR connections. And all VBR traffic is first-in, first-out. So your VBR sockets need to behave properly. Also, your m/n divisor must be in the range [1-7] / [1-127] so some VBR rates are only aproximate. If you can afford to waste cell slots, you might think about setting up your VBR circuits as CBR. The hardware and device driver will enforce the maximum cell rate and cell spacing. And your application should then do some kind of crude flow control so that the VBR average stays right. I added the sysctl "hw.idt.vbr_is_cbr" just for this purpose :-) You might find the other sysctl variables helpful. > Thanks for the driver, it is very well written. > Vincent I hope you find it useful. Best of luck! -Richard To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-atm" in the body of the message