[ixp1200] excessive collisions on 10 Mbit/s ethernet with BridalVeil
Card
Colin Flanagan
colin.flanagan at ul.ie
Wed Jul 23 04:40:22 EDT 2003
Hello,
I am working with the IXP1200 book by Johnson & Kunze, and am trying to
get the "single thread receive" code from chapter 5 to work successfully
on the BridalVeil board. To this end I have written my own drivers for
the octal MAC and have modified ue.o to reflect the 64-bit
bi-directional IX bus.
I can get everything to work and have the IXP1200 receiving packets
successfully from a Smartbits over a 10Mbit/s simplex Ethernet link.
However, I get excessive collisions on the link, these can range from
0.14 collisions per packet sent to 1.2 collisions per packet sent. This
seems like very unusual behaviour. I wonder if anyone else has seen
anything like this?
Interestingly, the rate of collisions on the link seems to be related
quite sensitively to the program running on the ready bus sequencer.
With 12 RxRdy MAC0 instructions running on the RBS, there are no
collisions at all. With a single RxRdy MAC0 followed by 11 NOP1
instructions, the rate of collisions per packet sent is 0.14. With
alternating RxRdy MAC0 / TxRdy MAC0 pairs (repeated 6 times), I get 1.2
collisions per packet transmitted from the Smartbits. With 11 RxRdy
MAC0 instructions and a single TxRdy MAC0 instruction, the rate is 0.7
collisions per packet transmitted from the Smartbits. In all cases the
RDYBUS_SYNCH_COUNT_DEFAULT register is set to 0. The IX bus is running
at 66MHz.
I find this quite confusing, surely there should be no need for any
collisions on a link with only one source (the Smartbits)? One thought
that has occurred to me, is the IXF440 applying backpressure to the
link? I can't see how this would happen though, in my understanding
only a Flwctl instruction can cause backpressure to be applied.
Alternatively, is the repetition rate of the ready bus program
significant? All the RBS programs I have tried take 36 cycles, at 66MHz
this should allow an adequate rate of sampling of the status bits.
If anyone else has encountered problems like this, or can give me
pointers to where I might be going wrong, I'd be very grateful to
receive them.
Thanks,
Colin Flanagan
Dept of Electronic & Computer Engineering
University of Limerick
Ireland
PS
FBI setup I am using:
RCV_RDY_CTL = 0
XMIT_RDY_CTL = 0
FLOWCTL_MASK = 0
RDYBUS_SYNCH_COUNT_DEFAULT = 0
RDYBUS_TEMPLATE_CTL = 0xf00
More information about the ixp1200
mailing list