From: Simon Horman <horms@verge.net.au>
To: Julius Volz <juliusv@google.com>
Cc: netdev@vger.kernel.org, lvs-devel@vger.kernel.org,
kaber@trash.net, vbusam@google.com,
Sven Wegener <sven.wegener@stealer.net>
Subject: Re: [PATCH RFC 00/24] IPVS: Add first IPv6 support to IPVS
Date: Thu, 28 Aug 2008 09:48:01 +1000 [thread overview]
Message-ID: <20080827234759.GA9336@verge.net.au> (raw)
In-Reply-To: <f4845fc0808270809nfd79798ob528778228645915@mail.gmail.com>
On Wed, Aug 27, 2008 at 05:09:52PM +0200, Julius Volz wrote:
> On Wed, Aug 27, 2008 at 9:17 AM, Simon Horman wrote:
> > Here is a second round of thoughts after having gone through the whole series.
>
> Thanks for wading through this!
>
> > [PATCH RFC 06/24] IPVS: Add debug macros for v4 and v6 address output
> >
> > * The #defines in ip_vs_dbg_addr seem a bit aquard.
> > Could it be rearanged liks this?
> >
> > static inline const char *ip_vs_dbg_addr(int af, char *buf, size_t buf_len,
> > const union nf_inet_addr *addr,
> > int *idx)
> > {
> > int len;
> > #ifdef CONFIG_IP_VS_IPV6
> > if (af == AF_INET6)
> > len = snprintf(&buf[*idx], buf_len - *idx, "[" NIP6_FMT "]",
> > NIP6(addr->in6)) + 1;
> > else
> > #endif
> > len = snprintf(&buf[*idx], buf_len - *idx, NIPQUAD_FMT,
> > NIPQUAD(addr->ip)) + 1;
> >
> > *idx += len;
> > return &buf[*idx - len];
> > }
>
> Yes, that looks nicer and more like the other cases!
>
> > * The comment "/* Only use from within IP_VS_DBG_BUF() macro */"
> > should also mention usage inside IP_VS_ERR_BUF()
>
> Right, thanks!
>
> > * If IP_VS_DBG_ADDR() is used more than once inside a single
> > IP_VS_DBG_BUF() or IP_VS_ERR_BUF() call, won't ip_vs_dbg_buf
> > be set to the value one of the calls to IP_VS_DBG_ADDR,
> > thus overwriting other calls and producing incorrect debugging
> > output?
>
> No, the buffer can receive several strings (but it's limited in size,
> so you have to be careful). An index to the current position in the
> buffer is maintained in the 'idx' variable between multiple
> IP_VS_DBG_ADDR calls used in the same outer macro.
>
> In general, I'm a bit unsure if this kind of macro magic is acceptable
> style, but it was the best way I could come up with to merge
> alternating v4 and v6 output without too much code duplication.
Thanks, I knew I was missing something obvious. From a style point of
view, I'm not sure either, but it seems like a reasonable start. Perhaps a
slight enhancement would be to add a BUG_ON() to ip_vs_dbg_addr() which will
trigger if ip_vs_dbg_buf will overflow.
> > [PATCH RFC 15/24] IPVS: Add support for IPv6 entry output in procfs files
> >
> > * The netlink-aware ipvsadm code also seems to allow for dotted-quad
> > representation of ipv4 addresses in proc. Is that representation used
> > or planned to be used?
>
> Good catch! No, I wasn't even aware of that feature in the new ipvsadm
> (but now I see it). I think it should be removed because it is
> effectively dead code (the existing v4 proc format shouldn't be
> changed). Vince, do you agree?
I only noticed it from fixing up the atio() problem in ipvsadm
that I posted a patch for the other day. Its not a big deal. But
it would be nice to eliminate dead code.
> > [PATCH RFC 17/24] IPVS: Make proc/net files output IPv6 entries
> >
> > * It might be cleaner to do:
> >
> > #ifdef CONFIG_IP_VS_IPV6
> > if (cp->af == AF_INET6)
> > seq_printf ...
> > else
> > #endif
> > seq_printf ...
>
> Yes, it's nicer this way around, I'll change that!
>
> > General
> >
> > * You need to reorder and or merge patches such that after each
> > patch is applied the code will build and run. It is ok for
> > a patch to add code which isn't used until a later patch is applied.
>
> Yes, I have found no nice way to achieve this yet :( At least not when
> reworking the complete end result (one big patch) into smaller
> patches, because there is so much interdependency and several logical
> changes within the same hunks (or even lines). I might have to
> manually do a step-by-step adding of the logical code features to get
> this... I will try to work on that next.
I realise this is a pain but unfortunately it is needed.
> > * Where possible please make lines <= 80 columns wide
>
> Yes, I will check for that more strictly now (unless it really looks
> nicer otherwise), thanks!
This is less critical, but thankfully easy :-)
prev parent reply other threads:[~2008-08-27 23:48 UTC|newest]
Thread overview: 59+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-08-20 16:15 [PATCH RFC 00/24] IPVS: Add first IPv6 support to IPVS Julius Volz
2008-08-20 16:15 ` [PATCH RFC 01/24] IPVS: Add genetlink interface definitions to ip_vs.h Julius Volz
2008-08-20 16:15 ` [PATCH RFC 02/24] IPVS: Add genetlink interface implementation Julius Volz
2008-08-20 16:15 ` [PATCH RFC 03/24] IPVS: Add CONFIG_IP_VS_IPV6 option for IPv6 support Julius Volz
2008-08-20 16:15 ` [PATCH RFC 04/24] IPVS: Change IPVS data structures to support IPv6 addresses Julius Volz
2008-08-20 16:15 ` [PATCH RFC 05/24] IPVS: Add general v4/v6 helper functions / data structures Julius Volz
2008-08-20 16:15 ` [PATCH RFC 06/24] IPVS: Add debug macros for v4 and v6 address output Julius Volz
2008-08-20 16:15 ` [PATCH RFC 07/24] IPVS: Convert existing debug uses to use new macros Julius Volz
2008-08-20 16:15 ` [PATCH RFC 08/24] IPVS: Make protocol handler functions support IPv6 Julius Volz
2008-08-21 13:29 ` Brian Haley
2008-08-21 13:52 ` Julius Volz
2008-08-21 14:08 ` Brian Haley
2008-08-21 14:55 ` Julius Volz
2008-08-21 15:12 ` Brian Haley
2008-08-21 15:28 ` Julius Volz
2008-08-20 16:15 ` [PATCH RFC 09/24] IPVS: Add IPv6 Netfilter hooks and add/modify support functions Julius Volz
2008-08-20 16:15 ` [PATCH RFC 10/24] IPVS: Extend scheduling functions for IPv6 support Julius Volz
2008-08-27 6:28 ` Simon Horman
2008-08-27 16:02 ` Julius Volz
2008-08-20 16:15 ` [PATCH RFC 11/24] IPVS: Add IPv6 xmit functions Julius Volz
2008-08-20 16:15 ` [PATCH RFC 12/24] IPVS: Extend functions for getting/creating connections Julius Volz
2008-08-20 16:15 ` [PATCH RFC 13/24] IPVS: Add IPv6 support to ip_vs_conn_hashkey() Julius Volz
2008-08-20 16:15 ` [PATCH RFC 14/24] IPVS: Turn off FTP application helper for IPv6 Julius Volz
2008-08-20 16:15 ` [PATCH RFC 15/24] IPVS: Add support for IPv6 entry output in procfs files Julius Volz
2008-08-20 16:15 ` [PATCH RFC 16/24] IPVS: Add function to determine if IPv6 address is local Julius Volz
2008-08-20 16:15 ` [PATCH RFC 17/24] IPVS: Make proc/net files output IPv6 entries correctly Julius Volz
2008-08-20 16:15 ` [PATCH RFC 18/24] IPVS: Convert dest/service lookup functions Julius Volz
2008-08-20 16:15 ` [PATCH RFC 19/24] IPVS: Add IPv6 support flag to schedulers Julius Volz
2008-08-21 1:48 ` Simon Horman
2008-08-21 10:21 ` Julius Volz
2008-08-21 13:23 ` Simon Horman
2008-08-20 16:15 ` [PATCH RFC 20/24] IPVS: Add validity checks when adding/editing v6 services Julius Volz
2008-08-20 16:15 ` [PATCH RFC 21/24] IPVS: Only expose IPv4 entries through sockopt interface Julius Volz
2008-08-20 16:15 ` [PATCH RFC 22/24] IPVS: Add IPv6 support to genetlink interface Julius Volz
2008-08-20 16:15 ` [PATCH RFC 23/24] IPVS: Small address/af usage fixups Julius Volz
2008-08-20 16:15 ` [PATCH RFC 24/24] IPVS: Add notes about IPv6 changes Julius Volz
2008-08-21 1:17 ` [PATCH RFC 00/24] IPVS: Add first IPv6 support to IPVS Simon Horman
2008-08-21 9:59 ` Julius Volz
2008-08-21 21:29 ` Simon Horman
2008-08-21 22:01 ` Julius Volz
2008-08-27 5:59 ` Simon Horman
2008-08-21 22:05 ` Simon Horman
2008-08-22 9:56 ` Julius Volz
2008-08-22 10:05 ` Graeme Fowler
2008-08-22 10:49 ` Julius Volz
2008-08-22 11:23 ` Sven Wegener
2008-08-22 12:14 ` Julius Volz
2008-08-23 9:20 ` Graeme Fowler
2008-08-23 15:22 ` Joseph Mack NA3T
2008-08-23 16:31 ` Graeme Fowler
2008-08-24 2:13 ` Joseph Mack NA3T
2008-08-23 23:07 ` Julius Volz
2008-08-24 1:40 ` Joseph Mack NA3T
2008-08-27 6:09 ` Simon Horman
2008-08-27 15:24 ` Julius Volz
2008-08-27 23:49 ` Simon Horman
2008-08-27 7:17 ` Simon Horman
2008-08-27 15:09 ` Julius Volz
2008-08-27 23:48 ` Simon Horman [this message]
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=20080827234759.GA9336@verge.net.au \
--to=horms@verge.net.au \
--cc=juliusv@google.com \
--cc=kaber@trash.net \
--cc=lvs-devel@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=sven.wegener@stealer.net \
--cc=vbusam@google.com \
/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).