Date: Fri, 19 Nov 1999 14:21:25 +1000 From: George Michaelson <ggm@dstc.edu.au> To: "Kees Verstoep" <versto@cs.vu.nl> Cc: freebsd-atm@FreeBSD.ORG Subject: Re: Bandwidth Capping fore ATM circuits? Message-ID: <6046.942985285@dstc.edu.au> In-Reply-To: Your message of "Wed, 17 Nov 1999 10:37:45 %2B0100." <9911171037.ZM24889@cs.vu.nl>
next in thread | previous in thread | raw e-mail | index | archive | help
This is what I think you said :-) /sys/dev/hfa/fore_output.c: /* * don't do this... */ #ifdef GGM xdp->xd_rate = FORE_DEF_RATE; #else /* * given target max_pcr of 74460 I have to work out * the rate, where rate is the fusion of data and idle as 16-bit fields * joined in a 32. * * Linux does this: * *fore200e_rate_ctrl(struct atm_qos* qos, struct tpd_rate* rate) *{ * if (qos->txtp.max_pcr < ATM_OC3_PCR) { * * compute the data cells to idle cells ratio from the PCR * rate->data_cells = * qos->txtp.max_pcr * FORE200E_MAX_BACK2BACK_CELLS / * ATM_OC3_PCR; * rate->idle_cells = FORE200E_MAX_BACK2BACK_CELLS - * rate->data_cells; * } * else { * disable rate control * rate->data_cells = rate->idle_cells = 0; * } *} * * typedef struct tpd_rate * { * BITFIELD2( * u32 idle_cells : 16, number of idle cells to insert * u32 data_cells : 16 number of data cells to transmit * ) * } tpd_rate_t; * * values found for the #defines from Linux are: * * #define FORE200E_MAX_BACK2BACK_CELLS 255 * * and from atm_h for FreeBSD I get: * * #define ATM_PCR_OC3C 353207 Peak Cell Rate for OC3c * * so I used BC to calculate the date_cells and idle_cells values * as (74460*255/353207)=53 and (255-53)=202 respectively. * on a PC, this becomes a u_long value of 3473610 */ xdp->xd_rate = 3473610; #endif -- George Michaelson | DSTC Pty Ltd Email: ggm@dstc.edu.au | University of Qld 4072 Phone: +61 7 3365 4310 | Australia Fax: +61 7 3365 4311 | http://www.dstc.edu.au 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?6046.942985285>