netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Jay Vosburgh <fubar@us.ibm.com>
To: netdev@vger.kernel.org
Subject: Netlink usage question (for bonding comm with userspace)
Date: Mon, 25 Jan 2010 16:48:21 -0800	[thread overview]
Message-ID: <15914.1264466901@death.nxdomain.ibm.com> (raw)


	Could any netlink gurus comment on my questions?  I'm hoping to
figure out the right way to do what I need without working up patches
that end up being excellent examples of the wrong way.  I've looked
through the kernel, and it's almost a cases of too many choices (private
netlink, rtnetlink, connector, genetlink) to sort through.

	Background: I'm working on a bonding mode that involves two-way
communication between bonding itself and a user-space daemon, and I'm
trying to determine the best way to utilize netlink for this project
with an eye towards forwards compatibility with future expansion (e.g.,
general bonding setup via netlink).  For purposes of discussion, the
communication requires that bonding-specific requests, responses and
asynchronous events flow in both directions.

	I could, for this project, use a netlink_kernel_create and
socket(AF_NETLINK) pair to perform the communication (presumably adding
a NETLINK_BONDING or the like to <linux/netlink.h>).

	That, however, wouldn't dovetail with moving control of bonding
into iproute2 ("ip link add link bond0 type bond mode whatever"), and it
seems suboptimal to have two independent netlink gizmos in bonding.  I'm
not planning to implement full bonding control via netlink at this time,
but I don't want to do anything that would cause difficulty for doing so
in the future.

	I've done some prototyping with working through the existing
rtnetlink infrastructure, adding an RTNLGRP_BONDING, AF_BONDING, etc,
vaguely paralleling how the bridge code is architected.  What's unclear
to me is how to insert the bonding-specific request / response message
types into the rtnetlink infrastructure, or, indeed, if this is simply
not the right way to go about this.

	So, in summary:

	For user / kernel communications via netlink: private socket,
add to rtnetlink API, or something else (connector, genetlink, ...)?

	Is having private socket netlink and rtnetlink in the same
module a reasonable methodology?

	If rtnetlink is suitable, basic "do this" or "don't do this"
thoughts?  The various HOWTOs google finds for me concentrate on the
mechanisms, less so on interface selection / design.

	Thoughts?

	-J

---
	-Jay Vosburgh, IBM Linux Technology Center, fubar@us.ibm.com

             reply	other threads:[~2010-01-26  0:48 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-01-26  0:48 Jay Vosburgh [this message]
2010-01-26  0:51 ` Netlink usage question (for bonding comm with userspace) David Miller
2010-01-26  1:14   ` Jay Vosburgh
2010-01-26  2:03     ` David Miller
2010-01-26 11:25 ` Patrick McHardy

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=15914.1264466901@death.nxdomain.ibm.com \
    --to=fubar@us.ibm.com \
    --cc=netdev@vger.kernel.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).