summaryrefslogtreecommitdiffstats
path: root/sys/dev/sr/if_sr.c
diff options
context:
space:
mode:
authorjhay <jhay@FreeBSD.org>2000-04-08 17:14:00 +0000
committerjhay <jhay@FreeBSD.org>2000-04-08 17:14:00 +0000
commit57d5ddf5b7f9c6064bac8660db373fdec6af77b1 (patch)
tree746a2a2f080a54c193236d361a95faacec4072b4 /sys/dev/sr/if_sr.c
parentf6ef29acc9d18c7e9ef00e56c5b2e7c52ba66880 (diff)
downloadFreeBSD-src-57d5ddf5b7f9c6064bac8660db373fdec6af77b1.zip
FreeBSD-src-57d5ddf5b7f9c6064bac8660db373fdec6af77b1.tar.gz
Make the N2 isa cards probe again. Remove the unused frame relay hooks.
This should also fix PR 17814 where flags were ignored on the first usage of ifconfig on the interface. PR: 17814
Diffstat (limited to 'sys/dev/sr/if_sr.c')
-rw-r--r--sys/dev/sr/if_sr.c223
1 files changed, 8 insertions, 215 deletions
diff --git a/sys/dev/sr/if_sr.c b/sys/dev/sr/if_sr.c
index c1348e3..8d850fd 100644
--- a/sys/dev/sr/if_sr.c
+++ b/sys/dev/sr/if_sr.c
@@ -51,12 +51,6 @@
#include "opt_netgraph.h"
#ifdef NETGRAPH
#include <i386/isa/if_sr.h>
-#else /* NETGRAPH */
-#ifdef notyet
-#include "fr.h"
-#else
-#define NFR 0
-#endif
#endif /* NETGRAPH */
#ifndef NETGRAPH
@@ -178,12 +172,6 @@ struct sr_softc {
int unit; /* With regard to all sr devices */
int subunit; /* With regard to this card */
-#ifndef NETGRAPH
- int attached; /* attached to FR or PPP */
- int protocol; /* FR or PPP */
-#define N2_USE_FRP 2 /* Frame Relay Protocol */
-#define N2_USE_PPP 1 /* Point-to-Point Protocol */
-#endif /* NETGRAPH */
struct buf_block {
u_int txdesc; /* DPRAM offset */
u_int txstart;/* DPRAM offset */
@@ -266,7 +254,7 @@ static int sr_irqtable[16] = {
static int srprobe(struct isa_device *id);
static int srattach_isa(struct isa_device *id);
-struct isa_driver srdriver = {srprobe, srattach_isa, "src"};
+struct isa_driver srdriver = {srprobe, srattach_isa, "sr"};
/*
* Baud Rate table for Sync Mode.
@@ -362,16 +350,7 @@ static u_int src_get16_mem(u_int base, u_int off);
static void src_put8_mem(u_int base, u_int off, u_int val);
static void src_put16_mem(u_int base, u_int off, u_int val);
-#ifndef NETGRAPH
-#if NFR > 0
-extern void fr_detach(struct ifnet *);
-extern int fr_attach(struct ifnet *);
-extern int fr_ioctl(struct ifnet *, int, caddr_t);
-extern void fr_flush(struct ifnet *);
-extern int fr_input(struct ifnet *, struct mbuf *);
-extern struct mbuf *fr_dequeue(struct ifnet *);
-#endif
-#else
+#ifdef NETGRAPH
static void ngsr_watchdog_frame(void * arg);
static void ngsr_init(void* ignored);
@@ -935,23 +914,8 @@ srattach(struct sr_hardc *hc)
ifp->if_start = srstart;
ifp->if_watchdog = srwatchdog;
- /*
- * Despite the fact that we want to allow both PPP *and*
- * Frame Relay access to a channel, due to the architecture
- * of the system, we'll have to do the attach here.
- *
- * At some point I'll defer the attach to the "up" call and
- * have the attach/detach performed when the interface is
- * up/downed...
- */
- sc->attached = 0;
- sc->protocol = N2_USE_PPP; /* default protocol */
-
-#if 0
sc->ifsppp.pp_flags = PP_KEEPALIVE;
sppp_attach((struct ifnet *)&sc->ifsppp);
-#endif
-
if_attach(ifp);
bpfattach(ifp, DLT_PPP, PPP_HEADER_LEN);
@@ -1222,16 +1186,7 @@ top_srstart:
* from...
*/
#ifndef NETGRAPH
- switch (sc->protocol) {
-#if NFR > 0
- case N2_USE_FRP:
- mtx = fr_dequeue(ifp);
- break;
-#endif
- case N2_USE_PPP:
- default:
- mtx = sppp_dequeue(ifp);
- }
+ mtx = sppp_dequeue(ifp);
#else /* NETGRAPH */
IF_DEQUEUE(&sc->xmitq_hipri, mtx);
if (mtx == NULL) {
@@ -1341,16 +1296,7 @@ top_srstart:
* We'll pull the next message to be sent (if any)
*/
#ifndef NETGRAPH
- switch (sc->protocol) {
-#if NFR > 0
- case N2_USE_FRP:
- mtx = fr_dequeue(ifp);
- break;
-#endif
- case N2_USE_PPP:
- default:
- mtx = sppp_dequeue(ifp);
- }
+ mtx = sppp_dequeue(ifp);
#else /* NETGRAPH */
IF_DEQUEUE(&sc->xmitq_hipri, mtx);
if (mtx == NULL) {
@@ -1423,68 +1369,7 @@ srioctl(struct ifnet *ifp, u_long cmd, caddr_t data)
was_up = ifp->if_flags & IFF_RUNNING;
- if (cmd == SIOCSIFFLAGS) {
- /*
- * First, handle an apparent protocol switch
- */
-#if NFR > 0
- if (was_up == 0)/* can only happen if DOWN */
- if (ifp->if_flags & IFF_LINK1)
- sc->protocol = N2_USE_FRP;
- else
- sc->protocol = N2_USE_PPP;
-#else
- sc->protocol = N2_USE_PPP;
- ifp->if_flags &= ~IFF_LINK1;
-#endif
-
- }
- /*
- * Next, we'll allow the network service layer we've called process
- * the ioctl...
- */
- if ((sc->attached != 0)
- && (sc->attached != sc->protocol)) {
- switch (sc->attached) {
-#if NFR > 0
- case N2_USE_FRP:
- fr_detach(ifp);
- break;
-#endif
- case N2_USE_PPP:
- default:
- sppp_detach(ifp);
- sc->ifsppp.pp_flags &= ~PP_KEEPALIVE;
- }
-
- sc->attached = 0;
- }
- if (sc->attached == 0) {
- switch (sc->protocol) {
-#if NFR > 0
- case N2_USE_FRP:
- fr_attach(&sc->ifsppp.pp_if);
- break;
-#endif
- case N2_USE_PPP:
- default:
- sc->ifsppp.pp_flags |= PP_KEEPALIVE;
- sppp_attach(&sc->ifsppp.pp_if);
-
- }
-
- sc->attached = sc->protocol;
- }
- switch (sc->protocol) {
-#if NFR > 0
- case N2_USE_FRP:
- error = fr_ioctl(ifp, cmd, data);
- break;
-#endif
- case N2_USE_PPP:
- default:
- error = sppp_ioctl(ifp, cmd, data);
- }
+ error = sppp_ioctl(ifp, cmd, data);
#if BUGGY > 1
printf("sr%d: ioctl: ifsppp.pp_flags = %08x, if_flags %08x.\n",
@@ -1534,48 +1419,15 @@ srioctl(struct ifnet *ifp, u_long cmd, caddr_t data)
* XXX Clear the IFF_UP flag so that the link will only go
* up after sppp lcp and ipcp negotiation.
*/
- ifp->if_flags &= ~IFF_UP;
+ /* ifp->if_flags &= ~IFF_UP; */
} else if (was_up && !should_be_up) {
/*
* Interface should be down -- stop it.
*/
sr_down(sc);
- switch (sc->protocol) {
-#if NFR > 0
- case N2_USE_FRP:
- fr_flush(ifp);
- break;
-#endif
- case N2_USE_PPP:
- default:
- sppp_flush(ifp);
- }
+ sppp_flush(ifp);
}
splx(s);
-
-#if BUGGY > 2
- if (bug_splats[sc->unit]++ < 2) {
- printf("sr(%d).if_addrlist = %08x\n",
- sc->unit, ifp->if_addrlist);
- printf("sr(%d).if_bpf = %08x\n",
- sc->unit, ifp->if_bpf);
- printf("sr(%d).if_init = %08x\n",
- sc->unit, ifp->if_init);
- printf("sr(%d).if_output = %08x\n",
- sc->unit, ifp->if_output);
- printf("sr(%d).if_start = %08x\n",
- sc->unit, ifp->if_start);
- printf("sr(%d).if_done = %08x\n",
- sc->unit, ifp->if_done);
- printf("sr(%d).if_ioctl = %08x\n",
- sc->unit, ifp->if_ioctl);
- printf("sr(%d).if_reset = %08x\n",
- sc->unit, ifp->if_reset);
- printf("sr(%d).if_watchdog = %08x\n",
- sc->unit, ifp->if_watchdog);
- }
-#endif
-
return 0;
}
#endif /* NETGRAPH */
@@ -1666,29 +1518,6 @@ sr_up(struct sr_softc *sc)
printf("sr_up(sc=%08x)\n", sc);
#endif
-#ifndef NETGRAPH
- /*
- * This section should really do the attach to the appropriate
- * system service, be it frame relay or PPP...
- */
- if (sc->attached == 0) {
- switch (sc->protocol) {
-#if NFR > 0
- case N2_USE_FRP:
- fr_attach(&sc->ifsppp.pp_if);
- break;
-#endif
- case N2_USE_PPP:
- default:
- sc->ifsppp.pp_flags |= PP_KEEPALIVE;
- sppp_attach(&sc->ifsppp.pp_if);
-
- }
-
- sc->attached = sc->protocol;
- }
-
-#endif /* NETGRAPH */
/*
* Enable transmitter and receiver. Raise DTR and RTS. Enable
* interrupts.
@@ -1810,25 +1639,6 @@ sr_down(struct sr_softc *sc)
SRC_PUT8(hc->sca_base, sca->ier1,
SRC_GET8(hc->sca_base, sca->ier1) & ~0xF0);
}
-
-#ifndef NETGRAPH
- /*
- * This section does the detach from the currently configured net
- * service, be it frame relay or PPP...
- */
- switch (sc->protocol) {
-#if NFR > 0
- case N2_USE_FRP:
- fr_detach(&sc->ifsppp.pp_if);
- break;
-#endif
- case N2_USE_PPP:
- default:
- sppp_detach(&sc->ifsppp.pp_if);
- }
-
- sc->attached = 0;
-#endif /* NETGRAPH */
}
/*
@@ -2694,21 +2504,7 @@ sr_get_packets(struct sr_softc *sc)
bp[4], bp[5], bp[6]);
}
#endif
- /*
- * Pass off the message to PPP, connecting it it to
- * the system...
- */
- switch (sc->protocol) {
-#if NFR > 0
- case N2_USE_FRP:
- fr_input(ifp, m);
- break;
-#endif
- case N2_USE_PPP:
- default:
- sppp_input(ifp, m);
- }
-
+ sppp_input(ifp, m);
ifp->if_ipackets++;
#else /* NETGRAPH */
@@ -3162,9 +2958,6 @@ sr_modemck(void *arg)
for (mch = 0; mch < hc->numports; mch++) {
sc = &hc->sc[mch];
- if (sc->attached == 0)
- continue;
-
ifp = &sc->ifsppp.pp_if;
/*
OpenPOWER on IntegriCloud