Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 16 Nov 1998 17:21:46 -0600
From:      "McKenna, Lee" <lmckenna@lodgenet.com>
To:        "'John Hay'" <jhay@mikom.csir.co.za>, "'asmodai@wxs.nl'" <asmodai@wxs.nl>
Cc:        "'freebsd-net@FreeBSD.ORG'" <freebsd-net@FreeBSD.ORG>
Subject:   RE: Frametypes (was: Re: Netware client for FreeBSD)
Message-ID:  <c=US%a=_%p=Lodgenet%l=CHAPLIN-981116232146Z-14273@chaplin.lodgenet.com>

next in thread | raw e-mail | index | archive | help
You know...it may be easier just to add support for the additional frame
type to your Novell server :)  -- Novell supports multiple frame types
bound to the same adapter for running IPX...beware that this doubles the
SAP/RIP traffic on your net since it does SAPs/RIPs on each frame
type...although I recall you can filter much of the unwanted broadcasts
starting with Novell 4.x??

--Lee

-----Original Message-----
From: John Hay [mailto:jhay@mikom.csir.co.za]
Sent: Monday, November 16, 1998 12:47 PM
To: asmodai@wxs.nl
Cc: jhay@mikom.csir.co.za; freebsd-net@FreeBSD.ORG
Subject: Re: Frametypes (was: Re: Netware client for FreeBSD)


> >> 
> >> which fraemetypes do we support for IPX traffic? If we only support
Eth_II
> >> at
> >> this point then we need to integrate 802.2/3 too.
> >> 
> >> But I can remember a previous post about these frametypes. Anyone care to
> >> refresh my mind?
> > 
> > Well at the moment FreeBSD only supports Ethernet_II. I do have patches
> > for 802.3 support, but that is using a single sysctl to switch between
> > E_II and 802.3 for the whole machine (all its interfaces). Support for
> > the different frames isn't too difficult. It is the mechanism to make
> > different interfaces use different frames in a nice way that I'm stuck
> > with. Ie. have ed0 use 802.3 and ed1 use E_II and ed3 use 802.2 or
> > even run two or more frames on the same interface.
> 
> Care to provide me with the patches? =)

Ok, I add it at the end.

> Well there has to be a nice idea how to solve it. Most likely as an
extension
> to rc.conf to the interfaces.

Patches welcome. :-) It's not just rc.conf, but also how to send it down
into the kernel and where to store it in there because preferably you
should be able to configure more than one frame per interface so that
you
can use a FreeBSD machine to do frame translation.

John
-- 
John Hay -- John.Hay@mikom.csir.co.za


--- if_ethersubr.c.v2.2.org	Wed Jul  2 07:56:33 1997
+++ if_ethersubr.c	Sun Jul 27 10:18:58 1997
@@ -101,6 +101,11 @@
 extern u_char	aarp_org_code[ 3 ];
 #endif NETATALK
 
+SYSCTL_NODE(_net_link_ether, PF_IPX, ipx, CTLFLAG_RW, 0, "");
+static int ipx8023;	/* Should we do Ethernet_II framing for IPX? */
+SYSCTL_INT(_net_link_ether_ipx, OID_AUTO, framing8023, CTLFLAG_RW,
+	   &ipx8023, 0, "");
+
 u_char	etherbroadcastaddr[6] = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff };
 #define senderr(e) { error = (e); goto bad;}
 
@@ -177,7 +182,10 @@
 		{
 		struct ifaddr *ia;
 
-		type = htons(ETHERTYPE_IPX);
+		if (ipx8023)
+			type = htons(m->m_pkthdr.len);
+		else
+			type = htons(ETHERTYPE_IPX);
  		bcopy((caddr_t)&(((struct sockaddr_ipx *)dst)->sipx_addr.x_host),
 		    (caddr_t)edst, sizeof (edst));
 		for (ia = ifp->if_addrlist; ia != NULL; ia = ia->ifa_next)
@@ -467,8 +475,13 @@
 #endif
 #ifdef IPX
 	case ETHERTYPE_IPX:
-		schednetisr(NETISR_IPX);
-		inq = &ipxintrq;
+		if (ipx8023 == 0) {
+			schednetisr(NETISR_IPX);
+			inq = &ipxintrq;
+		} else {
+			m_freem(m);
+			return;
+		}
 		break;
 #endif
 #ifdef NS
@@ -489,6 +502,18 @@
                 return;
 #endif NETATALK
 	default:
+#ifdef IPX
+	    {
+		struct ipx *ipxp = mtod(m, struct ipx *);
+
+		if (ipx8023 && (ipxp->ipx_sum == 0xffff) &&
+		    (ntohs(ipxp->ipx_len) <= m->m_pkthdr.len)) {
+			schednetisr(NETISR_IPX);
+			inq = &ipxintrq;
+			break;  
+		}
+	    }
+#endif
 #ifdef NS
 		checksum = mtod(m, ushort *);
 		/* Novell 802.3 */

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-net" in the body of the message

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-net" in the body of the message



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?c=US%a=_%p=Lodgenet%l=CHAPLIN-981116232146Z-14273>