netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: ebiederm@xmission.com (Eric W. Biederman)
To: Ben Greear <greearb@candelatech.com>
Cc: Daniel Lezcano <daniel.lezcano@free.fr>,
	netdev@vger.kernel.org, linux-kernel@vger.kernel.org,
	containers@lists.osdl.org, Mark Lord <lkml@rtr.ca>,
	Stephen Hemminger <shemminger@linux-foundation.org>,
	David Miller <davem@davemloft.net>
Subject: Re: namespace support requires network modules to say "GPL"
Date: Tue, 04 Dec 2007 12:17:57 -0700	[thread overview]
Message-ID: <m1odd6w9p6.fsf@ebiederm.dsl.xmission.com> (raw)
In-Reply-To: <4755A025.8090903@candelatech.com> (Ben Greear's message of "Tue, 04 Dec 2007 10:44:53 -0800")

Ben Greear <greearb@candelatech.com> writes:

> Eric W. Biederman wrote:
>> However there also seem to be simpler cases like Ben's bridge module,
>> that don't appear to have any global state.
>>
> Well, my module has some global state, but I don't think it needs to care about
> namespaces.  My first impression is that my module should be able to bridge
> namespaces...not be contained within one.  I can have user-space make sure that
> I don't bridge between
> devices in different name-spaces, or perhaps bridging between namespaces
> wouldn't be a problem anyway. 

Bridging between namespaces should not be a problem, but it could be
a bit of a challenge to setup (in finding the network devices).
Probably the easy way is to setup the bridging and then move one of the
network devices to the other network namespace.

Essentially bridging between two network devices in two network
namespaces looks like bridging between two network devices on two
separate network stacks.   Although internally things look a little
better.

> If I *do* need to add some sort of namespace
> awareness to just achieve today's functionality, I don't mind making the
> changes,
> so long as I don't need to change to GPL licensing.  Perhaps at the least you
> can export enough symbols w/out GPL tag to achieve backwards compat with .23
> and previous kernels, or rework dev_get_by_* etc to not need GPL'd namespace
> symbols and just return the device in the default namespace?

IANAL but to me your code sounds like a derivative work of the linux
kernel.  Which implies that if you are distributing your module you
need to change to GPL licensing.  The _GPL tag on EXPORT_SYMBOL does
not change those rules.

>> Ben I don't have a clue how your user space interface works.  My gut
>> feel is that you can likely use sk->sk_net (if your configuration is
>> through a socket), or failing that current->nsproxy->net_ns.  To get
>> the network namespace to look up "eth0" and "eth1".
>>
> Currently I use procfs and ioctls bound to a procfs file descriptor.

Which is where it gets tricky   You are defining new userspace ABIs.
I can see where they occasionally make sense during development
and prototyping but long term out of tree userspace interfaces appear
to me to be a real maintenance problem.

> For namespaces in general, will there be a way to just do a dev_get_by_* and
> find the
> device in *any* namespace and query the device to see what namespace it is in?
> Then my module or some other more clever piece of code can determine the
> namespaces
> (by comparing pointers if nothing else) and make proper decision.  For instance,
> maybe
> we want to bridge two namespaces, or maybe we want to forbid that ever
> happening...

The issue is that fundamentally all userspace device identifiers can
be duped between namespaces.  So since there is no unique identifier
we can not implement a function to do that.

>> This however still begs the question how do we want to handle this
>> so there is a minimum of pain.
>>
>> Since using register_pernet_subsys implies you need your own member
>> in struct net.  I am inclined to leave that with the GPL hint on
>> the EXPORT as you need to be really tight with the system to use that.
>>
> I certainly don't want to have to muck with struct net unless you have some way
> to
> register anonymous (and non GPL) subsystems.  I'm guessing you do not want to
> support that....

Well I don't see a license compatible way to have any GPL incompatible
licensed linux kernel code.  Off hand that means code needs to be
licensed under the GPL or BSD without advertising clause.

Does EXPORT_SYMBOL_GPL complain if you have a BSD licensed module?

Eric

  reply	other threads:[~2007-12-04 19:20 UTC|newest]

Thread overview: 64+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-12-01  9:06 [PATCH 0/10] sysfs network namespace support Eric W. Biederman
2007-12-01  9:12 ` [PATCH 01/10] sysfs: Make sysfs_mount static again Eric W. Biederman
2007-12-01  9:13   ` [PATCH 02/10] sysfs: Support for preventing unmounts Eric W. Biederman
2007-12-01  9:16     ` [PATCH 03/10] sysfs: sysfs_get_dentry add a sb parameter Eric W. Biederman
2007-12-01  9:18       ` [PATCH 04/10] sysfs: Implement __sysfs_get_dentry Eric W. Biederman
2007-12-01  9:23         ` [PATCH 05/10] sysfs: Rename Support multiple superblocks Eric W. Biederman
2007-12-01  9:25           ` [PATCH 06/10] sysfs: sysfs_chmod_file handle " Eric W. Biederman
2007-12-01  9:28             ` [PATCH 07/10] sysfs: Implement sysfs tagged directory support Eric W. Biederman
2007-12-01  9:30               ` [PATCH 08/10] sysfs: Implement sysfs_delete_link and sysfs_rename_link Eric W. Biederman
2007-12-01  9:33                 ` [PATCH 09/10] driver core: Implement tagged directory support for device classes Eric W. Biederman
2007-12-01  9:35                   ` [PATCH 10/10] net: Enable tagging for net_class directories in sysfs Eric W. Biederman
2007-12-01 13:10 ` namespace support requires network modules to say "GPL" Mark Lord
2007-12-01 13:13   ` Mark Lord
2007-12-01 19:17   ` Stephen Hemminger
2007-12-01 19:23     ` Alan Cox
     [not found]       ` <20071201192341.6750fbdb-v58gJUvfdfWUJIigds3554dd74u8MsAO@public.gmane.org>
2007-12-01 19:38         ` Stephen Hemminger
2007-12-01 19:45           ` Alan Cox
2007-12-01 20:13           ` Eric W. Biederman
     [not found]             ` <m13aum5g1x.fsf-T1Yj925okcoyDheHMi7gv2pdwda3JcWeAL8bYrjMMd8@public.gmane.org>
2007-12-01 20:21               ` Mark Lord
2007-12-01 20:29                 ` Arjan van de Ven
2007-12-01 22:12                   ` Mark Lord
2007-12-01 23:13                     ` Eric W. Biederman
2007-12-01 23:24                       ` Jiri Slaby
2007-12-02  1:14                         ` Eric W. Biederman
2007-12-01 23:51                       ` Mark Lord
2007-12-02  1:08                         ` Eric W. Biederman
2007-12-01 20:52                 ` Eric W. Biederman
2007-12-01 22:13                 ` Mark Lord
2007-12-03  0:02       ` David Schwartz
2007-12-03  0:14         ` Alan Cox
2007-12-01 19:54     ` Eric W. Biederman
2007-12-02  0:30     ` Stephen Hemminger
2007-12-02  2:02       ` Eric W. Biederman
2007-12-02  3:34       ` Mark Lord
2007-12-02  4:23         ` Stephen Hemminger
2007-12-02 19:28           ` Ben Greear
2007-12-02 20:03             ` Patrick McHardy
2007-12-02 20:43               ` Adrian Bunk
2007-12-02 21:59                 ` Patrick McHardy
2007-12-03  1:14                   ` Adrian Bunk
2007-12-03  8:33                   ` Denis V. Lunev
2007-12-03 17:35               ` Eric W. Biederman
2007-12-03 18:19                 ` Ben Greear
2007-12-03 18:57                   ` Daniel Lezcano
2007-12-04 15:19                     ` Daniel Lezcano
2007-12-04 18:03                     ` Eric W. Biederman
2007-12-04 18:44                       ` Ben Greear
2007-12-04 19:17                         ` Eric W. Biederman [this message]
2007-12-04 19:35                           ` Ben Greear
2007-12-04 20:09                             ` Eric W. Biederman
2007-12-05  6:14                           ` David Miller
2007-12-05  6:01                       ` David Miller
2007-12-04 17:59                   ` Eric W. Biederman
2007-12-04 18:57                     ` Ben Greear
2007-12-04 20:01                       ` Eric W. Biederman
2007-12-05  6:07                       ` David Miller
2007-12-03  8:24         ` Romano Giannetti
2007-12-03 15:34           ` Arjan van de Ven
2007-12-03 18:03           ` Eric W. Biederman
2007-12-03 18:13             ` David Miller
2007-12-02 13:51       ` Alan Cox
2007-12-02 19:56         ` Valdis.Kletnieks
2007-12-21  3:07 ` [PATCH 0/10] sysfs network namespace support Greg KH
2007-12-21 13:04   ` Eric W. Biederman

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=m1odd6w9p6.fsf@ebiederm.dsl.xmission.com \
    --to=ebiederm@xmission.com \
    --cc=containers@lists.osdl.org \
    --cc=daniel.lezcano@free.fr \
    --cc=davem@davemloft.net \
    --cc=greearb@candelatech.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=lkml@rtr.ca \
    --cc=netdev@vger.kernel.org \
    --cc=shemminger@linux-foundation.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).