summaryrefslogtreecommitdiffstats
path: root/sys/netgraph/netflow/ng_netflow.c
diff options
context:
space:
mode:
authorglebius <glebius@FreeBSD.org>2005-03-21 15:34:03 +0000
committerglebius <glebius@FreeBSD.org>2005-03-21 15:34:03 +0000
commitf55027e9fb92a9b34b346d1411fd9c5b6e779df9 (patch)
tree2b9e9bfe04960479a0338c324115ba65906d4257 /sys/netgraph/netflow/ng_netflow.c
parentbbe5c42ef2d22e92589ee22ef520eb4da31e3c15 (diff)
downloadFreeBSD-src-f55027e9fb92a9b34b346d1411fd9c5b6e779df9.zip
FreeBSD-src-f55027e9fb92a9b34b346d1411fd9c5b6e779df9.tar.gz
Refactor node so that it does not modify mbuf contents. Next step would
be pass-thru mode, when traffic is not copied by ng_tee, but passed thru ng_netflow. Changes made: - In ng_netflow_rcvdata() do all necessary pulluping: Ethernet header, IP header, and TCP/UDP header. - Pass only pointer to struct ip to ng_netflow_flow_add(). Any TCP/UDP headers are guaranteed to by after it. - Merge make_flow_rec() function into ng_netflow_flow_add().
Diffstat (limited to 'sys/netgraph/netflow/ng_netflow.c')
-rw-r--r--sys/netgraph/netflow/ng_netflow.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/sys/netgraph/netflow/ng_netflow.c b/sys/netgraph/netflow/ng_netflow.c
index d6532e8..1944ce4 100644
--- a/sys/netgraph/netflow/ng_netflow.c
+++ b/sys/netgraph/netflow/ng_netflow.c
@@ -1,5 +1,5 @@
/*-
- * Copyright (c) 2004 Gleb Smirnoff <glebius@FreeBSD.org>
+ * Copyright (c) 2004-2005 Gleb Smirnoff <glebius@FreeBSD.org>
* Copyright (c) 2001-2003 Roman V. Palagin <romanp@unshadow.net>
* All rights reserved.
*
@@ -46,6 +46,8 @@ static const char rcs_id[] =
#include <netinet/in.h>
#include <netinet/in_systm.h>
#include <netinet/ip.h>
+#include <netinet/tcp.h>
+#include <netinet/udp.h>
#include <netgraph/ng_message.h>
#include <netgraph/ng_parse.h>
@@ -410,6 +412,8 @@ ng_netflow_rcvdata (hook_p hook, item_p item)
const priv_p priv = NG_NODE_PRIVATE(node);
const iface_p iface = NG_HOOK_PRIVATE(hook);
struct mbuf *m;
+ struct ip *ip;
+ int pullup_len = 0;
int error = 0;
NGI_GET_M(item, m);
OpenPOWER on IntegriCloud