MHonArc test archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Hardware shaping

> Hi,
> as far as I know, the PCA200E performs hardware shaping by inserting 
> "idle" cells in the output cell stream, which is always transmitted at 
> 155 Mbps (i.e., if you want to transmit cells at 100 Mbps, the NIC will 
> [SNIP]

That has nothing to do with the PCA200E card. Every ATM link inserts 
idle cells when it has nothing else to send in order to maintain cell 
synchronization. Idle cell insertion is the function of the physical 
layer, not the ATM layer. 

Traffic shaping is the ATM layer function and is done in firware 
inside the PCA200 card by reading the transmit buffer at certain pace 
(i.e. read X cells and then pause for Y cells). This is done by the 
firmware inside the card (there is i960 embedded processor on NIC) and 
controlled by the driver (i.e. host).

The traffic shaping can be done per-stream (i.e. set up individually for 
each VC). Older versions of the driver didn't support this. To check if 
your PCA200 driver supports traffic shaping open the pca200e.c (driver's 
source code) file and search for the following function:

static int
pca200e_send(struct atm_vcc *vcc, struct sk_buff *skb)

If few lines down in the code you find something like this:

  tpd->rc_stream_desc.data_cells = 0x0000;
  tpd->rc_stream_desc.empty_cells = 0x0000;

then your driver does NOT support the traffic shaping and you need the 
newer version (which is BTW written for the 2.1.x kernels, so you will 
need to upgrade your kernel as well). If you take a look at the source 
code of the newer version, you will see that these structures are 
manipulated using some data from the connection descriptor.

Also I believe that you will need the latest firmware for your Fore card. 
I tried to play with the traffic shaping and it didn't work on some older 
Fore PCA200 cards. I am assuming that the old firmware didn't support it. 
I didn't try, but I think that new firmware should be able to do the 
shaping (at least that's what the documentaion says).



Home | Main Index | Thread Index