diff options
author | julian <julian@FreeBSD.org> | 2000-12-12 18:52:14 +0000 |
---|---|---|
committer | julian <julian@FreeBSD.org> | 2000-12-12 18:52:14 +0000 |
commit | 2d1192e61200eb8fc54319899e014acefd14ae74 (patch) | |
tree | 7cea4425abc67a898f27d4352a634cfa82aad7cc /sys/netgraph/ng_UI.c | |
parent | 66009fc30e546f777cfc59b5d148551c44f649e2 (diff) | |
download | FreeBSD-src-2d1192e61200eb8fc54319899e014acefd14ae74.zip FreeBSD-src-2d1192e61200eb8fc54319899e014acefd14ae74.tar.gz |
Reviewed by: Archie@freebsd.org
This clears out my outstanding netgraph changes.
There is a netgraph change of design in the offing and this is to some
extent a superset of soem of the new functionality and some of the old
functionality that may be removed.
This code works as before, but allows some new features that I want to
work with and evaluate. It is the basis for a version of netgraph
with integral locking for SMP use.
This is running on my test machine with no new problems :-)
Diffstat (limited to 'sys/netgraph/ng_UI.c')
-rw-r--r-- | sys/netgraph/ng_UI.c | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/sys/netgraph/ng_UI.c b/sys/netgraph/ng_UI.c index b410a51..9d490b9 100644 --- a/sys/netgraph/ng_UI.c +++ b/sys/netgraph/ng_UI.c @@ -87,7 +87,6 @@ static struct ng_type typestruct = { NULL, NULL, ng_UI_rcvdata, - ng_UI_rcvdata, ng_UI_disconnect, NULL }; @@ -151,6 +150,22 @@ static int ng_UI_rcvmsg(node_p node, struct ng_mesg *msg, const char *raddr, struct ng_mesg **rp, hook_p lasthook) { + const priv_p priv = node->private; + + if ((msg->header.typecookie == NGM_FLOW_COOKIE) && lasthook) { + if (lasthook == priv->downlink) { + if (priv->uplink) { + return (ng_send_msg(node, msg, NULL, + priv->uplink, raddr, rp)); + } + } else { + if (priv->downlink) { + return (ng_send_msg(node, msg, NULL, + priv->downlink, raddr, rp)); + } + } + } + FREE(msg, M_NETGRAPH); return (EINVAL); } @@ -163,7 +178,7 @@ ng_UI_rcvmsg(node_p node, struct ng_mesg *msg, */ static int ng_UI_rcvdata(hook_p hook, struct mbuf *m, meta_p meta, - struct mbuf **ret_m, meta_p *ret_meta) + struct mbuf **ret_m, meta_p *ret_meta, struct ng_mesg **resp) { const node_p node = hook->node; const priv_p priv = node->private; |