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-22 15:09:08
Also in: lkml, virtualization

-----Original Message-----
From: Ben Hutchings [mailto:ben@decadent.org.uk]
Sent: Saturday, July 21, 2012 10:51 PM
To: KY Srinivasan
Cc: Olaf Hering; Greg KH; apw@canonical.com; devel@linuxdriverproject.org;
virtualization@lists.osdl.org; linux-kernel@vger.kernel.org;
netdev@vger.kernel.org
Subject: Re: [PATCH 00/13] drivers: hv: kvp

On Tue, 2012-07-03 at 15:24 +0000, KY Srinivasan wrote:
quoted
quoted
-----Original Message-----
From: Ben Hutchings [mailto:ben@decadent.org.uk]
Sent: Monday, July 02, 2012 3:57 PM
To: KY Srinivasan
Cc: Olaf Hering; Greg KH; apw@canonical.com; devel@linuxdriverproject.org;
virtualization@lists.osdl.org; linux-kernel@vger.kernel.org;
netdev@vger.kernel.org
Subject: Re: [PATCH 00/13] drivers: hv: kvp

On Mon, Jul 02, 2012 at 03:22:25PM +0000, KY Srinivasan wrote:
quoted
quoted
-----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:
quoted
1) IP address information and subnet mask: getifaddrs()
2) DNS information:  Parsing /etc/resolv.conf
3) /sbin/ip command for all the routing information
If you're interested in the *current* configuration then (1) and (3)
are OK but you should really use the rtnetlink API.

However, I suspect that Hyper-V assumes that current and persistent
configuration are the same thing, which is obviously not true in
general on Linux.  But if NetworkManager is running then you can
assume they are.
I am only interested in the currently active information. Why do you
recommend the use of rtnetlink API over the "ip" command. If I am not
mistaken, the ip command uses netlink to get the information.
[...]

'Screen-scraping' the output of administrative tools is not good
practice.  It may be the best you can do when writing a shell script,
but for a C program it's generaly less reliable and often more difficult
than using the underlying C API.
Ben,
Based on the input I have gotten, the consensus appears to be to have external
scripts to both GET and SET IP related configuration information. So, the KVP
daemon will need to parse information returned from these external distro specific
scripts (on the GET side).  While I agree with you that it is good to use C APIs, I currently
have the implementation using the "ip" command and it appears to be quite simple.
Furthermore, given that the information I need to pass back to the host needs to be
appropriately formatted (based on host specified format), I suspect using the "ip" command
may actually simplify the code.

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