All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ian Kent <ikent-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
To: Chuck Lever <chucklever-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
Cc: Steve Dickson <SteveD-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>,
	autofs mailing list
	<autofs-CPWUtch7KCBzeIdxy0IIJw@public.gmane.org>,
	Linux NFS Mailing List
	<linux-nfs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
	Libtirpc Devel List
	<libtirpc-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org>
Subject: Re: [Libtirpc-devel] [PATCH] Autofs configure fails to detect IPv6 when libtirpc is enabled
Date: Wed, 27 Jul 2011 14:37:51 +0800	[thread overview]
Message-ID: <1311748671.3473.29.camel@perseus.themaw.net> (raw)
In-Reply-To: <1311737951.3473.28.camel-jgopVnDzZD88qxobedHYj6xOck334EZe@public.gmane.org>

On Wed, 2011-07-27 at 11:39 +0800, Ian Kent wrote:
> On Tue, 2011-07-26 at 23:30 -0400, Chuck Lever wrote:
> > On Jul 26, 2011, at 10:40 PM, Ian Kent wrote:
> > 
> > > On Tue, 2011-07-26 at 22:09 -0400, Chuck Lever wrote:
> > >> On Jul 26, 2011, at 9:23 PM, Ian Kent wrote:
> > >> 
> > >>> On Wed, 2011-07-27 at 08:57 +0800, Ian Kent wrote:
> > >>>> On Tue, 2011-07-26 at 17:13 -0400, Steve Dickson wrote:
> > >>>>> 
> > >>>>> On 07/26/2011 10:50 AM, Chuck Lever wrote:
> > >>>>>> 
> > >>>>>> On Jul 26, 2011, at 2:29 PM, Steve Dickson wrote:
> > >>>>>> 
> > >>>>>>> From: Ian Kent <raven-PKsaG3nR2I+sTnJN9+BGXg@public.gmane.org>
> > >>>>>>> 
> > >>>>>>> The IPv6 client functions clntudp6_bufcreate(), clntudp6_create and
> > >>>>>>> clnttcp6_create and the server functions svcudp6_bufcreate(),
> > >>>>>>> svctcp6_create() and svcudp6_create() are not included in the library
> > >>>>>>> whe libtirpc is built.
> > >>>>>> 
> > >>>>>> Are these part of the libtirpc standard API?  I'm not sure why we would need them if, say, Solaris does not support these.
> > >>>>> It appears they are not since they are not mentioned the man pages.....
> > >>>>> But, at least in the autofs code, they are expected
> > >>>>>  https://bugzilla.redhat.com/show_bug.cgi?id=711956#c0
> > >>>>> 
> > >>>>> Ian, where else are these routines defined? 
> > >>>> 
> > >>>> Now that I look I can't find the original source tar that was used for
> > >>>> libtirpc, thought I had it.
> > >>> 
> > >>> Found what I had.
> > >>> 
> > >>> AFAICT what I think was the original source doesn't have any IPv6 code
> > >>> that I can see.
> > >>> 
> > >>> Worse, these functions were excluded with the "#ifdef INET6_NOT_USED"
> > >>> macro as far back as libtirpc version 0.1.5 so, my bad, sorry.
> > >>> 
> > >>>> 
> > >>>> The story is that long ago when I changed autofs to use libtirpc (to
> > >>>> make it ready for IPv6) I found these functions in the source and they
> > >>>> were (obviously) the IPv6 counterparts for the corresponding IPv4
> > >>>> functions which I was already using, so I used them. It took me quite a
> > >>>> while to realize my code wasn't working and then I found that somewhere
> > >>>> along the line they have been excluded, oops!
> > >>>> 
> > >>>> If there are to be no IPv6 counterparts for the corresponding IPv4
> > >>>> functions which functions should I use then?
> > >>> 
> > >>> So what can I use?
> > >>> 
> > >>> It seems to me that these functions would be useful for people porting
> > >>> code that uses the corresponding IPv4 functions so could we define them
> > >>> please. At some point someone must have had that same idea ....
> > >> 
> > >> It looks to me like these functions were part of an original attempt
> > >> at IPv6 support that was abandoned long ago.  They are not part of
> > >> TI-RPC, but as you observed, they are merely IPv6 versions of the
> > >> legacy RPC API. I don't see these implemented in glibc, for example.
> > >> 
> > >> For IPv6 support, use functions that are part of the modern libtirpc
> > >> API.  This is described in Sun doc 816-1435.  You probably will be
> > >> most successful with the "simplified interface" which is described in
> > >> Chapter 4. You might need somewhat more extensive surgery since I'm
> > >> guessing you have separate code paths to invoke the IPv4 and IPv6
> > >> legacy RPC functions; generally speaking that should not be needed
> > >> when using the libtirpc API.
> > > 
> > > I doubt the simplified interface will be adequate since this code was
> > > written because of a need for greater control over timeouts. Perhaps
> > > that won't be the case, I don't know yet.
> > 
> > If you want control over connection timeouts, use the expert-level or
> > bottom-level interfaces.  Otherwise you can set per-RPC timeouts when
> > clnt_call(3t) is invoked.  nfs-utils has some example code
> > (support/nfs/rpc_socket.c is one place to look).
> > 
> > > Your suggestion amounts to saying I need to re-write all my RPC
> > code.
> > 
> > The substantial change with client-side TI-RPC is how CLIENTs are
> > created.  The other RPC operations are similar or the same as they
> > were with the legacy API.  Once you get over getnetconfigent(3t) it's
> > really not as bad as it looks.
> > 
> 
> Sure, but it's the dependent code in autofs that uses the RPC routines
> that will force me to keep the interface. But, like I said, it may be a
> non-issue since I can lift these routines straight out of libtirpc (as
> long as I attribute copyright according to the comment in the source
> file).

That's not going to be straight forward either.

> 
> Ian


--
To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

WARNING: multiple messages have this Message-ID (diff)
From: Ian Kent <ikent@redhat.com>
To: Chuck Lever <chucklever@gmail.com>
Cc: Steve Dickson <SteveD@redhat.com>,
	autofs mailing list <autofs@linux.kernel.org>,
	Linux NFS Mailing List <linux-nfs@vger.kernel.org>,
	Libtirpc Devel List <libtirpc-devel@lists.sourceforge.net>
Subject: Re: [Libtirpc-devel] [PATCH] Autofs configure fails to detect IPv6 when libtirpc is enabled
Date: Wed, 27 Jul 2011 14:37:51 +0800	[thread overview]
Message-ID: <1311748671.3473.29.camel@perseus.themaw.net> (raw)
In-Reply-To: <1311737951.3473.28.camel@perseus.themaw.net>

On Wed, 2011-07-27 at 11:39 +0800, Ian Kent wrote:
> On Tue, 2011-07-26 at 23:30 -0400, Chuck Lever wrote:
> > On Jul 26, 2011, at 10:40 PM, Ian Kent wrote:
> > 
> > > On Tue, 2011-07-26 at 22:09 -0400, Chuck Lever wrote:
> > >> On Jul 26, 2011, at 9:23 PM, Ian Kent wrote:
> > >> 
> > >>> On Wed, 2011-07-27 at 08:57 +0800, Ian Kent wrote:
> > >>>> On Tue, 2011-07-26 at 17:13 -0400, Steve Dickson wrote:
> > >>>>> 
> > >>>>> On 07/26/2011 10:50 AM, Chuck Lever wrote:
> > >>>>>> 
> > >>>>>> On Jul 26, 2011, at 2:29 PM, Steve Dickson wrote:
> > >>>>>> 
> > >>>>>>> From: Ian Kent <raven@themaw.net>
> > >>>>>>> 
> > >>>>>>> The IPv6 client functions clntudp6_bufcreate(), clntudp6_create and
> > >>>>>>> clnttcp6_create and the server functions svcudp6_bufcreate(),
> > >>>>>>> svctcp6_create() and svcudp6_create() are not included in the library
> > >>>>>>> whe libtirpc is built.
> > >>>>>> 
> > >>>>>> Are these part of the libtirpc standard API?  I'm not sure why we would need them if, say, Solaris does not support these.
> > >>>>> It appears they are not since they are not mentioned the man pages.....
> > >>>>> But, at least in the autofs code, they are expected
> > >>>>>  https://bugzilla.redhat.com/show_bug.cgi?id=711956#c0
> > >>>>> 
> > >>>>> Ian, where else are these routines defined? 
> > >>>> 
> > >>>> Now that I look I can't find the original source tar that was used for
> > >>>> libtirpc, thought I had it.
> > >>> 
> > >>> Found what I had.
> > >>> 
> > >>> AFAICT what I think was the original source doesn't have any IPv6 code
> > >>> that I can see.
> > >>> 
> > >>> Worse, these functions were excluded with the "#ifdef INET6_NOT_USED"
> > >>> macro as far back as libtirpc version 0.1.5 so, my bad, sorry.
> > >>> 
> > >>>> 
> > >>>> The story is that long ago when I changed autofs to use libtirpc (to
> > >>>> make it ready for IPv6) I found these functions in the source and they
> > >>>> were (obviously) the IPv6 counterparts for the corresponding IPv4
> > >>>> functions which I was already using, so I used them. It took me quite a
> > >>>> while to realize my code wasn't working and then I found that somewhere
> > >>>> along the line they have been excluded, oops!
> > >>>> 
> > >>>> If there are to be no IPv6 counterparts for the corresponding IPv4
> > >>>> functions which functions should I use then?
> > >>> 
> > >>> So what can I use?
> > >>> 
> > >>> It seems to me that these functions would be useful for people porting
> > >>> code that uses the corresponding IPv4 functions so could we define them
> > >>> please. At some point someone must have had that same idea ....
> > >> 
> > >> It looks to me like these functions were part of an original attempt
> > >> at IPv6 support that was abandoned long ago.  They are not part of
> > >> TI-RPC, but as you observed, they are merely IPv6 versions of the
> > >> legacy RPC API. I don't see these implemented in glibc, for example.
> > >> 
> > >> For IPv6 support, use functions that are part of the modern libtirpc
> > >> API.  This is described in Sun doc 816-1435.  You probably will be
> > >> most successful with the "simplified interface" which is described in
> > >> Chapter 4. You might need somewhat more extensive surgery since I'm
> > >> guessing you have separate code paths to invoke the IPv4 and IPv6
> > >> legacy RPC functions; generally speaking that should not be needed
> > >> when using the libtirpc API.
> > > 
> > > I doubt the simplified interface will be adequate since this code was
> > > written because of a need for greater control over timeouts. Perhaps
> > > that won't be the case, I don't know yet.
> > 
> > If you want control over connection timeouts, use the expert-level or
> > bottom-level interfaces.  Otherwise you can set per-RPC timeouts when
> > clnt_call(3t) is invoked.  nfs-utils has some example code
> > (support/nfs/rpc_socket.c is one place to look).
> > 
> > > Your suggestion amounts to saying I need to re-write all my RPC
> > code.
> > 
> > The substantial change with client-side TI-RPC is how CLIENTs are
> > created.  The other RPC operations are similar or the same as they
> > were with the legacy API.  Once you get over getnetconfigent(3t) it's
> > really not as bad as it looks.
> > 
> 
> Sure, but it's the dependent code in autofs that uses the RPC routines
> that will force me to keep the interface. But, like I said, it may be a
> non-issue since I can lift these routines straight out of libtirpc (as
> long as I attribute copyright according to the comment in the source
> file).

That's not going to be straight forward either.

> 
> Ian



  parent reply	other threads:[~2011-07-27  6:37 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-07-26 12:29 [PATCH] Autofs configure fails to detect IPv6 when libtirpc is enabled Steve Dickson
2011-07-26 14:50 ` [Libtirpc-devel] " Chuck Lever
     [not found]   ` <8A84CF7D-9579-4645-AE5D-FE8358F466C0-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2011-07-26 21:13     ` Steve Dickson
2011-07-26 21:13       ` Steve Dickson
     [not found]       ` <4E2F2DE6.5030500-AfCzQyP5zfLQT0dZR+AlfA@public.gmane.org>
2011-07-27  0:57         ` Ian Kent
2011-07-27  0:57           ` Ian Kent
     [not found]           ` <1311728231.3473.7.camel-jgopVnDzZD88qxobedHYj6xOck334EZe@public.gmane.org>
2011-07-27  1:23             ` Ian Kent
2011-07-27  1:23               ` Ian Kent
     [not found]               ` <1311729784.3473.14.camel-jgopVnDzZD88qxobedHYj6xOck334EZe@public.gmane.org>
2011-07-27  2:02                 ` Ian Kent
2011-07-27  2:02                   ` Ian Kent
     [not found]                   ` <1311732168.3473.16.camel-jgopVnDzZD88qxobedHYj6xOck334EZe@public.gmane.org>
2011-07-27  2:10                     ` Chuck Lever
2011-07-27  2:10                       ` Chuck Lever
2011-07-27  2:09                 ` Chuck Lever
2011-07-27  2:09                   ` Chuck Lever
     [not found]                   ` <A8F3853A-9C75-4F65-8EEB-88DD13C3FF9B-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2011-07-27  2:40                     ` Ian Kent
2011-07-27  2:40                       ` Ian Kent
     [not found]                       ` <1311734445.3473.19.camel-jgopVnDzZD88qxobedHYj6xOck334EZe@public.gmane.org>
2011-07-27  3:13                         ` Ian Kent
2011-07-27  3:13                           ` Ian Kent
2011-07-27  3:30                         ` Chuck Lever
2011-07-27  3:30                           ` Chuck Lever
     [not found]                           ` <8A86A2AE-A1C7-473E-931A-CF03BD690CE6-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2011-07-27  3:39                             ` Ian Kent
2011-07-27  3:39                               ` Ian Kent
     [not found]                               ` <1311737951.3473.28.camel-jgopVnDzZD88qxobedHYj6xOck334EZe@public.gmane.org>
2011-07-27  6:37                                 ` Ian Kent [this message]
2011-07-27  6:37                                   ` Ian Kent
2011-07-28  2:26                             ` Ian Kent
2011-07-28  2:26                               ` Ian Kent
     [not found]                               ` <1311819970.3332.3.camel-jgopVnDzZD88qxobedHYj6xOck334EZe@public.gmane.org>
2011-07-28 11:20                                 ` Chuck Lever
2011-07-28 11:20                                   ` Chuck Lever
     [not found]                                   ` <E21E3A76-96FD-4F44-8187-70532FD3D6AD-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2011-07-28 14:33                                     ` Ian Kent
2011-07-28 14:33                                       ` Ian Kent
     [not found]                                       ` <1311863605.3332.17.camel-jgopVnDzZD88qxobedHYj6xOck334EZe@public.gmane.org>
2011-07-28 14:45                                         ` Chuck Lever
2011-07-28 14:45                                           ` Chuck Lever

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=1311748671.3473.29.camel@perseus.themaw.net \
    --to=ikent-h+wxahxf7alqt0dzr+alfa@public.gmane.org \
    --cc=SteveD-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org \
    --cc=autofs-CPWUtch7KCBzeIdxy0IIJw@public.gmane.org \
    --cc=chucklever-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
    --cc=libtirpc-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org \
    --cc=linux-nfs-u79uwXL29TY76Z2rM5mHXA@public.gmane.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.