ports/80217: FreeVRRPd doesn't allow to specify advertisement interval

Fernando Schapachnik fernando at mecon.gov.ar
Thu Apr 21 16:40:29 UTC 2005


>Number:         80217
>Category:       ports
>Synopsis:       FreeVRRPd doesn't allow to specify advertisement interval
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Thu Apr 21 16:40:26 GMT 2005
>Closed-Date:
>Last-Modified:
>Originator:     Fernando Schapachnik
>Release:        FreeBSD 5.3-RELEASE-p5 i386
>Organization:
>Environment:
System: FreeBSD bal740r0.mecon.gov.ar 5.3-RELEASE-p5 FreeBSD 5.3-RELEASE-p5 #3: Tue Jan 18 12:25:08 ART 2005 root at bal740r0.mecon.gov.ar:/usr/obj/usr/src/sys/BAL740R0 i386


	
>Description:

	FreeVRRPd (net/freevrrpd) doesn't allow to specify the "advertisement interval".

	Such interval is interesting because the "master down interval" is computed
	(per RFC) as 3*advertisement interval+skew. Setting it to higher values
	allows to avoid some false positives that can arise from very transient
	network failures. If you are starting and stopping services, and switching
	databases via VRRP, you might not want be really sure that the master is down.
	
>How-To-Repeat:
	
>Fix:

	The following patch adds the configuration variable advinterval, which controls
	said interval.

--- vrrp_conf.c.orig	Thu Apr 21 13:23:07 2005
+++ vrrp_conf.c	Thu Apr 21 11:13:29 2005
@@ -231,6 +231,11 @@
 				vr->priority = atoi(temp[0]);
 				vrrp_conf_freeargs(temp);
 			}
+			if (!strcmp(option, "advinterval")) {
+				temp = vrrp_conf_split_args(arg, ',');
+				vr->adv_int = atoi(temp[0]);
+				vrrp_conf_freeargs(temp);
+			}
 			if (!strcmp(option, "password")) {
 				temp = vrrp_conf_split_args(arg, ',');
 				vr->password = (char *)calloc(8, 1);
--- freevrrpd.conf.sample.orig	Thu Apr 21 13:31:45 2005
+++ freevrrpd.conf.sample	Thu Apr 21 13:34:54 2005
@@ -33,6 +33,13 @@
 # don't, all BACKUP VRRP packets will be rejected.
 password = vrid1
 
+# advertisement interval (seconds). this is the time between advertisements.
+# also indirectly controls "master timeout" (master timeout = 3*advertisement
+# interval+skew, see RFC 3768 for details), which is the number of seconds
+# to wait before declaring the master dead. be sure to set the same value in
+# both master and slave. defaults to 1 second.
+advinterval = 1
+
 # now, you can specify a script name to execute when this host became master
 # of this VRID
 masterscript = "/usr/local/bin/master_script.sh"
	


>Release-Note:
>Audit-Trail:
>Unformatted:



More information about the freebsd-ports-bugs mailing list