Author: ae
Date: Tue Mar 15 07:15:04 2011
New Revision: 219660
URL: http://svn.freebsd.org/changeset/base/219660

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/8/share/man/man4/ng_one2many.4
  stable/8/sys/netgraph/ng_one2many.c
  stable/8/sys/netgraph/ng_one2many.h
Directory Properties:
  stable/8/share/man/man4/   (props changed)
  stable/8/sys/   (props changed)
  stable/8/sys/amd64/include/xen/   (props changed)
  stable/8/sys/cddl/contrib/opensolaris/   (props changed)
  stable/8/sys/contrib/dev/acpica/   (props changed)
  stable/8/sys/contrib/pf/   (props changed)

Modified: stable/8/share/man/man4/ng_one2many.4
==============================================================================
--- stable/8/share/man/man4/ng_one2many.4       Tue Mar 15 06:53:33 2011        
(r219659)
+++ stable/8/share/man/man4/ng_one2many.4       Tue Mar 15 07:15:04 2011        
(r219660)
@@ -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/8/sys/netgraph/ng_one2many.c
==============================================================================
--- stable/8/sys/netgraph/ng_one2many.c Tue Mar 15 06:53:33 2011        
(r219659)
+++ stable/8/sys/netgraph/ng_one2many.c Tue Mar 15 07:15:04 2011        
(r219660)
@@ -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/8/sys/netgraph/ng_one2many.h
==============================================================================
--- stable/8/sys/netgraph/ng_one2many.h Tue Mar 15 06:53:33 2011        
(r219659)
+++ stable/8/sys/netgraph/ng_one2many.h Tue Mar 15 07:15:04 2011        
(r219660)
@@ -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 */
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to