svn commit: r280233 - in head: share/man/man4 sys/netinet

Hiren Panchasara hiren at FreeBSD.org
Wed Mar 18 23:24:27 UTC 2015


Author: hiren
Date: Wed Mar 18 23:24:25 2015
New Revision: 280233
URL: https://svnweb.freebsd.org/changeset/base/280233

Log:
  Add connection flowid to siftr(4).
  
  Reviewed by:	lstewart
  MFC after:	1 week
  Sponsored by:	Limelight Networks
  Differential Revision:	https://reviews.freebsd.org/D2089

Modified:
  head/share/man/man4/siftr.4
  head/sys/netinet/siftr.c

Modified: head/share/man/man4/siftr.4
==============================================================================
--- head/share/man/man4/siftr.4	Wed Mar 18 22:05:15 2015	(r280232)
+++ head/share/man/man4/siftr.4	Wed Mar 18 23:24:25 2015	(r280233)
@@ -30,7 +30,7 @@
 .\"
 .\" $FreeBSD$
 .\"
-.Dd November 12, 2010
+.Dd March 18, 2015
 .Dt SIFTR 4
 .Os
 .Sh NAME
@@ -335,6 +335,13 @@ Bytes acknowledged via SACK are not excl
 .It Va 26
 The current number of segments in the reassembly queue.
 .El
+.Bl -tag -offset indent -width Va
+.It Va 27
+Flowid for the connection.
+A caveat: Zero '0' either represents a valid flowid or a default value when it's
+not being set. There is no easy way to differentiate without looking at actual
+network interface card and drivers being used.
+.El
 .Pp
 The third type of log message is written to the file when the module is disabled
 and ceases collecting data from the running kernel.

Modified: head/sys/netinet/siftr.c
==============================================================================
--- head/sys/netinet/siftr.c	Wed Mar 18 22:05:15 2015	(r280232)
+++ head/sys/netinet/siftr.c	Wed Mar 18 23:24:25 2015	(r280233)
@@ -227,6 +227,8 @@ struct pkt_node {
 	u_int			sent_inflight_bytes;
 	/* Number of segments currently in the reassembly queue. */
 	int			t_segqlen;
+	/* Flowid for the connection. */
+	u_int			flowid;	
 	/* Link to next pkt_node in the list. */
 	STAILQ_ENTRY(pkt_node)	nodes;
 };
@@ -485,7 +487,8 @@ siftr_process_pkt(struct pkt_node * pkt_
 		    pkt_node->rcv_buf_hiwater,
 		    pkt_node->rcv_buf_cc,
 		    pkt_node->sent_inflight_bytes,
-		    pkt_node->t_segqlen);
+		    pkt_node->t_segqlen,
+		    pkt_node->flowid);
 	} else { /* IPv4 packet */
 		pkt_node->ip_laddr[0] = FIRST_OCTET(pkt_node->ip_laddr[3]);
 		pkt_node->ip_laddr[1] = SECOND_OCTET(pkt_node->ip_laddr[3]);
@@ -501,7 +504,7 @@ siftr_process_pkt(struct pkt_node * pkt_
 		log_buf->ae_bytesused = snprintf(log_buf->ae_data,
 		    MAX_LOG_MSG_LEN,
 		    "%c,0x%08x,%jd.%06ld,%u.%u.%u.%u,%u,%u.%u.%u.%u,%u,%ld,%ld,"
-		    "%ld,%ld,%ld,%u,%u,%u,%u,%u,%u,%u,%d,%u,%u,%u,%u,%u,%u\n",
+		    "%ld,%ld,%ld,%u,%u,%u,%u,%u,%u,%u,%d,%u,%u,%u,%u,%u,%u,%u\n",
 		    direction[pkt_node->direction],
 		    pkt_node->hash,
 		    (intmax_t)pkt_node->tval.tv_sec,
@@ -534,7 +537,8 @@ siftr_process_pkt(struct pkt_node * pkt_
 		    pkt_node->rcv_buf_hiwater,
 		    pkt_node->rcv_buf_cc,
 		    pkt_node->sent_inflight_bytes,
-		    pkt_node->t_segqlen);
+		    pkt_node->t_segqlen,
+		    pkt_node->flowid);
 #ifdef SIFTR_IPV6
 	}
 #endif
@@ -787,6 +791,7 @@ siftr_siftdata(struct pkt_node *pn, stru
 	pn->rcv_buf_cc = sbused(&inp->inp_socket->so_rcv);
 	pn->sent_inflight_bytes = tp->snd_max - tp->snd_una;
 	pn->t_segqlen = tp->t_segqlen;
+	pn->flowid = inp->inp_flowid;
 
 	/* We've finished accessing the tcb so release the lock. */
 	if (inp_locally_locked)


More information about the svn-src-head mailing list