Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 06 Apr 2009 12:26:58 -0400
From:      Coleman Kane <cokane@FreeBSD.org>
To:        Randall Stewart <rrs@lakerest.net>
Cc:        svn-src-head@FreeBSD.org, Randall Stewart <rrs@FreeBSD.org>, svn-src-all@FreeBSD.org, src-committers@FreeBSD.org
Subject:   Re: svn commit: r190775 - head/sbin/route
Message-ID:  <1239035218.1946.12.camel@localhost>
In-Reply-To: <5EEC0668-D1C4-45E8-AFC1-959AE3E8715E@lakerest.net>
References:  <200904061427.n36ERTVF074015@svn.freebsd.org> <1239030459.1946.4.camel@localhost> <5EEC0668-D1C4-45E8-AFC1-959AE3E8715E@lakerest.net>

next in thread | previous in thread | raw e-mail | index | archive | help

--=-FcsJJQgGjUhUn7DyIR5w
Content-Type: text/plain
Content-Transfer-Encoding: quoted-printable

On Mon, 2009-04-06 at 12:21 -0400, Randall Stewart wrote:
> On Apr 6, 2009, at 11:07 AM, Coleman Kane wrote:
>=20
> > On Mon, 2009-04-06 at 14:27 +0000, Randall Stewart wrote:
> >> Author: rrs
> >> Date: Mon Apr  6 14:27:28 2009
> >> New Revision: 190775
> >> URL: http://svn.freebsd.org/changeset/base/190775
> >>
> >> Log:
> >>  Ok, looking at the solution a bit closer, the level
> >>  calculation was too agressive. Instead we should only
> >>  look at each nibble. This makes it so we make
> >>  10.2.0.0 become 10.2/16 NOT 10.2/17.
> >
> > I presume you meant "NOT 10.2/15" here? Correct me if I'm wrong, but
> > that's what I gathered by the discussion of "the bug" in the previous
> > thread.
> >
>=20
> It would have actually done any number of ones... basically looking
> at the bottom number of 0 bits and that would be the / value.
>=20
> So depending on what number you put with
> 10.x (for x) you could get a variety of results..
>=20
> 10.2 would =3D=3D 10.2/17
> 10.4 would =3D=3D 10.2/18

I was under the impression that the above would sort out to something
akin to the following binary sequences:

00001010 00000010 (10.2) produces a 15-bit-long mask (11111111 11111110)
00001010 00000100 (10.4) produces a 14-bit-long mask (11111111 11111100)

I would expect 10.2.128 to produce a 17-bit mask, and 10.2.129 to
produce an 18-bit mask, according to CIDR.

>=20
> etc.
>=20
> This is not the correct behavior.. even though it might be
> technically right with regard to CIDR.
>=20
> Now as far as the old class based routings go.. this is a problem
> since the two schemes are at odds.
>=20
> We have for a long time had doing
>=20
> route add -net 10.2.0.0 be equal to adding 10.2/16
>=20
> But if you follow the old Class based routing then
> the upper 4 bits of the address needs to be examined to
> determine if its a /8, /16 etc.
>=20
> That is incorrect in a CIDR world.. but I don't see a way
> to make the two schemes work together. And since previous to 7.1
> the above worked.. I think this last fix is the right approach..
>=20
> R
>=20
> >>
> >>  Need to explore the non-cidr address issue. The two
> >>  may not be seperable..
> >>
> >>  MFC after:	1 week
> >>
> >> Modified:
> >>  head/sbin/route/route.c
> >>
> >> Modified: head/sbin/route/route.c
> >> =3D
> >> =3D
> >> =3D
> >> =3D
> >> =3D
> >> =3D
> >> =3D
> >> =3D
> >> =3D
> >> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> >> --- head/sbin/route/route.c	Mon Apr  6 14:12:22 2009	(r190774)
> >> +++ head/sbin/route/route.c	Mon Apr  6 14:27:28 2009	(r190775)
> >> @@ -808,15 +808,15 @@ inet_makenetandmask(net, sin, bits)
> >> 	 * CIDR address.
> >> 	 */
> >> 	if ((bits =3D=3D 0)  && (addr !=3D 0)) {
> >> -		int i, j;
> >> -		for(i=3D0,j=3D1; i<32; i++)  {
> >> +		u_long i, j;
> >> +		for(i=3D0,j=3D0xff; i<4; i++)  {
> >> 			if (addr & j) {
> >> 				break;
> >> 			}
> >> -			j <<=3D 1;
> >> +			j <<=3D 8;
> >> 		}
> >> 		/* i holds the first non zero bit */
> >> -		bits =3D 32 - i;=09
> >> +		bits =3D 32 - (i*8);=09
> >> 	}
> >> 	mask =3D 0xffffffff << (32 - bits);
> >>
> >
> > --=20
> > Coleman Kane
>=20
> ------------------------------
> Randall Stewart
> 803-317-4952 (cell)
> 803-345-0391(direct)
>=20
--=20
Coleman Kane

--=-FcsJJQgGjUhUn7DyIR5w
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: This is a digitally signed message part

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (FreeBSD)

iEYEABECAAYFAknaLVIACgkQcMSxQcXat5ehGQCfT/po4jUM2JmR5Ygdvd7+2KWD
p/kAoIErC7/mssSvQn4ZTxIeb22cTSEt
=PE/H
-----END PGP SIGNATURE-----

--=-FcsJJQgGjUhUn7DyIR5w--




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1239035218.1946.12.camel>