| plan 9 kernel history: overview | file list | diff list |
2000/0706/ip/il.c (diff list | history)
| 2000/0424/sys/src/9/ip/il.c:149,160 – 2000/0706/sys/src/9/ip/il.c:149,187 (short | long | prev | next) | ||
| 1998/0306 | uchar ilack[4]; /* Acked sequence */ | |
| 1997/0327 | }; | |
| 2000/0706 | enum { InMsgs, OutMsgs, CsumErrs, /* checksum errors */ HlenErrs, /* header length error */ LenErrs, /* short packet */ OutOfOrder, /* out of order */ Retrans, /* retransmissions */ DupMsg, DupBytes, | |
| 1998/0313 | ||
| 2000/0706 | Nstats, }; static char *statnames[] = { [InMsgs] "InMsgs", [OutMsgs] "OutMsgs", [CsumErrs] "CsumErrs", [HlenErrs] "HlenErr", [LenErrs] "LenErrs", [OutOfOrder] "OutOfOrder", [Retrans] "Retrans", [DupMsg] "DupMsg", [DupBytes] "DupBytes", }; | |
| 1998/0313 | typedef struct Ilpriv Ilpriv; struct Ilpriv | |
| 1997/0916 | { | |
| 2000/0706 | ulong stats[Nstats]; | |
| 1997/0916 | ||
| 1998/0313 |
| |
| 2000/0424/sys/src/9/ip/il.c:289,298 – 2000/0706/sys/src/9/ip/il.c:316,328 | ||
| 1998/0929 | ulong id, ack; | |
| 1997/0327 | Block *bp; | |
| 1998/0313 | Fs *f; | |
| 2000/0706 | Ilpriv *priv; | |
| 1997/0327 | ||
| 2000/0706 | ||
| 1997/0327 | USED(l); | |
| 1998/0313 | f = c->p->f; | |
| 2000/0706 | priv = c->p->priv; | |
| 1997/0327 | ic = (Ilcb*)c->ptcl; bp = qget(c->wq); | |
| 2000/0424/sys/src/9/ip/il.c:355,360 – 2000/0706/sys/src/9/ip/il.c:385,391 | ||
| 1999/0430 | if(later(msec, ic->timeout, nil)) | |
| 1998/0929 | ilsettimeout(ic); | |
| 1999/0817 | ipoput(f, bp, 0, c->ttl, c->tos); | |
| 2000/0706 | priv->stats[OutMsgs]++; | |
| 1997/0327 | } static void | |
| 2000/0424/sys/src/9/ip/il.c:367,383 – 2000/0706/sys/src/9/ip/il.c:398,413 | ||
| 1997/0916 | int | |
| 1998/0313 | ilxstats(Proto *il, char *buf, int len) | |
| 1997/0916 | { | |
| 1998/0306 |
| |
| 1998/0313 |
| |
| 2000/0706 | Ilpriv *priv; char *p, *e; int i; | |
| 1998/0306 | ||
| 1998/0313 |
| |
| 1998/0306 |
| |
| 1998/0825 |
| |
| 1998/0313 |
| |
| 1998/0825 |
| |
| 1998/0313 |
| |
| 1998/0307 |
| |
| 2000/0706 | priv = il->priv; p = buf; e = p+len; for(i = 0; i < Nstats; i++) p = seprint(p, e, "%s: %lud\n", statnames[i], priv->stats[i]); return p - buf; | |
| 1997/0916 | } | |
| 1997/0327 | void | |
| 2000/0424/sys/src/9/ip/il.c:492,498 – 2000/0706/sys/src/9/ip/il.c:522,528 | ||
| 1997/0327 | plen = blocklen(bp); if(plen < IL_IPSIZE+IL_HDRSIZE){ | |
| 1998/0313 | netlog(il->f, Logil, "il: hlenerr\n"); | |
| 2000/0706 | ipriv->stats[HlenErrs]++; | |
| 1997/0327 | goto raise; } | |
| 2000/0424/sys/src/9/ip/il.c:499,505 – 2000/0706/sys/src/9/ip/il.c:529,535 | ||
| 1997/0327 | illen = nhgets(ih->illen); if(illen+IL_IPSIZE > plen){ | |
| 1998/0313 | netlog(il->f, Logil, "il: lenerr\n"); | |
| 2000/0706 | ipriv->stats[LenErrs]++; | |
| 1997/0327 | goto raise; } | |
| 2000/0424/sys/src/9/ip/il.c:512,518 – 2000/0706/sys/src/9/ip/il.c:542,548 | ||
| 1997/0327 | st = "?"; else st = iltype[ih->iltype]; | |
| 1998/0313 |
| |
| 2000/0706 | ipriv->stats[CsumErrs]++; | |
| 1998/0313 | netlog(il->f, Logil, "il: cksum %ux %ux, pkt(%s id %lud ack %lud %I/%d->%d)\n", | |
| 1998/0306 | csum, st, nhgetl(ih->ilid), nhgetl(ih->ilack), raddr, sp, dp); | |
| 1997/0327 | goto raise; | |
| 2000/0424/sys/src/9/ip/il.c:616,621 – 2000/0706/sys/src/9/ip/il.c:646,652 | ||
| 1997/0327 | { Ilcb *ic; ulong id, ack; | |
| 2000/0706 | Ilpriv *priv; | |
| 1997/0327 | id = nhgetl(h->ilid); ack = nhgetl(h->ilack); | |
| 2000/0424/sys/src/9/ip/il.c:624,629 – 2000/0706/sys/src/9/ip/il.c:655,662 | ||
| 1997/0327 | ||
| 1998/0929 | ic->lastrecv = msec; | |
| 1998/1013 | ic->querytime = msec + QueryTime; | |
| 2000/0706 | priv = s->p->priv; priv->stats[InMsgs]++; | |
| 1997/0327 | switch(ic->state) { default: | |
| 2000/0424/sys/src/9/ip/il.c:865,871 – 2000/0706/sys/src/9/ip/il.c:898,904 | ||
| 1997/0327 | } | |
| 1997/0916 | if(oid != ic->recvd+1){ | |
| 1998/0313 | ipriv = s->p->priv; | |
| 2000/0706 | ipriv->stats[OutOfOrder]++; | |
| 1997/0327 | break; | |
| 1997/0916 | } | |
| 1997/0327 | ||
| 2000/0424/sys/src/9/ip/il.c:923,930 – 2000/0706/sys/src/9/ip/il.c:956,963 | ||
| 1997/0327 | newid = nhgetl(lid); if(id <= newid) { if(id == newid) { | |
| 1998/0313 |
| |
| 2000/0706 | ipriv->stats[DupMsg]++; ipriv->stats[DupBytes] += blocklen(bp); | |
| 1997/0327 | qunlock(&ic->outo); freeblist(bp); return; | |