From owner-svn-src-stable@FreeBSD.ORG Tue Mar 15 07:15:47 2011 Return-Path: Delivered-To: svn-src-stable@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 630011065677; Tue, 15 Mar 2011 07:15:47 +0000 (UTC) (envelope-from ae@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 4853F8FC08; Tue, 15 Mar 2011 07:15:47 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id p2F7FkxD025083; Tue, 15 Mar 2011 07:15:46 GMT (envelope-from ae@svn.freebsd.org) Received: (from ae@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id p2F7FkX7025079; Tue, 15 Mar 2011 07:15:46 GMT (envelope-from ae@svn.freebsd.org) Message-Id: <201103150715.p2F7FkX7025079@svn.freebsd.org> From: "Andrey V. Elsukov" Date: Tue, 15 Mar 2011 07:15:46 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org X-SVN-Group: stable-7 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r219661 - in stable/7: share/man/man4 sys/netgraph X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 15 Mar 2011 07:15:47 -0000 Author: ae Date: Tue Mar 15 07:15:46 2011 New Revision: 219661 URL: http://svn.freebsd.org/changeset/base/219661 Log: MFC r219127: Add XMIT_FAILOVER transmit algorithm to ng_one2many node. Packets are delivered out the first active "many" hook. PR: kern/137775 Submitted by: Maxim Ignatenko Modified: stable/7/share/man/man4/ng_one2many.4 stable/7/sys/netgraph/ng_one2many.c stable/7/sys/netgraph/ng_one2many.h Directory Properties: stable/7/share/man/man4/ (props changed) stable/7/sys/ (props changed) stable/7/sys/cddl/contrib/opensolaris/ (props changed) stable/7/sys/contrib/dev/acpica/ (props changed) stable/7/sys/contrib/pf/ (props changed) Modified: stable/7/share/man/man4/ng_one2many.4 ============================================================================== --- stable/7/share/man/man4/ng_one2many.4 Tue Mar 15 07:15:04 2011 (r219660) +++ stable/7/share/man/man4/ng_one2many.4 Tue Mar 15 07:15:46 2011 (r219661) @@ -34,7 +34,7 @@ .\" .\" $FreeBSD$ .\" -.Dd February 19, 2006 +.Dd March 1, 2011 .Dt NG_ONE2MANY 4 .Os .Sh NAME @@ -96,6 +96,10 @@ hooks. Each packet goes out each .Dv many hook. +.It Dv NG_ONE2MANY_XMIT_FAILOVER +Packets are delivered out the first active +.Dv many +hook. .El .Pp In the future other algorithms may be added as well. Modified: stable/7/sys/netgraph/ng_one2many.c ============================================================================== --- stable/7/sys/netgraph/ng_one2many.c Tue Mar 15 07:15:04 2011 (r219660) +++ stable/7/sys/netgraph/ng_one2many.c Tue Mar 15 07:15:46 2011 (r219661) @@ -278,6 +278,7 @@ ng_one2many_rcvmsg(node_p node, item_p i switch (conf->xmitAlg) { case NG_ONE2MANY_XMIT_ROUNDROBIN: case NG_ONE2MANY_XMIT_ALL: + case NG_ONE2MANY_XMIT_FAILOVER: break; default: error = EINVAL; @@ -473,6 +474,9 @@ ng_one2many_rcvdata(hook_p hook, item_p NG_SEND_DATA_ONLY(error, mdst->hook, m2); } break; + case NG_ONE2MANY_XMIT_FAILOVER: + dst = &priv->many[priv->activeMany[0]]; + break; #ifdef INVARIANTS default: panic("%s: invalid xmitAlg", __func__); @@ -583,6 +587,7 @@ ng_one2many_update_many(priv_p priv) priv->nextMany %= priv->numActiveMany; break; case NG_ONE2MANY_XMIT_ALL: + case NG_ONE2MANY_XMIT_FAILOVER: break; #ifdef INVARIANTS default: Modified: stable/7/sys/netgraph/ng_one2many.h ============================================================================== --- stable/7/sys/netgraph/ng_one2many.h Tue Mar 15 07:15:04 2011 (r219660) +++ stable/7/sys/netgraph/ng_one2many.h Tue Mar 15 07:15:46 2011 (r219661) @@ -61,6 +61,7 @@ /* Algorithms for outgoing packet distribution (XXX only one so far) */ #define NG_ONE2MANY_XMIT_ROUNDROBIN 1 /* round-robin delivery */ #define NG_ONE2MANY_XMIT_ALL 2 /* send packets to all many hooks */ +#define NG_ONE2MANY_XMIT_FAILOVER 3 /* send packets to first active "many" */ /* Algorithms for detecting link failure (XXX only one so far) */ #define NG_ONE2MANY_FAIL_MANUAL 1 /* use enabledLinks[] array */