Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 14 Sep 2016 14:48:00 +0000 (UTC)
From:      Michael Tuexen <tuexen@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r305810 - head/sys/netinet
Message-ID:  <201609141448.u8EEm0CD062877@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: tuexen
Date: Wed Sep 14 14:48:00 2016
New Revision: 305810
URL: https://svnweb.freebsd.org/changeset/base/305810

Log:
  Ensure that the IPPROTO_TCP level socket options
  * TCP_KEEPINIT
  * TCP_KEEPINTVL
  * TCP_KEEPIDLE
  * TCP_KEEPCNT
  always always report the values currently used when getsockopt()
  is used. This wasn't the case when the sysctl-inherited default
  values where used.
  Ensure that the IPPROTO_TCP level socket option TCP_INFO has the
  TCPI_OPT_ECN flag set in the tcpi_options field when ECN support
  has been negotiated successfully.
  
  Reviewed by:	rrs, jtl, hiren
  MFC after:	1 month
  Differential Revision:	7833

Modified:
  head/sys/netinet/tcp_usrreq.c

Modified: head/sys/netinet/tcp_usrreq.c
==============================================================================
--- head/sys/netinet/tcp_usrreq.c	Wed Sep 14 14:05:31 2016	(r305809)
+++ head/sys/netinet/tcp_usrreq.c	Wed Sep 14 14:48:00 2016	(r305810)
@@ -1329,6 +1329,8 @@ tcp_fill_info(struct tcpcb *tp, struct t
 		ti->tcpi_snd_wscale = tp->snd_scale;
 		ti->tcpi_rcv_wscale = tp->rcv_scale;
 	}
+	if (tp->t_flags & TF_ECN_PERMIT)
+		ti->tcpi_options |= TCPI_OPT_ECN;
 
 	ti->tcpi_rto = tp->t_rxtcur * tick;
 	ti->tcpi_last_data_recv = (long)(ticks - (int)tp->t_rcvtime) * tick;
@@ -1817,16 +1819,16 @@ unlock_and_done:
 		case TCP_KEEPCNT:
 			switch (sopt->sopt_name) {
 			case TCP_KEEPIDLE:
-				ui = tp->t_keepidle / hz;
+				ui = TP_KEEPIDLE(tp) / hz;
 				break;
 			case TCP_KEEPINTVL:
-				ui = tp->t_keepintvl / hz;
+				ui = TP_KEEPINTVL(tp) / hz;
 				break;
 			case TCP_KEEPINIT:
-				ui = tp->t_keepinit / hz;
+				ui = TP_KEEPINIT(tp) / hz;
 				break;
 			case TCP_KEEPCNT:
-				ui = tp->t_keepcnt;
+				ui = TP_KEEPCNT(tp);
 				break;
 			}
 			INP_WUNLOCK(inp);



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201609141448.u8EEm0CD062877>