2003-07-26 07:01:32

by Jeff Sipek

[permalink] [raw]
Subject: [RFC] TCP and UDP implementations

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hello all,
I noticed that there are two implementations of TCP and UDP in the kernel -
one for IPv4 and the other for IPv6. Correct me if I am wrong, but wouldn't
it be better to just have one implementation for both versions of IP? I know
this for sure:

1) it would decrease the size of the kernel (this wouldn't be too dramatic,
but still)

2) it would make maintaining of the code half the work

AFAIK there are small differences in TCP and UDP between IPv4 and IPv6, but
they could be resolved using simple "work arounds."

Thanks,
Jeff.

- --
The obvious mathematical breakthrough would be development of an easy
way to factor large prime numbers.
- Bill Gates, The Road Ahead, pg. 265
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.2 (GNU/Linux)

iD8DBQE/IiqtwFP0+seVj/4RAn5TAKCbdCGvUtPAJun994GfcsDkfMLqXwCgsKwG
dl/5CjR0hCRbpv+SNH7L3ds=
=z5jS
-----END PGP SIGNATURE-----


2003-07-26 07:55:53

by Matti Aarnio

[permalink] [raw]
Subject: Re: [RFC] TCP and UDP implementations

On Sat, Jul 26, 2003 at 03:15:53AM -0400, Jeff Sipek wrote:
> Hello all,
> I noticed that there are two implementations of TCP and UDP in the kernel -
> one for IPv4 and the other for IPv6. Correct me if I am wrong, but wouldn't
> it be better to just have one implementation for both versions of IP? I know
> this for sure:

The way how things are in 2.4 (I haven't looked too deeply into 2.5/2.6),
IPv6 TCP and UDP do NEED IPv4 TCP code to make most of TCP logic.
With UDP the amount of logic in kernel side is a lot simpler, and
I do think the code was in essense duplicated.

> 1) it would decrease the size of the kernel (this wouldn't be too dramatic,
> but still)
>
> 2) it would make maintaining of the code half the work

Because of the degree of present sharing: no.

> AFAIK there are small differences in TCP and UDP between IPv4 and IPv6,
> but they could be resolved using simple "work arounds."

IPv6's TCP is (was) just that kind of "work around" to handle differences
in IP addresses.

> Thanks,
> Jeff.

/Matti Aarnio