TCP-group 1992
[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
Problem in pi-card driver (+ fix!)
- To: tcp-group@ucsd.edu
- Subject: Problem in pi-card driver (+ fix!)
- From: geertj@ica.philips.nl (Geert Jan de Groot)
- Date: Tue, 28 Jan 92 14:18:07 +0100
I found (and fixed) a small problem in the PI-card driver built in in NOS.
At this moment, I'm using port B of the PI-card (which behaves just like
a normal SCC-port; it's the A-side that's special).
Unfortunately, I still need to use the built-in driver because the PI
packet driver doesn't support port B (yet?). I'm using port B for a
HAPN modem to the local IP node PI8EHV.
The symptom of the problem is that when a packet is sent which has a
byte in it with the value 0xff, that byte (and the bytes after that
which belong to the same packet) are not transmitted, i.e. the packet
is chopped off at that point. HDLC CRC is, as one might expect, OK.
Finding what was going on was more than half of the effort: trace
shows packets unaffected, but other stations drop these incomplete
packets and cause your TCP connections to die.
The fix is simple:
----------------
OLD:
b_txint(hp)
register struct pichan *hp;
{
register int16 cmd;
char i_state,c;
[some code..]
case ACTIVE:
/* Here we are actively sending a frame */
if((c = PULLCHAR(&hp->sndbuf)) != -1){
/* next char is gone */
----------------
NEW:
b_txint(hp)
register struct pichan *hp;
{
register int16 cmd;
char i_state;
int c; <------------------------------------
[some code..]
case ACTIVE:
/* Here we are actively sending a frame */
if((c = PULLCHAR(&hp->sndbuf)) != -1){
/* next char is gone */
The PI card now seems to work OK. Has anybody else found another improvement?
Does anybody have a PI-card packet driver that does support port B?
73, Geert Jan PE1HZG
Geert Jan de Groot, Philips CE-ADC, Building SFJ-2,
P.O. box 80002, 5600 JB Eindhoven, The Netherlands.
Email: geertj@ica.philips.nl or ..!sun4nl!philica!geertj
Phone: +31 40 797408 FAX: +31 40 732340