Re: namespace support requires network modules to say "GPL"

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Daniel Lezcano wrote:
Ben Greear wrote:
Eric W. Biederman wrote:
Patrick McHardy <[email protected]> writes:

Ben Greear wrote:
I have a binary module that uses dev_get_by_name...it's sort of a bridge-like
thing and
needs user-space to tell it which device to listen for packets on...

This code doesn't need or care about name-spaces, so I don't see how it could
really
be infringing on the author's code (any worse than loading a binary driver
into the kernel
ever does).

Regardless of infringement it is incompatible with a complete network
namespace implementation.  Further it sounds like the module you are
describing defines a kernel ABI without being merged and hopes that
ABI will still be supportable in the future.  Honestly I think doing so
is horrible code maintenance policy.
I don't mind if the ABI changes, so long as I can still use something similar.

The namespace logic is interesting to me in general, but at this point I can't think of a way that it actually helps this particular module. All I really need is a way to grab every frame from eth0 and then transmit it to eth1. I'm currently doing this by finding the netdevice and registering a raw-packet protocol (ie, like tcpdump would do). At least up to 2.6.23, this does not require any hacks to the kernel and uses only non GPL exported symbols.

Based on my understanding of the namespace logic, if I never add any namespaces, the general network layout should look similar to how it does today, so I should have
no logical problem with my module.

Once things are largely complete it makes sense to argue with out of
tree module authors that because they don't have network namespace
support in their modules, their modules are broken.
Does this imply that every module that accesses the network code *must* become GPL simply because it must interact with namespace logic that is exported as GPL only symbols?

That's right, with init_net's EXPORT_SYMBOL_GPL and dev_get_xx, we enforce people to be GPL whatever they didn't asked to have the namespaces in their code.

Eric, why can we simply change EXPORT_SYMBOL_GPL to EXPORT_SYMBOL for init_net ?

Another suggestion/question, is it acceptable to say non-gpl driver should use init_task.nsproxy->net_ns instead of &init_net ?

Or does it make sense to have init_net gpl-exported, since we can access it through init_task which is exported without gpl mention ?

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux