From mboxrd@z Thu Jan 1 00:00:00 1970 From: Fabio M. Di Nitto Date: Thu, 01 Dec 2011 09:43:57 +0100 Subject: [Cluster-devel] [PATCH] config: drastically improve cman RRP configuration handling In-Reply-To: <4ED731E4.2030303@redhat.com> References: <1322657478-19020-1-git-send-email-fdinitto@redhat.com> <4ED731E4.2030303@redhat.com> Message-ID: <4ED73E4D.60104@redhat.com> List-Id: To: cluster-devel.redhat.com MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit On 12/1/2011 8:51 AM, Jan Friesse wrote: > Patch looks good with one question. > > Fabio M. Di Nitto wrote: >> From: "Fabio M. Di Nitto" >> >> - don't allow configuration of more than 2 rings >> - allow overrided of alternate mcast address and port via >> envars >> - when using broadcast, set different ports on second ring. >> this also required a substantial change in transport handling >> ... >> + if (!strcmp(altmcast_name, mcast_name) && >> + ((altportnum == portnum) || (altportnum == portnum - 1) || (portnum == altportnum - 1))) { >> + sprintf(error_reason, "Alternate communication channel (mcast: %s ports: %d,%d) cannot use\n" >> + "same address and ports of primary channel (mcast: %s ports: %d,%d)", >> + altmcast_name, altportnum, altportnum - 1, >> + mcast_name, portnum, portnum - 1); > > (altportnum == portnum - 1) || (portnum == altportnum - 1)) -> > (altportnum == portnum - 1) || (altportnum == portnum + 1)), but > corosync uses only port and port -1, so second condition seems to be > useless (on the other hand, it doesn't hurt anything). You have a total of 4 ports to check and that can be resolved with 3 tests. Example: ring0 port0 portnum ring0 port1 portnum - 1 ring1 port0 altportnum ring1 port1 altportnum - 1 if r0p0 == r1p0 (altportnum == portnum) (this also catches r0p1 == r1p1 so no need to repeat the test) if r0p1 == r1p0 (altportnum == portnum - 1) if r0p0 == r1p1 (portnum == altportnum - 1) So effectively with 3 tests you catch all conditions, unless of course I made a mistake in the coding or in the thinking that is entirely possible :) Thanks for the review! Fabio