mirror of
https://github.com/freebsd/freebsd-src
synced 2024-10-16 21:34:10 +00:00
Add connection flowid to siftr(4).
Reviewed by: lstewart MFC after: 1 week Sponsored by: Limelight Networks Differential Revision: https://reviews.freebsd.org/D2089
This commit is contained in:
parent
ab9d0c2789
commit
a025fd1487
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=280233
|
@ -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 excluded from this count.
|
|||
.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.
|
||||
|
|
|
@ -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_node)
|
|||
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_node)
|
|||
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_node)
|
|||
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, struct inpcb *inp, struct tcpcb *tp,
|
|||
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)
|
||||
|
|
Loading…
Reference in a new issue