[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