From bece161424f332346d9a90d2bc687db0bb7b3d50 Mon Sep 17 00:00:00 2001 From: David du Colombier <0intro@gmail.com> Date: Sun, 20 Feb 2000 00:00:00 +0000 Subject: [PATCH] Plan 9 from Bell Labs 2000-02-20 --- ip/devip.c | 13 ------------- ip/ip.c | 6 +++++- ip/ip.h | 18 ------------------ 3 files changed, 5 insertions(+), 32 deletions(-) diff --git a/ip/devip.c b/ip/devip.c index cfb03eddbb024a70ba3dd465123b4bc574a1de5e..5829142959de5e69aea57d622247c6b24af4c5a7 100644 --- a/ip/devip.c +++ b/ip/devip.c @@ -14,7 +14,6 @@ enum Qbootp, Qndb, Qiproute, - Qiprouter, Qipselftab, Qlog, @@ -158,10 +157,6 @@ ip1gen(Chan *c, int i, Dir *dp) prot = 0444; q = (Qid){QID(0, 0, Qipselftab), 0}; break; - case Qiprouter: - p = "iprouter"; - q = (Qid){QID(0, 0, Qiprouter), 0}; - break; case Qlog: p = "log"; q = (Qid){QID(0, 0, Qlog), 0}; @@ -203,7 +198,6 @@ ipgen(Chan *c, Dirtab*, int, int s, Dir *dp) case Qndb: case Qlog: case Qiproute: - case Qiprouter: case Qipselftab: return ip1gen(c, TYPE(c->qid), dp); case Qprotodir: @@ -364,9 +358,6 @@ ipopen(Chan* c, int omode) case Qlog: netlogopen(f); break; - case Qiprouter: - iprouteropen(f); - break; case Qiproute: memmove(c->tag, "none", sizeof(c->tag)); break; @@ -527,10 +518,6 @@ ipclose(Chan* c) if(c->flag & COPEN) netlogclose(f); break; - case Qiprouter: - if(c->flag & COPEN) - iprouterclose(f); - break; case Qdata: case Qctl: case Qerr: diff --git a/ip/ip.c b/ip/ip.c index 72c2c4daccb4d9281747cca6f8af289cf6e5ab2c..65bd9b070c09c147bd5956124d87c46234aadfde 100644 --- a/ip/ip.c +++ b/ip/ip.c @@ -214,6 +214,7 @@ ipoput(Fs *f, Block *bp, int gating, int ttl, int tos) } if(eh->frag[0] & (IP_DF>>8)){ + ip->istats.ipFragFails++; ip->istats.ipOutDiscards++; netlog(f, Logip, "%V: eh->frag[0] & (IP_DF>>8)\n", eh->dst); goto raise; @@ -221,6 +222,7 @@ ipoput(Fs *f, Block *bp, int gating, int ttl, int tos) seglen = (medialen - IPHDR) & ~7; if(seglen < 8){ + ip->istats.ipFragFails++; ip->istats.ipOutDiscards++; netlog(f, Logip, "%V seglen < 8\n", eh->dst); goto raise; @@ -262,6 +264,7 @@ ipoput(Fs *f, Block *bp, int gating, int ttl, int tos) while(chunk) { if(!xp) { ip->istats.ipOutDiscards++; + ip->istats.ipFragFails++; freeblist(nb); netlog(f, Logip, "!xp: chunk %d\n", chunk); goto raise; @@ -283,6 +286,7 @@ ipoput(Fs *f, Block *bp, int gating, int ttl, int tos) ifc->m->bwrite(ifc, nb, V4, gate); ip->istats.ipFragCreates++; } + ip->istats.ipFragOKs++; raise: runlock(ifc); poperror(); @@ -377,7 +381,7 @@ ipiput(Fs *f, uchar *ia, Block *bp) /* route */ if(notforme) { if(!ip->iprouting){ - useriprouter(f, ia, bp); + freeb(bp); return; } diff --git a/ip/ip.h b/ip/ip.h index 2bee2c75349bc1d4bb5c256544968522895248ab..c88206e0e77939371eb0b4425b28019667d4f87a 100644 --- a/ip/ip.h +++ b/ip/ip.h @@ -231,15 +231,6 @@ struct Proto void *priv; }; -/* - * Stream for sending packets to user level - */ -struct IProuter { - QLock; - int opens; - Queue *q; -}; - /* * one per IP protocol stack */ @@ -257,7 +248,6 @@ struct Fs IP *ip; Ipselftab *self; Arp *arp; - IProuter iprouter; Route *v4root[1<