[Midnightbsd-cvs] src [7806] U trunk/sys/netgraph/netflow: Add NG_NETFLOW_V9INFO_TYPE command to be able to request netflowv9-specific data.
laffer1 at midnightbsd.org
laffer1 at midnightbsd.org
Mon Sep 5 22:59:58 EDT 2016
Revision: 7806
http://svnweb.midnightbsd.org/src/?rev=7806
Author: laffer1
Date: 2016-09-05 22:59:58 -0400 (Mon, 05 Sep 2016)
Log Message:
-----------
Add NG_NETFLOW_V9INFO_TYPE command to be able to request netflowv9-specific data.
Modified Paths:
--------------
trunk/share/man/man4/ng_netflow.4
trunk/sys/netgraph/netflow/netflow_v9.c
trunk/sys/netgraph/netflow/ng_netflow.c
trunk/sys/netgraph/netflow/ng_netflow.h
Property Changed:
----------------
trunk/sys/netgraph/netflow/netflow.c
trunk/sys/netgraph/netflow/netflow.h
trunk/sys/netgraph/netflow/netflow_v9.c
trunk/sys/netgraph/netflow/netflow_v9.h
trunk/sys/netgraph/netflow/ng_netflow.c
trunk/sys/netgraph/netflow/ng_netflow.h
Modified: trunk/share/man/man4/ng_netflow.4
===================================================================
--- trunk/share/man/man4/ng_netflow.4 2016-09-06 02:57:58 UTC (rev 7805)
+++ trunk/share/man/man4/ng_netflow.4 2016-09-06 02:59:58 UTC (rev 7806)
@@ -229,6 +229,9 @@
See also
.Sx BUGS
section.
+.It Dv NGM_NETFLOW_V9INFO
+Returns some NetFlow v9 related values in a
+.Vt "struct ng_netflow_v9info" .
.El
.Sh ASCII CONTROL MESSAGES
Most binary control messages have an
Index: trunk/sys/netgraph/netflow/netflow.c
===================================================================
--- trunk/sys/netgraph/netflow/netflow.c 2016-09-06 02:57:58 UTC (rev 7805)
+++ trunk/sys/netgraph/netflow/netflow.c 2016-09-06 02:59:58 UTC (rev 7806)
Property changes on: trunk/sys/netgraph/netflow/netflow.c
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.1.1.4
\ No newline at end of property
Index: trunk/sys/netgraph/netflow/netflow.h
===================================================================
--- trunk/sys/netgraph/netflow/netflow.h 2016-09-06 02:57:58 UTC (rev 7805)
+++ trunk/sys/netgraph/netflow/netflow.h 2016-09-06 02:59:58 UTC (rev 7806)
Property changes on: trunk/sys/netgraph/netflow/netflow.h
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.1.1.3
\ No newline at end of property
Modified: trunk/sys/netgraph/netflow/netflow_v9.c
===================================================================
--- trunk/sys/netgraph/netflow/netflow_v9.c 2016-09-06 02:57:58 UTC (rev 7805)
+++ trunk/sys/netgraph/netflow/netflow_v9.c 2016-09-06 02:59:58 UTC (rev 7806)
@@ -480,3 +480,14 @@
for (i = 0; i < priv->flowsets_count; i++)
free(priv->v9_flowsets[i], M_NETFLOW_GENERAL);
}
+
+/* Get a snapshot of NetFlow v9 settings */
+void
+ng_netflow_copyv9info(priv_p priv, struct ng_netflow_v9info *i)
+{
+
+ i->templ_time = priv->templ_time;
+ i->templ_packets = priv->templ_packets;
+ i->mtu = priv->mtu;
+}
+
Property changes on: trunk/sys/netgraph/netflow/netflow_v9.c
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.1.1.1
\ No newline at end of property
Index: trunk/sys/netgraph/netflow/netflow_v9.h
===================================================================
--- trunk/sys/netgraph/netflow/netflow_v9.h 2016-09-06 02:57:58 UTC (rev 7805)
+++ trunk/sys/netgraph/netflow/netflow_v9.h 2016-09-06 02:59:58 UTC (rev 7806)
Property changes on: trunk/sys/netgraph/netflow/netflow_v9.h
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.1.1.1
\ No newline at end of property
Modified: trunk/sys/netgraph/netflow/ng_netflow.c
===================================================================
--- trunk/sys/netgraph/netflow/ng_netflow.c 2016-09-06 02:57:58 UTC (rev 7805)
+++ trunk/sys/netgraph/netflow/ng_netflow.c 2016-09-06 02:59:58 UTC (rev 7806)
@@ -138,6 +138,14 @@
&ng_netflow_setmtu_type_fields
};
+/* Parse type for struct ng_netflow_v9info */
+static const struct ng_parse_struct_field ng_netflow_v9info_type_fields[]
+ = NG_NETFLOW_V9INFO_TYPE;
+static const struct ng_parse_type ng_netflow_v9info_type = {
+ &ng_parse_struct_type,
+ &ng_netflow_v9info_type_fields
+};
+
/* List of commands and how to convert arguments to/from ASCII */
static const struct ng_cmdlist ng_netflow_cmds[] = {
{
@@ -196,6 +204,13 @@
&ng_netflow_setmtu_type,
NULL
},
+ {
+ NGM_NETFLOW_COOKIE,
+ NGM_NETFLOW_V9INFO,
+ "v9info",
+ NULL,
+ &ng_netflow_v9info_type
+ },
{ 0 }
};
@@ -526,6 +541,17 @@
break;
}
+ case NGM_NETFLOW_V9INFO:
+ {
+ struct ng_netflow_v9info *i;
+
+ NG_MKRESPONSE(resp, msg, sizeof(struct ng_netflow_v9info),
+ M_NOWAIT);
+ i = (struct ng_netflow_v9info *)resp->data;
+ ng_netflow_copyv9info(priv, i);
+
+ break;
+ }
default:
ERROUT(EINVAL); /* unknown command */
break;
Property changes on: trunk/sys/netgraph/netflow/ng_netflow.c
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.1.1.4
\ No newline at end of property
Modified: trunk/sys/netgraph/netflow/ng_netflow.h
===================================================================
--- trunk/sys/netgraph/netflow/ng_netflow.h 2016-09-06 02:57:58 UTC (rev 7805)
+++ trunk/sys/netgraph/netflow/ng_netflow.h 2016-09-06 02:59:58 UTC (rev 7806)
@@ -34,6 +34,7 @@
#define NG_NETFLOW_NODE_TYPE "netflow"
#define NGM_NETFLOW_COOKIE 1309868867
+#define NGM_NETFLOW_V9_COOKIE 1349865386
#define NG_NETFLOW_MAXIFACES USHRT_MAX
@@ -58,6 +59,7 @@
NGM_NETFLOW_SETCONFIG = 7, /* set flow generation options */
NGM_NETFLOW_SETTEMPLATE = 8, /* set v9 flow template periodic */
NGM_NETFLOW_SETMTU = 9, /* set outgoing interface MTU */
+ NGM_NETFLOW_V9INFO = 10|NGM_READONLY|NGM_HASREPLY, /* get v9 info */
};
/* This structure is returned by the NGM_NETFLOW_INFO message */
@@ -141,6 +143,13 @@
uint32_t nentries; /* number of records in response */
};
+/* This structure is used in NGM_NETFLOW_V9INFO message */
+struct ng_netflow_v9info {
+ uint16_t templ_packets; /* v9 template packets */
+ uint16_t templ_time; /* v9 template time */
+ uint16_t mtu; /* v9 MTU */
+};
+
/* XXXGL
* Somewhere flow_rec6 is casted to flow_rec, and flow6_entry_data is
* casted to flow_entry_data. After casting, fle->r.fib is accessed.
@@ -341,6 +350,14 @@
{ NULL } \
}
+/* Parse the v9info structure */
+#define NG_NETFLOW_V9INFO_TYPE { \
+ { "v9 template packets", &ng_parse_uint16_type },\
+ { "v9 template time", &ng_parse_uint16_type },\
+ { "v9 MTU", &ng_parse_uint16_type },\
+ { NULL } \
+}
+
/* Private hook data */
struct ng_netflow_iface {
hook_p hook; /* NULL when disconnected */
@@ -416,6 +433,7 @@
fib_export_p *fib_data; /* array of pointers to per-fib data */
uint16_t maxfibs; /* number of allocated fibs */
+ /* Netflow v9 configuration options */
/*
* RFC 3954 clause 7.3
* "Both options MUST be configurable by the user on the Exporter."
@@ -466,6 +484,7 @@
void ng_netflow_cache_flush(priv_p);
int ng_netflow_fib_init(priv_p priv, int fib);
void ng_netflow_copyinfo(priv_p, struct ng_netflow_info *);
+void ng_netflow_copyv9info(priv_p, struct ng_netflow_v9info *);
timeout_t ng_netflow_expire;
int ng_netflow_flow_add(priv_p, fib_export_p, struct ip *, caddr_t, uint8_t, uint8_t, unsigned int);
int ng_netflow_flow6_add(priv_p, fib_export_p, struct ip6_hdr *, caddr_t , uint8_t, uint8_t, unsigned int);
Property changes on: trunk/sys/netgraph/netflow/ng_netflow.h
___________________________________________________________________
Deleted: cvs2svn:cvs-rev
## -1 +0,0 ##
-1.1.1.4
\ No newline at end of property
More information about the Midnightbsd-cvs
mailing list