SCCS-vsn: sys/net/if_loop.c 7.12
*
* %sccs.include.redist.c%
*
*
* %sccs.include.redist.c%
*
- * @(#)if_loop.c 7.11 (Berkeley) %G%
+ * @(#)if_loop.c 7.12 (Berkeley) %G%
#include "../netiso/iso_var.h"
#endif
#include "../netiso/iso_var.h"
#endif
+#ifdef CCITT
+#include "../netccitt/x25.h"
+#include "../netccitt/hdlc.h"
+#include "../netccitt/hd_var.h"
+#endif
+
#define LOMTU (1024+512)
struct ifnet loif;
#define LOMTU (1024+512)
struct ifnet loif;
struct sockaddr *dst;
register struct rtentry *rt;
{
struct sockaddr *dst;
register struct rtentry *rt;
{
- int s;
- register struct ifqueue *ifq;
+ int s, isr;
+ register struct ifqueue *ifq = 0;
if ((m->m_flags & M_PKTHDR) == 0)
panic("looutput no HDR");
if ((m->m_flags & M_PKTHDR) == 0)
panic("looutput no HDR");
#ifdef INET
case AF_INET:
ifq = &ipintrq;
#ifdef INET
case AF_INET:
ifq = &ipintrq;
- if (IF_QFULL(ifq)) {
- IF_DROP(ifq);
- m_freem(m);
- splx(s);
- return (ENOBUFS);
- }
- IF_ENQUEUE(ifq, m);
- schednetisr(NETISR_IP);
break;
#endif
#ifdef NS
case AF_NS:
ifq = &nsintrq;
break;
#endif
#ifdef NS
case AF_NS:
ifq = &nsintrq;
- if (IF_QFULL(ifq)) {
- IF_DROP(ifq);
- m_freem(m);
- splx(s);
- return (ENOBUFS);
- }
- IF_ENQUEUE(ifq, m);
- schednetisr(NETISR_NS);
break;
#endif
#ifdef ISO
case AF_ISO:
ifq = &clnlintrq;
break;
#endif
#ifdef ISO
case AF_ISO:
ifq = &clnlintrq;
- if (IF_QFULL(ifq)) {
- IF_DROP(ifq);
- m_freem(m);
- splx(s);
- return (ENOBUFS);
- }
- IF_ENQUEUE(ifq, m);
- schednetisr(NETISR_ISO);
+ isr = NETISR_ISO;
+ break;
+#endif
+#ifdef CCITT
+ case AF_CCITT:
+ ifq = &hdintrq;
+ isr = NETISR_CCITT;
m_freem(m);
return (EAFNOSUPPORT);
}
m_freem(m);
return (EAFNOSUPPORT);
}
+ if (IF_QFULL(ifq)) {
+ IF_DROP(ifq);
+ m_freem(m);
+ splx(s);
+ return (ENOBUFS);
+ }
+ IF_ENQUEUE(ifq, m);
+ schednetisr(isr);
ifp->if_ipackets++;
ifp->if_ibytes += m->m_pkthdr.len;
splx(s);
ifp->if_ipackets++;
ifp->if_ibytes += m->m_pkthdr.len;
splx(s);
+#ifdef CCITT
+ case SIOCSIFCONF_X25:
+#endif
case SIOCSIFADDR:
ifp->if_flags |= IFF_UP;
/*
case SIOCSIFADDR:
ifp->if_flags |= IFF_UP;
/*