Subject: Re: if_fddisubr.c fix for netiso
To: None <tech-net@netbsd.org>
From: Ignatios Souvatzis <is@netbsd.org>
List: tech-net
Date: 12/05/2006 17:23:21
On Tue, Dec 05, 2006 at 10:12:13AM -0600, David Young wrote:
> On Tue, Dec 05, 2006 at 01:34:59PM +0100, Ignatios Souvatzis wrote:
> > Here's part two of the patches, for FDDI (again, netiso/clnp_input.c and
> > netinet/fddi_subr.c). Sorry, wrong subject on the first try, and I fear
> > the designated alpha testers wouldn't see it.
> >
> > I did test that it compiles, but not run-time - no FDDI here. Testers
> > can use the package at
> >
> > ftp://ftp.netbsd.org/pub/NetBSD/misc/is/isotest/
> >
> > It comes with a README file that explains how to setup two machines and
> > send an ISO CLTP packet from one to the other.
> >
>
> I count at least three anonymous numbers (see below). I am mystified. :-)
>
> > Index: sys/netiso/clnp_input.c
> > ===================================================================
> > RCS file: /cvsroot/src/sys/netiso/clnp_input.c,v
> > retrieving revision 1.31
> > diff -u -r1.31 clnp_input.c
> > --- sys/netiso/clnp_input.c 1 Dec 2006 18:43:40 -0000 1.31
> > +++ sys/netiso/clnp_input.c 4 Dec 2006 21:20:11 -0000
> > @@ -204,9 +204,8 @@
> > case IFT_FDDI:
> > bcopy((caddr_t) (mtod(m, struct fddi_header *)->fddi_dhost),
> > (caddr_t) sh.snh_dhost, 2 * sizeof(sh.snh_dhost));
> > - m->m_data += sizeof(struct fddi_header);
> > - m->m_len -= sizeof(struct fddi_header);
> > - m->m_pkthdr.len -= sizeof(struct fddi_header);
> > +
> > + m_adj(m, sizeof(struct fddi_header) + 3);
>
> 3?
That's LLC_UFRAMELEN, and anonymous in the old version of the code, too.
I planned to replace that seperately, but could do that in the same step, if
you insist.
>
> > case LLC_XID_P:
> > - if(m->m_len < 6)
> > + if(m->m_len < 6 + sizeof(struct fddi_header))
> > goto dropanyway;
>
> 6?
I didn't change the 6. No idea. Just changed the length offset as above.
>
> > l->llc_window = 0;
> > l->llc_fid = 9;
>
> 9?
I didn't change the 9. No idea. Just changed the length offset as above.
I notice you didn't complain when I posted and committed the ether_subr
code, which is the same...
I guess you can look them up in 802.2 .
(And IMO, that code should not depend on the llc SAP codes, but be generic
for all that has an LLC the the LLC commands involved. But I won't change
that with this change.
Regards,
-is