From owner-freebsd-questions@FreeBSD.ORG Tue Feb 7 16:02:08 2012 Return-Path: Delivered-To: freebsd-questions@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id DAA9F106566B for ; Tue, 7 Feb 2012 16:02:08 +0000 (UTC) (envelope-from ml@my.gd) Received: from mail-bk0-f54.google.com (mail-bk0-f54.google.com [209.85.214.54]) by mx1.freebsd.org (Postfix) with ESMTP id 6C1B48FC0C for ; Tue, 7 Feb 2012 16:02:07 +0000 (UTC) Received: by bkbzx1 with SMTP id zx1so7841574bkb.13 for ; Tue, 07 Feb 2012 08:02:06 -0800 (PST) Received: by 10.204.152.219 with SMTP id h27mr11047138bkw.40.1328630526286; Tue, 07 Feb 2012 08:02:06 -0800 (PST) Received: from dfleuriot-at-hi-media.com ([83.167.62.196]) by mx.google.com with ESMTPS id jd17sm57066550bkb.4.2012.02.07.08.02.04 (version=SSLv3 cipher=OTHER); Tue, 07 Feb 2012 08:02:05 -0800 (PST) Message-ID: <4F314AFB.8080901@my.gd> Date: Tue, 07 Feb 2012 17:02:03 +0100 From: Damien Fleuriot User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:10.0) Gecko/20120129 Thunderbird/10.0 MIME-Version: 1.0 To: freebsd-questions@freebsd.org References: In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Subject: Re: From analysis of a simple ifstated.conf to more compex example X-BeenThere: freebsd-questions@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: User questions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 Feb 2012 16:02:08 -0000 On 2/7/12 3:36 PM, peter knezel wrote: > Hello all, > > I would like to ask somebody to explain me how the ifstated works according to > the following configuration file. > I have three virtual carp interfaces carp0,carp1 and carp2. > > I try to understand the following setting: > The server is in state one (all carp interfaces are up) and if there > is carp down of any: > one (carp0 or carp1 or carp2), > two ([carp0 and carp1] or [carp0 and carp2] or [carp1 and carp2]), > three interfaces (carp 0 and carp1 and carp2), server > runs the script testdown.sh and put the server into state two. > If all carp interfaces are up, the server runs the testup.sh and set > the state to one. > That is my understanding. > Is it the way the system works? > Or am I wrong? > > === > init-state one > > net = '( "ifconfig -a -u |grep carp0 > /dev/null" every 3 && "ifconfig -a -u > |grep carp1 > /dev/null" every 3 && "ifconfig -a -u |grep carp2 > /dev/null" > every 3)' > > state one { > if ( ! $net ) { > run "/usr/local/testdown.sh" > set-state two > } > } > > state two { > if ( $net ) { > run "/usr/local/testup.sh" > set-state one > } > } > === > > Is there any possibility to define and set ifstated.conf that reacts when: > > any one of the carp interfaces is down - followed by another any > other carp interface down > > > I tried to define states: > > duu ="!carp0.link.up && carp1.link.up && carp2.link.up" > udu ="carp0.link.up && !carp1.link.up && carp2.link.up" > uud ="carp0.link.up && carp1.link.up && !carp2.link.up" > ddu ="!carp0.link.up && !carp1.link.up" > dud ="!carp0.link.up && !carp2.link.up" > udd ="!carp1.link.up && !carp2.link.up" > > and used them but somehow I cannot incorporate all state changes and > include it in ifstated.conf. > Works fine here, did you not have any luck with the file I posted earlier ?