[vortex] 3c905C: Packet losses (a more precise description)

Andrew Morton andrewm@uow.edu.au
Thu, 06 Jul 2000 01:13:05 +1000


Giuseppe Ciaccio wrote:
> 
> On Thu, 6 Jul 2000, Andrew Morton wrote:
> 
> > > Driver responsibility ?!?  I was pretty sure 802.3x STOP-GO packets
> > > were hardware-managed.  I'm sure it is so with the Alteon AceNIC
> > > Gigabit Eth card, and thought it was the same with all other 802.3x-capable
> > > devices.
> >
> > That's my understanding.  The 3c905C will recognise and act upon
> > incoming PAUSE frames if programmed to do so.
> 
> OK but it will do this in hardware; the driver is not involved at all.
> The only driver's responsibility is to enable/disable the feature.

Correct.  For incoming pause frames.

> > But it won't generate
> > outgoing ones in hardware (pretty sure of this).
> 
> You are right.
> 
> So, flow ctl never runs when using a crossover cable (because none of the
> connected devices can generate PAUSE packets), and everything is fine.
> 
> Instead, flow ctl can actually run if a 802.3x switch is used (since it can
> generate PAUSE packets), provided that the NICs advertise the feature
> (otherwise the switch would not enable flow ctl).  Troubles can arise
> if the NIC advertises flow ctl but does not act properly upon receiving
> PAUSE pkts.

Possibly.  I think this would be pretty strange though.  If the switch
had different algorithms for handling pause-capable stations then you
may see odd behaviour if the station was being misleading.

> You said the patch you sent me before is for enabling the NIC flow ctl.
> Does it mean the 3c905C advertises flow ctl even if not enabled (like my
> switch does indeed)?

It would appear so.  There's a register with which the driver can
control which capabilities are advertised to the switch.  The 'advertise
PAUSE' bit is "always on" which implies that the NIC always advertises
the PAUSE capability.