summaryrefslogtreecommitdiffstats
path: root/sys/netgraph/ng_one2many.c
diff options
context:
space:
mode:
authorae <ae@FreeBSD.org>2011-03-01 13:10:56 +0000
committerae <ae@FreeBSD.org>2011-03-01 13:10:56 +0000
commit8d27150a02987492c63fb82670f25f512e3eedbb (patch)
tree4198e94746c15f6642c55eec2c852cabe88a012c /sys/netgraph/ng_one2many.c
parent318d44b9bce302c0851213f1070bd6b080a363a7 (diff)
downloadFreeBSD-src-8d27150a02987492c63fb82670f25f512e3eedbb.zip
FreeBSD-src-8d27150a02987492c63fb82670f25f512e3eedbb.tar.gz
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 MFC after: 2 weeks
Diffstat (limited to 'sys/netgraph/ng_one2many.c')
-rw-r--r--sys/netgraph/ng_one2many.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/sys/netgraph/ng_one2many.c b/sys/netgraph/ng_one2many.c
index 6b88730..714528d 100644
--- a/sys/netgraph/ng_one2many.c
+++ b/sys/netgraph/ng_one2many.c
@@ -278,6 +278,7 @@ ng_one2many_rcvmsg(node_p node, item_p item, hook_p lasthook)
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 item)
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:
OpenPOWER on IntegriCloud