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>