From owner-freebsd-net@FreeBSD.ORG Wed Jun 11 03:40:23 2003 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id C1FB737B401; Wed, 11 Jun 2003 03:40:23 -0700 (PDT) Received: from mccinet.ru (relay.cell.ru [212.119.96.41]) by mx1.FreeBSD.org (Postfix) with ESMTP id 368EA43FA3; Wed, 11 Jun 2003 03:40:22 -0700 (PDT) (envelope-from dolgop@mccinet.ru) Received: from [212.1.235.150] (HELO server.dep624) by mccinet.ru (CommuniGate Pro SMTP 4.0.2) with ESMTP-TLS id 4375635; Wed, 11 Jun 2003 14:40:20 +0400 From: Evgeny Dolgopiat To: freebsd-net@freebsd.org Date: Wed, 11 Jun 2003 14:41:07 +0400 User-Agent: KMail/1.5 MIME-Version: 1.0 Content-Type: Multipart/Mixed; boundary="Boundary-00=_Ddw5+xIsltZZzpE" Message-Id: <200306111441.07234.dolgop@mccinet.ru> X-Content-Filtered-By: Mailman/MimeDel 2.1.1 cc: "Rogier R. Mulhuijzen" cc: Archie Cobbs Subject: Link failure detection algorithm for one2many netgraph node. X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list Reply-To: evg_dolgop@mail.ru List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 11 Jun 2003 10:40:24 -0000 --Boundary-00=_Ddw5+xIsltZZzpE Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Content-Disposition: inline Hello, All! I have developed a simple link failure detection algorithm for one2many netgraph node. I called it "heartbeat algorithm" :) This is brief description: What is it Link failure determination for one2many netgraph node. How it works It is implemented as "heartbeat" packet counters on all one2many tranked interfaces. If the number of packest hook received is less for some specified value than max number of packest, received by another hooks of the node, then interface is marked as failed (subnet or link failure). If this difference is less than this value and interface is marked as failed, then interface is up and working. How to setup Algorithm number is 2, so to configure node one should issue "setconfig {xmitAlg=1 failAlg=2}" message. There are two params of algorithm: timeout - time between sending of hearbeat packets (integer number of 1/10 sec) period - number of timeouts for failure determination statistics Default values are timeout=10 and period=10. Two new node messages: "gethbconfig" and "sethbconfig {timeout=X period=Y}" for getting and setting heartbeat algorithm params. Tech data "Heartbeat" packet uses ethernet broadcast address (ff:ff:ff:ff:ff:ff) and packet type set to NG_ONE2MANY_HEARTBEAT_PROTO in the ethernet header. Expected timings are: failure determination: average - 1.5*timeout*period worst - 2*timeout*period up determination: average - 0.5*timeout*period worst - timeout*period Author: Evgeny Dolgopiat --Boundary-00=_Ddw5+xIsltZZzpE--