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

Adrian Chadd adrian at freebsd.org
Wed Mar 18 23:26:48 UTC 2015


Sorry I didn't add this earlier.

There's a flowtype field, right? You should log that too. It'll tell
you what the flowid field means.


-a


On 18 March 2015 at 16:24, Hiren Panchasara <hiren at freebsd.org> wrote:
> 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-all mailing list