LVS
lvs-devel
Google
 
Web LinuxVirtualServer.org

Re: [PATCH 2/2] IPVS: Add genetlink interface implementation

To: "Thomas Graf" <tgraf@xxxxxxx>
Subject: Re: [PATCH 2/2] IPVS: Add genetlink interface implementation
Cc: "Patrick McHardy" <kaber@xxxxxxxxx>, netdev@xxxxxxxxxxxxxxx, lvs-devel@xxxxxxxxxxxxxxx, vbusam@xxxxxxxxxx, horms@xxxxxxxxxxxx, davem@xxxxxxxxxxxxx
From: "Julius Volz" <juliusv@xxxxxxxxxx>
Date: Fri, 11 Jul 2008 01:16:44 +0200
On Thu, Jul 10, 2008, Thomas Graf wrote:
> Personally I would never use a GET id to send any data at all. My main
> focus is on trying to make message protocols self documenting. If a
> certain message type has multiple meanings depending on the direction
> it will make it harder to understand and harder to debug from a protocol
> standpoint.

Makes sense so far, but:

> The common netlink semantics are
>
>  CMD_OBJ_NEW - create or update objects as described in the message
>               content.

If a single operation just means create _or_ update (NLM_F_EXCL, etc.
flags don't work with genetlink), then ipvsadm would have to query for
an entry first, which is racy and ugly. So I'd like to keep ADD/EDIT
in separate commands. But then I need a different response id (or just
use the ADD id?) for a GET.

>  CMD_OBJ_SET - rarely used, update a static object which doesn't have
>               to be created or added. asme as OBJ_NEW otherwise.

Like in the case of sending the GET_INFO or GET_TIMEOUT replies.

>  CMD_OBJ_DEL - delete object described in the message
>  CMD_OBJ_GET - search for a object as described in the message and
>               send a CMD_OBJ_NEW as reply including the full object.
>
>               with NLM_F_DUMP: iterate over all objects and send a
>               CMD_OBJ_NEW for each object. This request often carries
>               no additional data.

Ok, that makes sense too and is pretty much what I have.

Julius

-- 
Google Switzerland GmbH
--
To unsubscribe from this list: send the line "unsubscribe lvs-devel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

<Prev in Thread] Current Thread [Next in Thread>