summaryrefslogtreecommitdiffstats
path: root/sys/netgraph/ng_bridge.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/netgraph/ng_bridge.c')
-rw-r--r--sys/netgraph/ng_bridge.c47
1 files changed, 24 insertions, 23 deletions
diff --git a/sys/netgraph/ng_bridge.c b/sys/netgraph/ng_bridge.c
index 9539757..9698842 100644
--- a/sys/netgraph/ng_bridge.c
+++ b/sys/netgraph/ng_bridge.c
@@ -324,12 +324,12 @@ ng_bridge_constructor(node_p node)
* When it's fixed the process SHOULD NOT SLEEP, spinlocks please!
* (and atomic ops )
*/
- node->flags |= NG_FORCE_WRITER;
- node->private = priv;
+ NG_NODE_FORCE_WRITER(node);
+ NG_NODE_SET_PRIVATE(node, priv);
priv->node = node;
/* Start timer by faking a timeout event */
- node->refs++; /* XXX ???? because of the timeout?*/
+ NG_NODE_REF(node); /* because the timeout will drop a reference */
ng_bridge_timeout(node);
return (0);
}
@@ -340,7 +340,7 @@ ng_bridge_constructor(node_p node)
static int
ng_bridge_newhook(node_p node, hook_p hook, const char *name)
{
- const priv_p priv = node->private;
+ const priv_p priv = NG_NODE_PRIVATE(node);
/* Check for a link hook */
if (strncmp(name, NG_BRIDGE_HOOK_LINK_PREFIX,
@@ -362,7 +362,7 @@ ng_bridge_newhook(node_p node, hook_p hook, const char *name)
if (priv->links[linkNum] == NULL)
return (ENOMEM);
priv->links[linkNum]->hook = hook;
- LINK_NUM(hook) = linkNum;
+ NG_HOOK_SET_PRIVATE(hook, (void *)linkNum);
priv->numLinks++;
return (0);
}
@@ -377,7 +377,7 @@ ng_bridge_newhook(node_p node, hook_p hook, const char *name)
static int
ng_bridge_rcvmsg(node_p node, item_p item, hook_p lasthook)
{
- const priv_p priv = node->private;
+ const priv_p priv = NG_NODE_PRIVATE(node);
struct ng_mesg *resp = NULL;
int error = 0;
struct ng_mesg *msg;
@@ -512,8 +512,8 @@ ng_bridge_rcvmsg(node_p node, item_p item, hook_p lasthook)
static int
ng_bridge_rcvdata(hook_p hook, item_p item)
{
- const node_p node = hook->node;
- const priv_p priv = node->private;
+ const node_p node = NG_HOOK_NODE(hook);
+ const priv_p priv = NG_NODE_PRIVATE(node);
struct ng_bridge_host *host;
struct ng_bridge_link *link;
struct ether_header *eh;
@@ -525,7 +525,7 @@ ng_bridge_rcvdata(hook_p hook, item_p item)
NGI_GET_M(item, m);
/* Get link number */
- linkNum = LINK_NUM(hook);
+ linkNum = (int)NG_HOOK_PRIVATE(hook);
KASSERT(linkNum >= 0 && linkNum < NG_BRIDGE_MAX_LINKS,
("%s: linkNum=%u", __FUNCTION__, linkNum));
link = priv->links[linkNum];
@@ -600,7 +600,7 @@ ng_bridge_rcvdata(hook_p hook, item_p item)
log(LOG_WARNING, "ng_bridge: %s:"
" loopback detected on %s%s\n",
ng_bridge_nodename(node),
- hook->name, suffix);
+ NG_HOOK_NAME(hook), suffix);
}
/* Mark link as linka non grata */
@@ -758,15 +758,15 @@ ng_bridge_rcvdata(hook_p hook, item_p item)
static int
ng_bridge_shutdown(node_p node)
{
- const priv_p priv = node->private;
+ const priv_p priv = NG_NODE_PRIVATE(node);
KASSERT(priv->numLinks == 0 && priv->numHosts == 0,
("%s: numLinks=%d numHosts=%d",
__FUNCTION__, priv->numLinks, priv->numHosts));
FREE(priv->tab, M_NETGRAPH);
FREE(priv, M_NETGRAPH);
- node->private = NULL;
- ng_unref(node);
+ NG_NODE_SET_PRIVATE(node, NULL);
+ NG_NODE_UNREF(node);
return (0);
}
@@ -776,11 +776,11 @@ ng_bridge_shutdown(node_p node)
static int
ng_bridge_disconnect(hook_p hook)
{
- const priv_p priv = hook->node->private;
+ const priv_p priv = NG_NODE_PRIVATE(NG_HOOK_NODE(hook));
int linkNum;
/* Get link number */
- linkNum = LINK_NUM(hook);
+ linkNum = (int)NG_HOOK_PRIVATE(hook);
KASSERT(linkNum >= 0 && linkNum < NG_BRIDGE_MAX_LINKS,
("%s: linkNum=%u", __FUNCTION__, linkNum));
@@ -794,9 +794,10 @@ ng_bridge_disconnect(hook_p hook)
priv->numLinks--;
/* If no more hooks, go away */
- if ((hook->node->numhooks == 0)
- && (( hook->node->flags & NG_INVALID) == 0))
- ng_rmnode_self(hook->node);
+ if ((NG_NODE_NUMHOOKS(NG_HOOK_NODE(hook)) == 0)
+ && (NG_NODE_IS_VALID(NG_HOOK_NODE(hook)))) {
+ ng_rmnode_self(NG_HOOK_NODE(hook));
+ }
return (0);
}
@@ -965,15 +966,15 @@ static void
ng_bridge_timeout(void *arg)
{
const node_p node = arg;
- const priv_p priv = node->private;
+ const priv_p priv = NG_NODE_PRIVATE(node);
int s, bucket;
int counter = 0;
int linkNum;
/* Avoid race condition with ng_bridge_shutdown() */
s = splnet();
- if ((node->flags & NG_INVALID) != 0 || priv == NULL) {
- ng_unref(node);
+ if ((NG_NODE_NOT_VALID(node)) || priv == NULL) {
+ NG_NODE_UNREF(node);
splx(s);
return;
}
@@ -1045,8 +1046,8 @@ ng_bridge_nodename(node_p node)
{
static char name[NG_NODELEN+1];
- if (node->name != NULL)
- snprintf(name, sizeof(name), "%s", node->name);
+ if (NG_NODE_NAME(node) != NULL)
+ snprintf(name, sizeof(name), "%s", NG_NODE_NAME(node));
else
snprintf(name, sizeof(name), "[%x]", ng_node2ID(node));
return name;
OpenPOWER on IntegriCloud