Thread (9 messages) flat view 9 messages, 4 authors, 2012-07-22

RE: [PATCH 00/13] drivers: hv: kvp

From: KY Srinivasan <kys@microsoft.com>
Date: 2012-07-02 15:22:49
Also in: lkml, virtualization

-----Original Message-----
From: Olaf Hering [mailto:olaf@aepfle.de]
Sent: Thursday, June 28, 2012 10:24 AM
To: KY Srinivasan
Cc: Greg KH; apw@canonical.com; devel@linuxdriverproject.org;
virtualization@lists.osdl.org; linux-kernel@vger.kernel.org
Subject: Re: [PATCH 00/13] drivers: hv: kvp

On Tue, Jun 26, KY Srinivasan wrote:
quoted
quoted
From: Greg KH [mailto:gregkh@linuxfoundation.org]
The fact that it was Red Hat specific was the main part, this should be
done in a standard way, with standard tools, right?
The reason I asked this question was to make sure I address these
issues in addition to whatever I am debugging now. I use the standard
tools and calls to retrieve all the IP configuration. As I look at
each distribution the files they keep persistent IP configuration
Information is different and that is the reason I chose to start with
RedHat. If there is a standard way to store the configuration, I will
do that.

KY,

instead of using system() in kvp_get_ipconfig_info and kvp_set_ip_info,
wouldnt it be easier to call an external helper script which does all
the distribution specific work? Just define some API to pass values to
the script, and something to read values collected by the script back
into the daemon.
On the "Get" side I mostly use standard commands/APIs to get all the information:

1) IP address information and subnet mask: getifaddrs()
2) DNS information:  Parsing /etc/resolv.conf
3) /sbin/ip command for all the routing information
4)  Parse /etc/sysconfig/network-scripts/ifcfg-ethx for boot protocol

As you can see, all but the boot protocol is gathered using the "standard distro
independent mechanisms. I was looking at NetworkManager cli and it looks
like I could gather all the information except the boot protocol information. I am 
not sure how to gather the boot protocol information in a distro independent fashion.

On the SET side, I need to persistently store the settings in an appropriate configuration
file and flush these settings down so that the interface is appropriately configured. It is here
that I am struggling to find a distro independent way of doing things. It would be great if I can
use NetworkManager cli (nmcli) to accomplish this. Any help here would be greatly appreciated.

While I toyed with your proposal, I feel it just pushes the problem out of the daemon code -
we would still need to write distro specific scripts. If this approach is something that everybody
is comfortable with, I can take a stab at implementing that. 
If the work is done in a script it will be much easier for an admin to
debug and adjust it.

I think there is no standard way to configure all relevant distros in
the same way. Maybe one day NetworkManager can finally handle all
possible ways to configure network related things. But until that
happens the config files need to be adjusted manually.



Some of the functions have deep indention levels due to 'while() {
switch() }' usage. Perhaps such code could be moved into its own
function so that lines dont need to be wrapped that much due to the odd
80 column limit.
I will take care of this. As suggested by Greg, I am adding netdev developers here to
seek their input. 

Regards,

K. Y
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help