summaryrefslogtreecommitdiffstats
path: root/sys/netgraph/ng_base.c
diff options
context:
space:
mode:
authorjulian <julian@FreeBSD.org>2004-06-30 22:51:29 +0000
committerjulian <julian@FreeBSD.org>2004-06-30 22:51:29 +0000
commita90f5b9dba5a9349314c383e81d1105555788eff (patch)
treee4f580aabd7a85c33326a1e56b10f0a768e27bf6 /sys/netgraph/ng_base.c
parent309dbc34d2aaea7b16077acfc94afcaa41b7d3e1 (diff)
downloadFreeBSD-src-a90f5b9dba5a9349314c383e81d1105555788eff.zip
FreeBSD-src-a90f5b9dba5a9349314c383e81d1105555788eff.tar.gz
Remove the home-grown metadata facility in favour of the now generic
mbuf tags facility. Netgraph modules will all need a recompile. Submitted by: Gleb Smirnoff <glebius@cell.sick.ru>
Diffstat (limited to 'sys/netgraph/ng_base.c')
-rw-r--r--sys/netgraph/ng_base.c38
1 files changed, 7 insertions, 31 deletions
diff --git a/sys/netgraph/ng_base.c b/sys/netgraph/ng_base.c
index 744972d..c12eae1 100644
--- a/sys/netgraph/ng_base.c
+++ b/sys/netgraph/ng_base.c
@@ -216,7 +216,6 @@ MALLOC_DEFINE(M_NETGRAPH, "netgraph", "netgraph structures and ctrl messages");
MALLOC_DEFINE(M_NETGRAPH_HOOK, "netgraph_hook", "netgraph hook structures");
MALLOC_DEFINE(M_NETGRAPH_NODE, "netgraph_node", "netgraph node structures");
MALLOC_DEFINE(M_NETGRAPH_ITEM, "netgraph_item", "netgraph item structures");
-MALLOC_DEFINE(M_NETGRAPH_META, "netgraph_meta", "netgraph name storage");
MALLOC_DEFINE(M_NETGRAPH_MSG, "netgraph_msg", "netgraph name storage");
/* Should not be visible outside this file */
@@ -1151,6 +1150,9 @@ ng_newtype(struct ng_type *tp)
|| (namelen == 0)
|| (namelen >= NG_TYPESIZ)) {
TRAP_ERROR();
+ if (tp->version != NG_ABI_VERSION) {
+ printf("Netgraph: Node type rejected. ABI mismatch. Suggest recompile\n");
+ }
return (EINVAL);
}
@@ -2095,7 +2097,6 @@ ng_flush_input_queue(struct ng_queue * ngq)
* Reference to destination rcv hook if relevant.
* Data:
* pointer to mbuf
- * pointer to metadata
* Control_Message:
* pointer to msg.
* ID of original sender node. (return address)
@@ -2890,26 +2891,6 @@ out:
return (error);
}
-/*
- * Copy a 'meta'.
- *
- * Returns new meta, or NULL if original meta is NULL or ENOMEM.
- */
-meta_p
-ng_copy_meta(meta_p meta)
-{
- meta_p meta2;
-
- if (meta == NULL)
- return (NULL);
- MALLOC(meta2, meta_p, meta->used_len, M_NETGRAPH_META, M_NOWAIT);
- if (meta2 == NULL)
- return (NULL);
- meta2->allocated_len = meta->used_len;
- bcopy(meta, meta2, meta->used_len);
- return (meta2);
-}
-
/************************************************************************
Module routines
************************************************************************/
@@ -3122,9 +3103,8 @@ ng_free_item(item_p item)
}
switch (item->el_flags & NGQF_TYPE) {
case NGQF_DATA:
- /* If we have an mbuf and metadata still attached.. */
+ /* If we have an mbuf still attached.. */
NG_FREE_M(_NGI_M(item));
- NG_FREE_META(_NGI_META(item));
break;
case NGQF_MESG:
_NGI_RETADDR(item) = 0;
@@ -3400,7 +3380,7 @@ ng_setisr(node_p node)
#endif
/*
- * Put elements into the item.
+ * Put mbuf into the item.
* Hook and node references will be removed when the item is dequeued.
* (or equivalent)
* (XXX) Unsafe because no reference held by peer on remote node.
@@ -3413,20 +3393,18 @@ ng_setisr(node_p node)
* This is possibly in the critical path for new data.
*/
item_p
-ng_package_data(struct mbuf *m, meta_p meta)
+ng_package_data(struct mbuf *m, void *dummy)
{
item_p item;
if ((item = ng_getqblk()) == NULL) {
NG_FREE_M(m);
- NG_FREE_META(meta);
return (NULL);
}
ITEM_DEBUG_CHECKS;
item->el_flags = NGQF_DATA;
item->el_next = NULL;
NGI_M(item) = m;
- NGI_META(item) = meta;
return (item);
}
@@ -3708,16 +3686,14 @@ ng_macro_test(item_p item)
node_p node = NULL;
hook_p hook = NULL;
struct mbuf *m;
- meta_p meta;
struct ng_mesg *msg;
ng_ID_t retaddr;
int error;
NGI_GET_M(item, m);
- NGI_GET_META(item, meta);
NGI_GET_MSG(item, msg);
retaddr = NGI_RETADDR(item);
- NG_SEND_DATA(error, hook, m, meta);
+ NG_SEND_DATA(error, hook, m, NULL);
NG_SEND_DATA_ONLY(error, hook, m);
NG_FWD_NEW_DATA(error, item, hook, m);
NG_FWD_ITEM_HOOK(error, item, hook);
OpenPOWER on IntegriCloud