From owner-freebsd-questions@FreeBSD.ORG Tue Feb 7 20:13:07 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 510841065674 for ; Tue, 7 Feb 2012 20:13:07 +0000 (UTC) (envelope-from peter.knezel@gmail.com) Received: from mail-lpp01m020-f182.google.com (mail-lpp01m020-f182.google.com [209.85.217.182]) by mx1.freebsd.org (Postfix) with ESMTP id B2DA18FC17 for ; Tue, 7 Feb 2012 20:13:06 +0000 (UTC) Received: by lbbgj3 with SMTP id gj3so2456264lbb.13 for ; Tue, 07 Feb 2012 12:13:05 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=Be+dtT219Jw0VrV7QjnnuuLE3Zxf049/KFeSXnNT3D4=; b=IFQisXZ82DaJuvD7KatPsGZ4ZgEnIy8zTv2x/auMwN6HLxIQzZ9PTXJrl/IYOpAreJ nMlNyjNpIgOw1cZbNx4HGh4Fnc6kMxtO0ASeyytJWzGYPDGdJkDK3njLyW2dX0lNImv6 451vy3gGiYPqu65MQYc/TtHIm+uI0LNYvAud4= MIME-Version: 1.0 Received: by 10.112.36.103 with SMTP id p7mr6820455lbj.91.1328645585539; Tue, 07 Feb 2012 12:13:05 -0800 (PST) Received: by 10.152.43.71 with HTTP; Tue, 7 Feb 2012 12:13:05 -0800 (PST) In-Reply-To: <4F314AFB.8080901@my.gd> References: <4F314AFB.8080901@my.gd> Date: Tue, 7 Feb 2012 21:13:05 +0100 Message-ID: From: peter knezel To: Damien Fleuriot Content-Type: text/plain; charset=ISO-8859-1 X-Content-Filtered-By: Mailman/MimeDel 2.1.5 Cc: freebsd-questions@freebsd.org 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 20:13:07 -0000 Hello Damien, I did read your example but cannot get idea from it. For three interfaces you have much more possibilities. Imagine you start the server from uuu state which is equal to 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)' Now you put down one carp interface - so system is in state : *state one:* (duu) || (udu) || (uud) <----which is same as !$net run script1.sh go to twoff now imagine, you put down any other carp interface: *state twoff: * (dud) || (ddu) || (udd) run script2.sh go to two *state two: * put all interfaces up run script3.sh go to state one it means, this is one of the possibilities system can behave (this situation does not describe all possible states - I have taken this special example.) Now if you want to put up after putting down one carp interface, you fail since it is in state twoff. Only of you put down second carp interface it goes to state two and if you put both up, it will go to state one. This is where my ifstated.conf fails to work. Kind regards, Peter Knezel On 7 February 2012 17:02, Damien Fleuriot wrote: > 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 ? > _______________________________________________ > freebsd-questions@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-questions > To unsubscribe, send any mail to " > freebsd-questions-unsubscribe@freebsd.org" >