LVS
lvs-users
Google
 
Web LinuxVirtualServer.org

Re: The VS patch for kernel 2.2

To: IPPFVS Mailing List <linux-virtualserver@xxxxxxxxxxxx>
Subject: Re: The VS patch for kernel 2.2
From: Matthew Kellett <matthewk@xxxxxxxxx>
Date: Wed, 12 May 1999 16:04:11 -0400
Since I've been included in this debate, I'd like to add my 2 cents.  I agree 
with
Wensong, despite this being what you say is a total re-write (I haven't looked 
at
the code, so I'm taking your word for it), the initial code, idea and logic are
Wensong's.

There are numerous examples, some of which Wensong pointed out, where complete
re-writes happened in the kernel code.  The primary author was still listed with
the original license, while a new section was added before or after the 
original.
Take ip_fw.c for example.  Alan Cox created the original linux file but still 
gave
full credit to the original FreeBSD file that it come from and it's authors.

Next, Wensong didn't come up with nor implement the idea of load-balancing
modules.  That was entirely my own idea and he graciously choose to allow into 
the
development stream.  Even though you give credit to Wensong, you don't give 
credit
to me or anybody else who contributed.

I think the main problem here is what Wensong expressed.  The Virtual Server
Project is in danger of having split development.  Wensong was the originator of
this idea and is the maintainer of the virtual server code.  Maybe I'm being too
militant to say that these seems like an attempt to hijack the development, as 
in,
everything before 2.2 is Wensong's and everything after is Peter's.

Personally, I've always tried to help Wensong and I know that he doesn't have 
time
to look into all these things.  I don't think he would have had a problem with 
you
doing the work or being given credit for the re-write.  I think it's a 
tremendous
contribution.  It's the fact that you didn't collaberate with him or the mailing
list to try to keep the development on both streams going in the same direction
that's bothersome.  And the fact that you didn't give proper and legal credit to
the original code this was based on, including my contribution.  See the example
from Alan Cox in ip_fw.c below.

If you ever want this patch to have a chance of entering the normal kernel
development stream, you will have to comply with the GPL.

Cheers,
Matthew
matthewk@xxxxxxxxx

/*
 *      IP firewalling code. This is taken from 4.4BSD. Please note the
 *      copyright message below. As per the GPL it must be maintained
 *      and the licenses thus do not conflict. While this port is subject
 *      to the GPL I also place my modifications under the original
 *      license in recognition of the original copyright.
 *                              -- Alan Cox.
 *
 *      Ported from BSD to Linux,
 *              Alan Cox 22/Nov/1994.
 *      Zeroing /proc and other additions
 *              Jos Vos 4/Feb/1995.
 *      Merged and included the FreeBSD-Current changes at Ugen's request
 *      (but hey it's a lot cleaner now). Ugen would prefer in some ways
 *      we waited for his final product but since Linux 1.2.0 is about to
 *      appear it's not practical - Read: It works, it's not clean but please
 *      don't consider it to be his standard of finished work.
 *              Alan Cox 12/Feb/1995
 *      Porting bidirectional entries from BSD, fixing accounting issues,
 *      adding struct ip_fwpkt for checking packets with interface address
 *              Jos Vos 5/Mar/1995.
 *      Established connections (ACK check), ACK check on bidirectional rules,
 *      ICMP type check.
 *              Wilfred Mollenvanger 7/7/1995.
 *      TCP attack protection.
 *              Alan Cox 25/8/95, based on information from bugtraq.
 *      ICMP type printk, IP_FW_F_APPEND
 *              Bernd Eckenfels 1996-01-31
 *      Split blocking chain into input and output chains, add new "insert" and
 *      "append" commands to replace semi-intelligent "add" command, let 
"delete".

 *      only delete the first matching entry, use 0xFFFF (0xFF) as ports (ICMP
 *      types) when counting packets being 2nd and further fragments.
 *              Jos Vos <jos@xxxxxx> 8/2/1996.
 *      Add support for matching on device names.
 *              Jos Vos <jos@xxxxxx> 15/2/1996.
 *      Transparent proxying support.
 *              Willy Konynenberg <willy@xxxxxx> 10/5/96.
 *      Make separate accounting on incoming and outgoing packets possible.
 *              Jos Vos <jos@xxxxxx> 18/5/1996.
 *      Add timeout reprieve for idle control channels.
 *              Keith Owens <kaos@xxxxxxxxxxxxxxxxxx> 05/07/1996.
 *
 *
 * Masquerading functionality
 *
 * Copyright (c) 1994 Pauline Middelink
 *
 * The pieces which added masquerading functionality are totally
 * my responsibility and have nothing to with the original authors
 * copyright or doing.
 *
 * Parts distributed under GPL.
 *
 * Fixes:
 *      Pauline Middelink       :       Added masquerading.
 *      Alan Cox                :       Fixed an error in the merge.
 *      Thomas Quinot           :       Fixed port spoofing.
 *      Alan Cox                :       Cleaned up retransmits in spoofing.
 *      Alan Cox                :       Cleaned up length setting.
 *      Wouter Gadeyne          :       Fixed masquerading support of ftp PORT
commands
 *
 *      Juan Jose Ciarlante     :       Masquerading code moved to ip_masq.c
 *
 *      All the real work was done by .....
 *
 */


/*
 * Copyright (c) 1993 Daniel Boulet
 * Copyright (c) 1994 Ugen J.S.Antsilevich
 *
 * Redistribution and use in source forms, with and without modification,
 * are permitted provided that this entire comment appears intact.
 *
 * Redistribution in binary form may occur without any restrictions.
 * Obviously, it would be nice if you gave credit where credit is due
 * but requiring it would be too onerous.
 *
 * This software is provided ``AS IS'' without any warranties of any kind.
 */


Rok Sosic wrote:

> Hi Wensong,
>
> Since this message has been posted to the mailing list, I will
> take the liberty to answer some of the issues raised.
>
> >I did read your VS patch for kernel 2.2 a week ago.
> >
> >There are three things in his patch that don't make me feel good.
> >I think I have to talk to you directly.
>
> Thank you for your comments on our kernel 2.2 patch. They are
> very much appreciated. We have released this experimental
> patch as soon as possible so that we are able to incorporate
> any comments that others might have and to allow others to
> play with the code.
>
> >    1. You just mentioned that the VS patch for kernel 2.2 is
> >heavily based on wensong's VS patch for kernel 2.0, it is not
> >enough, and it seems that you are the only author. Although
> >you changed many variable names and some data structure
> >for kernel 2.2 and merge Matthew's loadable load-balancing
> >module, the control flow and request techniques is the same
> >as the original one, and you shouldn't strip off my original
> >license and should mention Matthew's contribution.
> >For example, the original networking code is ported from
> >FreeBSD networking code, some were rewritten in the kernel
> >2.0, and networking code of kernel 2.2 is completely rewritten,
> >but the FreeBSD networking code license still remains in the
> >kernel 2.2 code. So does IP Firewalling code and IP tunneling
> >code and so on, Rusty doesn't strip off the original authors
> >because his ipchain code is used for firewalling in 2.2, Alexy
> >completely rewritten ipip.c in 2.2 but the original author is
> >still the author. The kind of examples is uncountable.
>
> I am not familiar with details of the code, but as far as I know,
> it was impossible to port 2.0.36 code directly to the 2.2.x kernel.
> The code needed to be completely rewritten from scratch, while
> following the logic of 2.0.36 implementation.
>
> According to my understanding, we have included the following license:
>
> > *      Virtual Server support for IP Masquerading
> > *
> > *      This code is GPL.
> > *      It is Experimental software.
> > *
> > *      Written by Peter Kese (peter.kese@xxxxxx)
> > *      This code is heavily based on the old IP Port Forwarding & Virtual
> > *      Server code written by Wensong Zhang.
> > *
> > *      For more information, check http://proxy.iinchina.net/~wensong/ippfvs
> > *                            or send an e-mail to peter.kese@xxxxxx
> > *
> > *
> > * Changelog:
> > *
> > * 1998 - 1999: Linux 2.0 Virtual Server patch
> > *              Wensong Zhang <wensong@xxxxxxxxxxxx>
> > * 05-May-1999: Port to 2.2, complete rewrite of the code, scheduling modules
> > *              Peter Kese <peter.kese@xxxxxx>
>
> It seems fairly reasonable to me. If you are not happy with the above
> license, please send me text that you are happy with.
>
> >    2. You changed the named of ippfvsadm.c to ipvsadm.c and
> >insert the loadable load-balancing option (which I guess is based
> >on Matthew's change for ippfvsadm.c). However, you striped all
> >the original license off, the ipvsadm.c remains without any
> >information about authors and licenses. It's not only a good
> >programming habit, but violates the GPL.
>
> I apologize for this mistake. We should have included a license here.
> We will fix this in the next release.
>
> >    3. You didn't port many functions of the original patch to kernel
> >2.2 without any discussion in the mailing list or with me. So the
> >VS patches for kernel 2.0 and for kernel 2.2 are not unified. This
> >is not what I want to see. I am worrying that lack of communication
> >will split the future development of Linux Virtual Server.
>
> Peter has announced on this mailing list that he is working on the
> port to 2.2 and he provided source code as soon as it was stable
> enough. He also participated in discussions in the mailing list.
> Patch for 2.2 kernel has to be very different, because kernel data
> structures have changed radically. This is still an experimental
> version, so not all features have been implemented yet.
>
> What else would you like to see? The code is available to everyone
> to criticize and make comments. We will be happy to receive any
> comments or patches for the code. If you want to use our code as
> a basis for Virtual Server on 2.2 kernel, we would be very happy
> to contribute our future patches to you to maintain a single version.
>
> >By the way, do you know PHT's announcement about their
> >TurboLinux cluster in the c.o.l.a. newsgroup, freshmeat.net
> >and linuxtoday.com sites?  They didn't mention any information
> >that they use the LVS code in the TurboLinux Cluster at their site.
> >    http://community.turbolinux.com/cluster/
> >They didn't show any respect to the works of others. It is a
> >kind of bad behavior that a good man will never do.
>
> Acknowledgements are made on our front page and on our acknowledgements
> page for the official Cluster Server page. Please check out:
>         http://www.pht.com
>         http://www.pht.com/clusterwebserver/acknowledge.html
> I agree that it would be appropriate to acknowledge your contribution
> also on the page that you mention above. I have asked our Webmaster
> to fix that. I hope that this will happen soon - we are moving to a
> new location, so it might take a day or two.
>
> Thank you,
> Rok
> --
> Rok Sosic
> TurboLinux cluster development
> rok@xxxxxxxxxxxxxx
>


<Prev in Thread] Current Thread [Next in Thread>