From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jan Friesse Date: Thu, 08 Sep 2011 11:40:27 +0200 Subject: [Cluster-devel] [PATCH] cman: default to 2 different mcast addresses in RRP mode and set rrp_problem_count_threshold In-Reply-To: <1315473069-28447-1-git-send-email-fdinitto@redhat.com> References: <1315473069-28447-1-git-send-email-fdinitto@redhat.com> Message-ID: <4E688D8B.2050706@redhat.com> List-Id: To: cluster-devel.redhat.com MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit After description is changed, ACK Fabio M. Di Nitto napsal(a): > Resolves: rhbz#735912 > > Signed-off-by: Fabio M. Di Nitto > --- > cman/daemon/cman-preconfig.c | 16 ++++++++++++---- > config/tools/xml/cluster.rng.in.head | 8 +++++++- > 2 files changed, 19 insertions(+), 5 deletions(-) > > diff --git a/cman/daemon/cman-preconfig.c b/cman/daemon/cman-preconfig.c > index 64f505f..d5e7a92 100644 > --- a/cman/daemon/cman-preconfig.c > +++ b/cman/daemon/cman-preconfig.c > @@ -393,13 +393,14 @@ static uint16_t generate_cluster_id(char *name) > return value & 0xFFFF; > } > > -static char *default_mcast(char *node, uint16_t clusterid) > +static char *default_mcast(char *node, int altiface) > { > struct addrinfo *ainfo; > struct addrinfo ahints; > int ret; > int family; > static char addr[132]; > + uint16_t clusterid = cluster_id + altiface; > > memset(&ahints, 0, sizeof(ahints)); > > @@ -691,7 +692,7 @@ static int get_nodename(struct objdb_iface_ver0 *objdb) > } > > if (!mcast_name) { > - mcast_name = default_mcast(nodename, cluster_id); > + mcast_name = default_mcast(nodename, PRIMARY_IFACE); > > } > if (!mcast_name) > @@ -778,7 +779,7 @@ static int get_nodename(struct objdb_iface_ver0 *objdb) > objdb_get_int(objdb, alt_object, "ttl", &altttl, ttl); > > if (objdb_get_string(objdb, alt_object, "mcast", &mcast)) { > - mcast = mcast_name; > + mcast = default_mcast(nodename, ALT_IFACE); > } > > if (add_ifaddr(objdb, mcast, node, portnum, altttl, > @@ -992,6 +993,13 @@ static void add_cman_overrides(struct objdb_iface_ver0 *objdb) > } > } > > + if (objdb_get_string(objdb, object_handle, "rrp_problem_count_threshold", &value)) { > + if (num_interfaces > 1) { > + objdb->object_key_create_typed(object_handle, "rrp_problem_count_threshold", > + "3", 2, OBJDB_VALUETYPE_STRING); > + } > + } > + > if (objdb_get_string(objdb, object_handle, "secauth", &value)) { > sprintf(tmp, "%d", 1); > objdb->object_key_create_typed(object_handle, "secauth", > @@ -1136,7 +1144,7 @@ static int set_noccs_defaults(struct objdb_iface_ver0 *objdb) > num_nodenames = 1; > > if (!mcast_name) { > - mcast_name = default_mcast(nodename, cluster_id); > + mcast_name = default_mcast(nodename, PRIMARY_IFACE); > } > > /* This will increase as nodes join the cluster */ > diff --git a/config/tools/xml/cluster.rng.in.head b/config/tools/xml/cluster.rng.in.head > index 1afa9e8..8ca696a 100644 > --- a/config/tools/xml/cluster.rng.in.head > +++ b/config/tools/xml/cluster.rng.in.head > @@ -257,7 +257,7 @@ To validate your cluster.conf against this schema, run: > rha:sample="5"/> > > > > @@ -274,6 +274,12 @@ To validate your cluster.conf against this schema, run: > directives are specified, only active or passive may be > chosen." rha:sample="active"/> > > + + rha:description="This specifies the number of times a problem is detected > + with a link before setting the link faulty. Once a link is set faulty, no > + more data is transmitted upon it. The default is 10 problem counts." > + rha:sample="3"/> > + > >