From nobody Tue Apr 25 22:02:43 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Q5bbQ48ngz46n8n; Tue, 25 Apr 2023 22:02:58 +0000 (UTC) (envelope-from ccfreebsd@gmail.com) Received: from mail-lj1-f181.google.com (mail-lj1-f181.google.com [209.85.208.181]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "GTS CA 1D4" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Q5bbQ1CDSz3jxL; Tue, 25 Apr 2023 22:02:58 +0000 (UTC) (envelope-from ccfreebsd@gmail.com) Authentication-Results: mx1.freebsd.org; none Received: by mail-lj1-f181.google.com with SMTP id 38308e7fff4ca-2a8bdcf87f4so58426881fa.2; Tue, 25 Apr 2023 15:02:58 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1682460176; x=1685052176; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=AyNSqiv8y6KArQqjsrKT9xtW5ugWsoXySqG2Cs4yg68=; b=XozP77se3pw7Lj3wEEmXEsyiMXoC51gRaEu3B09UiQc3RX9mqVtHlumgaXRSfsflJT Ais8+N3Goa8YZnB3Gz+2dPI1dRhD8Lhcof3cK7YK3Puizsy/vaXwl8aqZx49d9SXn0Se Gmu7ExXLaRTaUT3FWKBy4UPEl54el+0ZX85cJjbHOR8JipN36djS7JCTgUqmTRr3m36B 3PCVaKOb1Ua340Q8M5VgI5WbQDRwgG4GV+2vTdjSuMjLzmEcRAFJmUmqVa5lt59tDRDU EcC9nrX3jOI7ZXFXnOEhihVten1p6gZBpCqLcY43nlRBnAEuHficiI3EQUoptgaBGP9j yv0g== X-Gm-Message-State: AAQBX9emhiUFlBt6SqQtAzH2iD4Qa3P5ldJjLFqkYqxArOIbdrApkCV/ NJZZlLKr3i9td3XNejO7w5wCUNoqtD4pIg== X-Google-Smtp-Source: AKy350aYPH2L3Sv2XX4LOerN5LvuWHyxcdAlECXDsBpuQumpeJQRwbZmZKmo4xns/0C/SnDbkzExsw== X-Received: by 2002:a2e:9b44:0:b0:2a8:bd3a:d418 with SMTP id o4-20020a2e9b44000000b002a8bd3ad418mr3802540ljj.52.1682460175837; Tue, 25 Apr 2023 15:02:55 -0700 (PDT) Received: from mail-lj1-f181.google.com (mail-lj1-f181.google.com. [209.85.208.181]) by smtp.gmail.com with ESMTPSA id k21-20020a2e8895000000b002aa3ad9014asm1942935lji.54.2023.04.25.15.02.55 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 25 Apr 2023 15:02:55 -0700 (PDT) Received: by mail-lj1-f181.google.com with SMTP id 38308e7fff4ca-2a8bdcf87f4so58426571fa.2; Tue, 25 Apr 2023 15:02:55 -0700 (PDT) X-Received: by 2002:a2e:960d:0:b0:2a5:f82e:e2a6 with SMTP id v13-20020a2e960d000000b002a5f82ee2a6mr4417649ljh.47.1682460174812; Tue, 25 Apr 2023 15:02:54 -0700 (PDT) List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 References: <202304252126.33PLQsKe024634@gitrepo.freebsd.org> <1ead933c-2567-7b79-8761-2f900ccf9b76@freebsd.org> In-Reply-To: <1ead933c-2567-7b79-8761-2f900ccf9b76@freebsd.org> From: Cheng Cui Date: Tue, 25 Apr 2023 18:02:43 -0400 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: git: d090464ecd4a - main - Change the unit of srtt and rto to usec, inspired by these in struct "tcp_info". Therefore, no need hz and tcp_rtt_scale in the headline of the log. Update the man page as well. To: Mitchell Horne Cc: src-committers@freebsd.org, dev-commits-src-all@freebsd.org, dev-commits-src-main@freebsd.org Content-Type: multipart/alternative; boundary="000000000000118c9e05fa304989" X-Rspamd-Queue-Id: 4Q5bbQ1CDSz3jxL X-Spamd-Bar: ---- X-Spamd-Result: default: False [-4.00 / 15.00]; REPLY(-4.00)[]; ASN(0.00)[asn:15169, ipnet:209.85.128.0/17, country:US] X-Rspamd-Pre-Result: action=no action; module=replies; Message is reply to one we originated X-ThisMailContainsUnwantedMimeParts: N --000000000000118c9e05fa304989 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Apologize. I am thinking there must be some mess up between 'arc' and 'git commit --amend', as my original git commit message was well organized into 72 chars-per-line. The test plan added by the 'arc' during "arc diff --create" (I thought this command is used to create the Phabricator review page) is automatically mixed into the updated git message. My mentor already notified me about this mess. Now I know how to reproduce this problem, and I will take care of it in the future. :) Best Regards, Cheng Cui On Tue, Apr 25, 2023 at 5:52=E2=80=AFPM Mitchell Horne = wrote: > > > On 4/25/23 18:26, Cheng Cui wrote: > > The branch main has been updated by cc: > > > > URL: > https://cgit.FreeBSD.org/src/commit/?id=3Dd090464ecd4af5cd400ef5cbbfe8409= d019eac34 > > > > commit d090464ecd4af5cd400ef5cbbfe8409d019eac34 > > Author: Cheng Cui > > AuthorDate: 2023-04-25 11:52:28 +0000 > > Commit: Cheng Cui > > CommitDate: 2023-04-25 17:26:39 +0000 > > > > Change the unit of srtt and rto to usec, inspired by these in > struct "tcp_info". Therefore, no need hz and tcp_rtt_scale in the headlin= e > of the log. Update the man page as well. > > > > Summary: Simplify srtt and rto values in siftr log. > > > > Test Plan: > > Tested in Emulab testbed: > > cc@s1:~ % sudo sysctl net.inet.siftr > > net.inet.siftr.port_filter: 0 > > net.inet.siftr.genhashes: 0 > > net.inet.siftr.ppl: 1 > > net.inet.siftr.logfile: /var/log/siftr.log > > net.inet.siftr.enabled: 0 > > cc@s1:~ % sudo sysctl net.inet.siftr.port_filter=3D5001 > > net.inet.siftr.port_filter: 0 -> 5001 > > cc@s1:~ % sudo sysctl net.inet.siftr.enabled=3D1 > > net.inet.siftr.enabled: 0 -> 1 > > cc@s1:~ % > > cc@s1:~ % iperf -c r1 -n 1M > > ------------------------------------------------------------ > > Client connecting to r1, TCP port 5001 > > TCP window size: 32.0 KByte (default) > > ------------------------------------------------------------ > > [ 1] local 10.1.1.2 port 33817 connected with 10.1.1.3 port 5001 > > [ ID] Interval Transfer Bandwidth > > [ 1] 0.00-0.91 sec 1.00 MBytes 9.22 Mbits/sec > > cc@s1:~ % sudo sysctl net.inet.siftr.enabled=3D0 > > net.inet.siftr.enabled: 1 -> 0 > > > > cc@s1:~ % ll /var/log/siftr.log > > -rw-r--r-- 1 root wheel 91K Apr 25 09:38 /var/log/siftr.log > > cc@s1:~ % cat /var/log/siftr.log > > enable_time_secs=3D1682437111 enable_time_usecs=3D121115 > siftrver=3D1.3.0 sysname=3DFreeBSD sysver=3D1400088 ipmode=3D4 > > > o,0x00000000,1682437125.907343,10.1.1.2,33817,10.1.1.3,5001,1073725440,10= 73725440,2,0,0,0,0,2,536,0,1,672,1000000,32768,0,65536,0,0,0,0,0 > > > i,0x00000000,1682437126.106759,10.1.1.2,33817,10.1.1.3,5001,1073725440,10= 73725440,2,0,0,0,0,2,536,0,1,672,1000000,32768,0,65536,0,1,0,0,0 > > > o,0x00000000,1682437126.106767,10.1.1.2,33817,10.1.1.3,5001,1073725440,14= 480,2,65535,65700,9,9,4,1460,201000,1,16778209,803000,33580,0,65700,0,0,0,0= ,0 > > > o,0x00000000,1682437126.107141,10.1.1.2,33817,10.1.1.3,5001,1073725440,14= 480,2,65535,65700,9,9,4,1460,201000,1,16778208,803000,33580,60,65700,0,0,0,= 0,0 > > ... > > > i,0x00000000,1682437127.016754,10.1.1.2,33817,10.1.1.3,5001,1073725440,60= 6109,1030,748544,66048,9,9,9,1460,100812,1,1008,303000,475948,0,65700,0,0,0= ,0,0 > > > o,0x00000000,1682437127.016759,10.1.1.2,33817,10.1.1.3,5001,1073725440,60= 6109,1030,748544,66048,9,9,10,1460,100812,1,1011,303000,475948,0,65700,0,0,= 0,0,0 > > disable_time_secs=3D1682437131 disable_time_usecs=3D767582 > num_inbound_tcp_pkts=3D371 num_outbound_tcp_pkts=3D186 > total_tcp_pkts=3D557 num_inbound_skipped_pkts_malloc=3D0 > num_outbound_skipped_pkts_malloc=3D0 num_inbound_skipped_pkts_tcpcb= =3D0 > num_outbound_skipped_pkts_tcpcb=3D0 > num_inbound_skipped_pkts_inpcb=3D0 num_outbound_skipped_pkts_inpc= b=3D0 > total_skipped_tcp_pkts=3D0 flow_list=3D10.1.1.2;33817-10.1.1.= 3;5001, > > > > Reviewers: rscheff, tuexen > > Approved by: rscheff, tuexen > > Subscribers: imp, melifaro, glebius > > Differential Revision: https://reviews.freebsd.org/D39803 > > --- > > share/man/man4/siftr.4 | 21 +++------------------ > > sys/netinet/siftr.c | 34 +++++++++++++++------------------- > > 2 files changed, 18 insertions(+), 37 deletions(-) > > > > Hello, > > This commit message is messy, and not easily understood. In particular > the subject line should be shorter, and the 'Test Plan' probably should > have been removed completely. > > The full set of guidelines for commit messages is documented in the > Committers Guide: > https://docs.freebsd.org/en/articles/committers-guide/#commit-log-message > > Next time you will need to clean up the message before pushing. > Unfortunately the default output of the 'arc' tool does not generate a > message that meets the guidelines. Ask your mentors for more information > if you need it. Now you know :) > > Cheers, > Mitchell > > > diff --git a/share/man/man4/siftr.4 b/share/man/man4/siftr.4 > > index 0406a38779b6..78eb755ddef1 100644 > > --- a/share/man/man4/siftr.4 > > +++ b/share/man/man4/siftr.4 > > @@ -29,7 +29,7 @@ > > .\" > > .\" $FreeBSD$ > > .\" > > -.Dd April 24, 2023 > > +.Dd April 25, 2023 > > .Dt SIFTR 4 > > .Os > > .Sh NAME > > @@ -175,14 +175,6 @@ version of > > .Nm . > > .El > > .Bl -tag -offset indent -width Va > > -.It Va hz > > -tick rate of the kernel in ticks per second. > > -.El > > -.Bl -tag -offset indent -width Va > > -.It Va tcp_rtt_scale > > -smoothed RTT estimate scaling factor. > > -.El > > -.Bl -tag -offset indent -width Va > > .It Va sysname > > operating system name. > > .El > > @@ -294,11 +286,7 @@ The maximum segment size for the flow, in bytes. > > .El > > .Bl -tag -offset indent -width Va > > .It Va 17 > > -The current smoothed RTT estimate for the flow, in units of > TCP_RTT_SCALE * HZ, > > -where TCP_RTT_SCALE is a define found in tcp_var.h, and HZ is the > kernel's tick > > -timer. > > -Divide by TCP_RTT_SCALE * HZ to get the RTT in secs. > > -TCP_RTT_SCALE and HZ are reported in the enable log message. > > +The current smoothed RTT estimate for the flow, in units of microsecon= d. > > .El > > .Bl -tag -offset indent -width Va > > .It Va 18 > > @@ -313,10 +301,7 @@ for information about the various flags. > > .El > > .Bl -tag -offset indent -width Va > > .It Va 20 > > -The current retransmission timeout length for the flow, in units of HZ= , > where HZ > > -is the kernel's tick timer. > > -Divide by HZ to get the timeout length in seconds. > > -HZ is reported in the enable log message. > > +The current retransmission timeout length for the flow, in units > microsecond. > > .El > > .Bl -tag -offset indent -width Va > > .It Va 21 > > diff --git a/sys/netinet/siftr.c b/sys/netinet/siftr.c > > index a23980704e17..05104627910d 100644 > > --- a/sys/netinet/siftr.c > > +++ b/sys/netinet/siftr.c > > @@ -207,11 +207,8 @@ struct pkt_node { > > int conn_state; > > /* Max Segment Size (bytes). */ > > u_int max_seg_size; > > - /* > > - * Smoothed RTT stored as found in the TCP control block > > - * in units of (TCP_RTT_SCALE*hz). > > - */ > > - int smoothed_rtt; > > + /* Smoothed RTT (usecs). */ > > + uint32_t srtt; > > /* Is SACK enabled? */ > > u_char sack_enabled; > > /* Window scaling for snd window. */ > > @@ -220,8 +217,8 @@ struct pkt_node { > > u_char rcv_scale; > > /* TCP control block flags. */ > > u_int flags; > > - /* Retransmit timeout length. */ > > - int rxt_length; > > + /* Retransmission timeout (usec). */ > > + uint32_t rto; > > /* Size of the TCP send buffer in bytes. */ > > u_int snd_buf_hiwater; > > /* Current num bytes in the send socket buffer. */ > > @@ -453,7 +450,7 @@ siftr_process_pkt(struct pkt_node * pkt_node) > > MAX_LOG_MSG_LEN, > > > "%c,0x%08x,%zd.%06ld,%x:%x:%x:%x:%x:%x:%x:%x,%u,%x:%x:%x:" > > "%x:%x:%x:%x:%x,%u,%u,%u,%u,%u,%u,%u,%u,%u,%u,%u,%u," > > - "%u,%d,%u,%u,%u,%u,%u,%u,%u,%u\n", > > + "%u,%u,%u,%u,%u,%u,%u,%u,%u,%u\n", > > direction[pkt_node->direction], > > pkt_node->hash, > > pkt_node->tval.tv_sec, > > @@ -485,10 +482,10 @@ siftr_process_pkt(struct pkt_node * pkt_node) > > pkt_node->rcv_scale, > > pkt_node->conn_state, > > pkt_node->max_seg_size, > > - pkt_node->smoothed_rtt, > > + pkt_node->srtt, > > pkt_node->sack_enabled, > > pkt_node->flags, > > - pkt_node->rxt_length, > > + pkt_node->rto, > > pkt_node->snd_buf_hiwater, > > pkt_node->snd_buf_cc, > > pkt_node->rcv_buf_hiwater, > > @@ -512,7 +509,7 @@ siftr_process_pkt(struct pkt_node * pkt_node) > > log_buf->ae_bytesused =3D snprintf(log_buf->ae_data, > > MAX_LOG_MSG_LEN, > > > "%c,0x%08x,%jd.%06ld,%u.%u.%u.%u,%u,%u.%u.%u.%u,%u,%u,%u," > > - > "%u,%u,%u,%u,%u,%u,%u,%u,%u,%u,%d,%u,%u,%u,%u,%u,%u,%u,%u\n", > > + > "%u,%u,%u,%u,%u,%u,%u,%u,%u,%u,%u,%u,%u,%u,%u,%u,%u,%u,%u\n", > > direction[pkt_node->direction], > > pkt_node->hash, > > (intmax_t)pkt_node->tval.tv_sec, > > @@ -536,10 +533,10 @@ siftr_process_pkt(struct pkt_node * pkt_node) > > pkt_node->rcv_scale, > > pkt_node->conn_state, > > pkt_node->max_seg_size, > > - pkt_node->smoothed_rtt, > > + pkt_node->srtt, > > pkt_node->sack_enabled, > > pkt_node->flags, > > - pkt_node->rxt_length, > > + pkt_node->rto, > > pkt_node->snd_buf_hiwater, > > pkt_node->snd_buf_cc, > > pkt_node->rcv_buf_hiwater, > > @@ -785,10 +782,10 @@ siftr_siftdata(struct pkt_node *pn, struct inpcb > *inp, struct tcpcb *tp, > > pn->rcv_scale =3D tp->rcv_scale; > > pn->conn_state =3D tp->t_state; > > pn->max_seg_size =3D tp->t_maxseg; > > - pn->smoothed_rtt =3D tp->t_srtt; > > + pn->srtt =3D ((u_int64_t)tp->t_srtt * tick) >> TCP_RTT_SHIFT; > > pn->sack_enabled =3D (tp->t_flags & TF_SACK_PERMIT) !=3D 0; > > pn->flags =3D tp->t_flags; > > - pn->rxt_length =3D tp->t_rxtcur; > > + pn->rto =3D tp->t_rxtcur * tick; > > pn->snd_buf_hiwater =3D inp->inp_socket->so_snd.sb_hiwat; > > pn->snd_buf_cc =3D sbused(&inp->inp_socket->so_snd); > > pn->rcv_buf_hiwater =3D inp->inp_socket->so_rcv.sb_hiwat; > > @@ -1270,10 +1267,9 @@ siftr_manage_ops(uint8_t action) > > > > sbuf_printf(s, > > "enable_time_secs=3D%jd\tenable_time_usecs=3D%06ld\t" > > - "siftrver=3D%s\thz=3D%u\ttcp_rtt_scale=3D%u\tsysname= =3D%s\t" > > - "sysver=3D%u\tipmode=3D%u\n", > > - (intmax_t)tval.tv_sec, tval.tv_usec, MODVERSION_STR, > hz, > > - TCP_RTT_SCALE, SYS_NAME, __FreeBSD_version, > SIFTR_IPMODE); > > + "siftrver=3D%s\tsysname=3D%s\tsysver=3D%u\tipmode=3D%= u\n", > > + (intmax_t)tval.tv_sec, tval.tv_usec, MODVERSION_STR, > > + SYS_NAME, __FreeBSD_version, SIFTR_IPMODE); > > > > sbuf_finish(s); > > alq_writen(siftr_alq, sbuf_data(s), sbuf_len(s), > ALQ_WAITOK); > --000000000000118c9e05fa304989 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Apologize. I am thinking there must be some mess up b= etween 'arc' and 'git commit --amend',
as my orig= inal git commit message was well organized into 72 chars-per-line. The test= plan
added by the 'arc' during=C2=A0 "arc dif= f --create" (I thought this command is used to create the
=
Phabricator review page) is automatically mixed into the updated git m= essage.

My mentor already notified me about this m= ess. Now I know how to reproduce this problem,
and I = will take care of it in the future. :)

Best Regards,
Cheng Cui


On Tue, Apr 25, 2023 at 5:52=E2=80=AFPM Mitchell Hor= ne <mhorne@freebsd.org> wro= te:


On 4/25/23 18:26, Cheng Cui wrote:
> The branch main has been updated by cc:
>
> URL: https://= cgit.FreeBSD.org/src/commit/?id=3Dd090464ecd4af5cd400ef5cbbfe8409d019eac34<= /a>
>
> commit d090464ecd4af5cd400ef5cbbfe8409d019eac34
> Author:=C2=A0 =C2=A0 =C2=A0Cheng Cui <cc@FreeBSD.org>
> AuthorDate: 2023-04-25 11:52:28 +0000
> Commit:=C2=A0 =C2=A0 =C2=A0Cheng Cui <cc@FreeBSD.org>
> CommitDate: 2023-04-25 17:26:39 +0000
>
>=C2=A0 =C2=A0 =C2=A0 Change the unit of srtt and rto to usec, inspired = by these in struct "tcp_info". Therefore, no need hz and tcp_rtt_= scale in the headline of the log. Update the man page as well.
>=C2=A0 =C2=A0 =C2=A0
>=C2=A0 =C2=A0 =C2=A0 Summary: Simplify srtt and rto values in siftr log= .
>=C2=A0 =C2=A0 =C2=A0
>=C2=A0 =C2=A0 =C2=A0 Test Plan:
>=C2=A0 =C2=A0 =C2=A0 Tested in Emulab testbed:
>=C2=A0 =C2=A0 =C2=A0 cc@s1:~ % sudo sysctl net.inet.siftr
>=C2=A0 =C2=A0 =C2=A0 net.inet.siftr.port_filter: 0
>=C2=A0 =C2=A0 =C2=A0 net.inet.siftr.genhashes: 0
>=C2=A0 =C2=A0 =C2=A0 net.inet.siftr.ppl: 1
>=C2=A0 =C2=A0 =C2=A0 net.inet.siftr.logfile: /var/log/siftr.log
>=C2=A0 =C2=A0 =C2=A0 net.inet.siftr.enabled: 0
>=C2=A0 =C2=A0 =C2=A0 cc@s1:~ % sudo sysctl net.inet.siftr.port_filter= =3D5001
>=C2=A0 =C2=A0 =C2=A0 net.inet.siftr.port_filter: 0 -> 5001
>=C2=A0 =C2=A0 =C2=A0 cc@s1:~ % sudo sysctl net.inet.siftr.enabled=3D1 >=C2=A0 =C2=A0 =C2=A0 net.inet.siftr.enabled: 0 -> 1
>=C2=A0 =C2=A0 =C2=A0 cc@s1:~ %
>=C2=A0 =C2=A0 =C2=A0 cc@s1:~ % iperf -c r1 -n 1M
>=C2=A0 =C2=A0 =C2=A0 --------------------------------------------------= ----------
>=C2=A0 =C2=A0 =C2=A0 Client connecting to r1, TCP port 5001
>=C2=A0 =C2=A0 =C2=A0 TCP window size: 32.0 KByte (default)
>=C2=A0 =C2=A0 =C2=A0 --------------------------------------------------= ----------
>=C2=A0 =C2=A0 =C2=A0 [=C2=A0 1] local 10.1.1.2 port 33817 connected wit= h 10.1.1.3 port 5001
>=C2=A0 =C2=A0 =C2=A0 [ ID] Interval=C2=A0 =C2=A0 =C2=A0 =C2=A0Transfer= =C2=A0 =C2=A0 =C2=A0Bandwidth
>=C2=A0 =C2=A0 =C2=A0 [=C2=A0 1] 0.00-0.91 sec=C2=A0 1.00 MBytes=C2=A0 9= .22 Mbits/sec
>=C2=A0 =C2=A0 =C2=A0 cc@s1:~ % sudo sysctl net.inet.siftr.enabled=3D0 >=C2=A0 =C2=A0 =C2=A0 net.inet.siftr.enabled: 1 -> 0
>=C2=A0 =C2=A0 =C2=A0
>=C2=A0 =C2=A0 =C2=A0 cc@s1:~ % ll /var/log/siftr.log
>=C2=A0 =C2=A0 =C2=A0 -rw-r--r--=C2=A0 1 root=C2=A0 wheel=C2=A0 =C2=A0 9= 1K Apr 25 09:38 /var/log/siftr.log
>=C2=A0 =C2=A0 =C2=A0 cc@s1:~ % cat /var/log/siftr.log
>=C2=A0 =C2=A0 =C2=A0 enable_time_secs=3D1682437111=C2=A0 =C2=A0 =C2=A0e= nable_time_usecs=3D121115=C2=A0 =C2=A0 =C2=A0 =C2=A0 siftrver=3D1.3.0=C2=A0= sysname=3DFreeBSD sysver=3D1400088=C2=A0 ipmode=3D4
>=C2=A0 =C2=A0 =C2=A0 o,0x00000000,1682437125.907343,10.1.1.2,33817,10.1= .1.3,5001,1073725440,1073725440,2,0,0,0,0,2,536,0,1,672,1000000,32768,0,655= 36,0,0,0,0,0
>=C2=A0 =C2=A0 =C2=A0 i,0x00000000,1682437126.106759,10.1.1.2,33817,10.1= .1.3,5001,1073725440,1073725440,2,0,0,0,0,2,536,0,1,672,1000000,32768,0,655= 36,0,1,0,0,0
>=C2=A0 =C2=A0 =C2=A0 o,0x00000000,1682437126.106767,10.1.1.2,33817,10.1= .1.3,5001,1073725440,14480,2,65535,65700,9,9,4,1460,201000,1,16778209,80300= 0,33580,0,65700,0,0,0,0,0
>=C2=A0 =C2=A0 =C2=A0 o,0x00000000,1682437126.107141,10.1.1.2,33817,10.1= .1.3,5001,1073725440,14480,2,65535,65700,9,9,4,1460,201000,1,16778208,80300= 0,33580,60,65700,0,0,0,0,0
>=C2=A0 =C2=A0 =C2=A0 ...
>=C2=A0 =C2=A0 =C2=A0 i,0x00000000,1682437127.016754,10.1.1.2,33817,10.1= .1.3,5001,1073725440,606109,1030,748544,66048,9,9,9,1460,100812,1,1008,3030= 00,475948,0,65700,0,0,0,0,0
>=C2=A0 =C2=A0 =C2=A0 o,0x00000000,1682437127.016759,10.1.1.2,33817,10.1= .1.3,5001,1073725440,606109,1030,748544,66048,9,9,10,1460,100812,1,1011,303= 000,475948,0,65700,0,0,0,0,0
>=C2=A0 =C2=A0 =C2=A0 disable_time_secs=3D1682437131=C2=A0 =C2=A0 disabl= e_time_usecs=3D767582=C2=A0 =C2=A0 =C2=A0 =C2=A0num_inbound_tcp_pkts=3D371= =C2=A0 =C2=A0 =C2=A0 =C2=A0 num_outbound_tcp_pkts=3D186=C2=A0 =C2=A0 =C2=A0= =C2=A0total_tcp_pkts=3D557=C2=A0 =C2=A0 =C2=A0 num_inbound_skipped_pkts_ma= lloc=3D0=C2=A0 =C2=A0 =C2=A0 =C2=A0num_outbound_skipped_pkts_malloc=3D0=C2= =A0 =C2=A0 =C2=A0 num_inbound_skipped_pkts_tcpcb=3D0=C2=A0 =C2=A0 =C2=A0 = =C2=A0 num_outbound_skipped_pkts_tcpcb=3D0=C2=A0 =C2=A0 =C2=A0 =C2=A0num_in= bound_skipped_pkts_inpcb=3D0=C2=A0 =C2=A0 =C2=A0 =C2=A0 num_outbound_skippe= d_pkts_inpcb=3D0=C2=A0 =C2=A0 =C2=A0 =C2=A0total_skipped_tcp_pkts=3D0=C2=A0= =C2=A0 =C2=A0 =C2=A0 flow_list=3D10.1.1.2;33817-10.1.1.3;5001,
>=C2=A0 =C2=A0 =C2=A0
>=C2=A0 =C2=A0 =C2=A0 Reviewers: rscheff, tuexen
>=C2=A0 =C2=A0 =C2=A0 Approved by: rscheff, tuexen
>=C2=A0 =C2=A0 =C2=A0 Subscribers: imp, melifaro, glebius
>=C2=A0 =C2=A0 =C2=A0 Differential Revision:
https://reviews.fr= eebsd.org/D39803
> ---
>=C2=A0 =C2=A0share/man/man4/siftr.4 | 21 +++------------------
>=C2=A0 =C2=A0sys/netinet/siftr.c=C2=A0 =C2=A0 | 34 +++++++++++++++-----= --------------
>=C2=A0 =C2=A02 files changed, 18 insertions(+), 37 deletions(-)
>

Hello,

This commit message is messy, and not easily understood. In particular
the subject line should be shorter, and the 'Test Plan' probably sh= ould
have been removed completely.

The full set of guidelines for commit messages is documented in the
Committers Guide:
https://docs.freebsd.org/en= /articles/committers-guide/#commit-log-message

Next time you will need to clean up the message before pushing.
Unfortunately the default output of the 'arc' tool does not generat= e a
message that meets the guidelines. Ask your mentors for more information if you need it. Now you know :)

Cheers,
Mitchell

> diff --git a/share/man/man4/siftr.4 b/share/man/man4/siftr.4
> index 0406a38779b6..78eb755ddef1 100644
> --- a/share/man/man4/siftr.4
> +++ b/share/man/man4/siftr.4
> @@ -29,7 +29,7 @@
>=C2=A0 =C2=A0.\"
>=C2=A0 =C2=A0.\" $FreeBSD$
>=C2=A0 =C2=A0.\"
> -.Dd April 24, 2023
> +.Dd April 25, 2023
>=C2=A0 =C2=A0.Dt SIFTR 4
>=C2=A0 =C2=A0.Os
>=C2=A0 =C2=A0.Sh NAME
> @@ -175,14 +175,6 @@ version of
>=C2=A0 =C2=A0.Nm .
>=C2=A0 =C2=A0.El
>=C2=A0 =C2=A0.Bl -tag -offset indent -width Va
> -.It Va hz
> -tick rate of the kernel in ticks per second.
> -.El
> -.Bl -tag -offset indent -width Va
> -.It Va tcp_rtt_scale
> -smoothed RTT estimate scaling factor.
> -.El
> -.Bl -tag -offset indent -width Va
>=C2=A0 =C2=A0.It Va sysname
>=C2=A0 =C2=A0operating system name.
>=C2=A0 =C2=A0.El
> @@ -294,11 +286,7 @@ The maximum segment size for the flow, in bytes.<= br> >=C2=A0 =C2=A0.El
>=C2=A0 =C2=A0.Bl -tag -offset indent -width Va
>=C2=A0 =C2=A0.It Va 17
> -The current smoothed RTT estimate for the flow, in units of TCP_RTT_S= CALE * HZ,
> -where TCP_RTT_SCALE is a define found in tcp_var.h, and HZ is the ker= nel's tick
> -timer.
> -Divide by TCP_RTT_SCALE * HZ to get the RTT in secs.
> -TCP_RTT_SCALE and HZ are reported in the enable log message.
> +The current smoothed RTT estimate for the flow, in units of microseco= nd.
>=C2=A0 =C2=A0.El
>=C2=A0 =C2=A0.Bl -tag -offset indent -width Va
>=C2=A0 =C2=A0.It Va 18
> @@ -313,10 +301,7 @@ for information about the various flags.
>=C2=A0 =C2=A0.El
>=C2=A0 =C2=A0.Bl -tag -offset indent -width Va
>=C2=A0 =C2=A0.It Va 20
> -The current retransmission timeout length for the flow, in units of H= Z, where HZ
> -is the kernel's tick timer.
> -Divide by HZ to get the timeout length in seconds.
> -HZ is reported in the enable log message.
> +The current retransmission timeout length for the flow, in units micr= osecond.
>=C2=A0 =C2=A0.El
>=C2=A0 =C2=A0.Bl -tag -offset indent -width Va
>=C2=A0 =C2=A0.It Va 21
> diff --git a/sys/netinet/siftr.c b/sys/netinet/siftr.c
> index a23980704e17..05104627910d 100644
> --- a/sys/netinet/siftr.c
> +++ b/sys/netinet/siftr.c
> @@ -207,11 +207,8 @@ struct pkt_node {
>=C2=A0 =C2=A0 =C2=A0 =C2=A0int=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0conn_state;
>=C2=A0 =C2=A0 =C2=A0 =C2=A0/* Max Segment Size (bytes). */
>=C2=A0 =C2=A0 =C2=A0 =C2=A0u_int=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0max_seg_size;
> -=C2=A0 =C2=A0 =C2=A0/*
> -=C2=A0 =C2=A0 =C2=A0 * Smoothed RTT stored as found in the TCP contro= l block
> -=C2=A0 =C2=A0 =C2=A0 * in units of (TCP_RTT_SCALE*hz).
> -=C2=A0 =C2=A0 =C2=A0 */
> -=C2=A0 =C2=A0 =C2=A0int=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0smoothed_rtt;
> +=C2=A0 =C2=A0 =C2=A0/* Smoothed RTT (usecs). */
> +=C2=A0 =C2=A0 =C2=A0uint32_t=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= =C2=A0 =C2=A0 srtt;
>=C2=A0 =C2=A0 =C2=A0 =C2=A0/* Is SACK enabled? */
>=C2=A0 =C2=A0 =C2=A0 =C2=A0u_char=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 sack_enabled;
>=C2=A0 =C2=A0 =C2=A0 =C2=A0/* Window scaling for snd window. */
> @@ -220,8 +217,8 @@ struct pkt_node {
>=C2=A0 =C2=A0 =C2=A0 =C2=A0u_char=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 rcv_scale;
>=C2=A0 =C2=A0 =C2=A0 =C2=A0/* TCP control block flags. */
>=C2=A0 =C2=A0 =C2=A0 =C2=A0u_int=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0flags;
> -=C2=A0 =C2=A0 =C2=A0/* Retransmit timeout length. */
> -=C2=A0 =C2=A0 =C2=A0int=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0rxt_length;
> +=C2=A0 =C2=A0 =C2=A0/* Retransmission timeout (usec). */
> +=C2=A0 =C2=A0 =C2=A0uint32_t=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= =C2=A0 =C2=A0 rto;
>=C2=A0 =C2=A0 =C2=A0 =C2=A0/* Size of the TCP send buffer in bytes. */<= br> >=C2=A0 =C2=A0 =C2=A0 =C2=A0u_int=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0snd_buf_hiwater;
>=C2=A0 =C2=A0 =C2=A0 =C2=A0/* Current num bytes in the send socket buff= er. */
> @@ -453,7 +450,7 @@ siftr_process_pkt(struct pkt_node * pkt_node)
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0MA= X_LOG_MSG_LEN,
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0&q= uot;%c,0x%08x,%zd.%06ld,%x:%x:%x:%x:%x:%x:%x:%x,%u,%x:%x:%x:"
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0&q= uot;%x:%x:%x:%x:%x,%u,%u,%u,%u,%u,%u,%u,%u,%u,%u,%u,%u,"
> -=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0"%= u,%d,%u,%u,%u,%u,%u,%u,%u,%u\n",
> +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0"%= u,%u,%u,%u,%u,%u,%u,%u,%u,%u\n",
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0di= rection[pkt_node->direction],
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0pk= t_node->hash,
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0pk= t_node->tval.tv_sec,
> @@ -485,10 +482,10 @@ siftr_process_pkt(struct pkt_node * pkt_node) >=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0pk= t_node->rcv_scale,
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0pk= t_node->conn_state,
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0pk= t_node->max_seg_size,
> -=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0pkt_nod= e->smoothed_rtt,
> +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0pkt_nod= e->srtt,
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0pk= t_node->sack_enabled,
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0pk= t_node->flags,
> -=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0pkt_nod= e->rxt_length,
> +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0pkt_nod= e->rto,
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0pk= t_node->snd_buf_hiwater,
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0pk= t_node->snd_buf_cc,
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0pk= t_node->rcv_buf_hiwater,
> @@ -512,7 +509,7 @@ siftr_process_pkt(struct pkt_node * pkt_node)
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0log_buf->ae_b= ytesused =3D snprintf(log_buf->ae_data,
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0MA= X_LOG_MSG_LEN,
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0&q= uot;%c,0x%08x,%jd.%06ld,%u.%u.%u.%u,%u,%u.%u.%u.%u,%u,%u,%u,"
> -=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0"%= u,%u,%u,%u,%u,%u,%u,%u,%u,%u,%d,%u,%u,%u,%u,%u,%u,%u,%u\n",
> +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0"%= u,%u,%u,%u,%u,%u,%u,%u,%u,%u,%u,%u,%u,%u,%u,%u,%u,%u,%u\n",
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0di= rection[pkt_node->direction],
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0pk= t_node->hash,
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(i= ntmax_t)pkt_node->tval.tv_sec,
> @@ -536,10 +533,10 @@ siftr_process_pkt(struct pkt_node * pkt_node) >=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0pk= t_node->rcv_scale,
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0pk= t_node->conn_state,
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0pk= t_node->max_seg_size,
> -=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0pkt_nod= e->smoothed_rtt,
> +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0pkt_nod= e->srtt,
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0pk= t_node->sack_enabled,
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0pk= t_node->flags,
> -=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0pkt_nod= e->rxt_length,
> +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0pkt_nod= e->rto,
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0pk= t_node->snd_buf_hiwater,
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0pk= t_node->snd_buf_cc,
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0pk= t_node->rcv_buf_hiwater,
> @@ -785,10 +782,10 @@ siftr_siftdata(struct pkt_node *pn, struct inpcb= *inp, struct tcpcb *tp,
>=C2=A0 =C2=A0 =C2=A0 =C2=A0pn->rcv_scale =3D tp->rcv_scale;
>=C2=A0 =C2=A0 =C2=A0 =C2=A0pn->conn_state =3D tp->t_state;
>=C2=A0 =C2=A0 =C2=A0 =C2=A0pn->max_seg_size =3D tp->t_maxseg;
> -=C2=A0 =C2=A0 =C2=A0pn->smoothed_rtt =3D tp->t_srtt;
> +=C2=A0 =C2=A0 =C2=A0pn->srtt =3D ((u_int64_t)tp->t_srtt * tick)= >> TCP_RTT_SHIFT;
>=C2=A0 =C2=A0 =C2=A0 =C2=A0pn->sack_enabled =3D (tp->t_flags &= ; TF_SACK_PERMIT) !=3D 0;
>=C2=A0 =C2=A0 =C2=A0 =C2=A0pn->flags =3D tp->t_flags;
> -=C2=A0 =C2=A0 =C2=A0pn->rxt_length =3D tp->t_rxtcur;
> +=C2=A0 =C2=A0 =C2=A0pn->rto =3D tp->t_rxtcur * tick;
>=C2=A0 =C2=A0 =C2=A0 =C2=A0pn->snd_buf_hiwater =3D inp->inp_socke= t->so_snd.sb_hiwat;
>=C2=A0 =C2=A0 =C2=A0 =C2=A0pn->snd_buf_cc =3D sbused(&inp->in= p_socket->so_snd);
>=C2=A0 =C2=A0 =C2=A0 =C2=A0pn->rcv_buf_hiwater =3D inp->inp_socke= t->so_rcv.sb_hiwat;
> @@ -1270,10 +1267,9 @@ siftr_manage_ops(uint8_t action)
>=C2=A0 =C2=A0
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0sbuf_printf(s, >=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0&q= uot;enable_time_secs=3D%jd\tenable_time_usecs=3D%06ld\t"
> -=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0"s= iftrver=3D%s\thz=3D%u\ttcp_rtt_scale=3D%u\tsysname=3D%s\t"
> -=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0"s= ysver=3D%u\tipmode=3D%u\n",
> -=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(intmax= _t)tval.tv_sec, tval.tv_usec, MODVERSION_STR, hz,
> -=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0TCP_RTT= _SCALE, SYS_NAME, __FreeBSD_version, SIFTR_IPMODE);
> +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0"s= iftrver=3D%s\tsysname=3D%s\tsysver=3D%u\tipmode=3D%u\n",
> +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0(intmax= _t)tval.tv_sec, tval.tv_usec, MODVERSION_STR,
> +=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0SYS_NAM= E, __FreeBSD_version, SIFTR_IPMODE);
>=C2=A0 =C2=A0
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0sbuf_finish(s);<= br> >=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0alq_writen(siftr= _alq, sbuf_data(s), sbuf_len(s), ALQ_WAITOK);
--000000000000118c9e05fa304989--