svn commit: r291355 - in stable/10/sys: netinet netipsec

Renato Botelho garga at FreeBSD.org
Fri Nov 27 09:21:04 UTC 2015


> On Nov 26, 2015, at 00:24, George V. Neville-Neil <gnn at FreeBSD.org> wrote:
> 
> Author: gnn
> Date: Thu Nov 26 02:24:45 2015
> New Revision: 291355
> URL: https://svnweb.freebsd.org/changeset/base/291355
> 
> Log:
>  MFC 290028:
>  Turning on IPSEC used to introduce a slight amount of performance
>  degradation (7%) for host host TCP connections over 10Gbps links,
>  even when there were no secuirty policies in place. There is no
>  change in performance on 1Gbps network links. Testing GENERIC vs.
>  GENERIC-NOIPSEC vs. GENERIC with this change shows that the new
>  code removes any overhead introduced by having IPSEC always in the
>  kernel.
> 
>  Differential Revision:	D3993
>  Sponsored by:	Rubicon Communications (Netgate)
> 
> Modified:
>  stable/10/sys/netinet/ip_ipsec.c
>  stable/10/sys/netinet/tcp_subr.c
>  stable/10/sys/netipsec/ipsec.c
> Directory Properties:
>  stable/10/   (props changed)
> 
> Modified: stable/10/sys/netinet/ip_ipsec.c
> ==============================================================================
> --- stable/10/sys/netinet/ip_ipsec.c	Thu Nov 26 02:16:25 2015	(r291354)
> +++ stable/10/sys/netinet/ip_ipsec.c	Thu Nov 26 02:24:45 2015	(r291355)
> @@ -230,6 +230,10 @@ ip_ipsec_output(struct mbuf **m, struct 
> 	struct secpolicy *sp = NULL;
> 	struct tdb_ident *tdbi;
> 	struct m_tag *mtag;
> +
> +	if (!key_havesp(IPSEC_DIR_OUTBOUND))
> +		return 0;
> +
> 	/*
> 	 * Check the security policy (SP) for the packet and, if
> 	 * required, do IPsec-related processing.  There are two
> 
> Modified: stable/10/sys/netinet/tcp_subr.c
> ==============================================================================
> --- stable/10/sys/netinet/tcp_subr.c	Thu Nov 26 02:16:25 2015	(r291354)
> +++ stable/10/sys/netinet/tcp_subr.c	Thu Nov 26 02:24:45 2015	(r291355)
> @@ -1947,7 +1947,8 @@ ipsec_hdrsiz_tcp(struct tcpcb *tp)
> #endif
> 	struct tcphdr *th;
> 
> -	if ((tp == NULL) || ((inp = tp->t_inpcb) == NULL))
> +	if ((tp == NULL) || ((inp = tp->t_inpcb) == NULL) ||
> +		(!key_havesp(IPSEC_DIR_OUTBOUND)))

Looks like style is broken here ^

--
Renato Botelho



More information about the svn-src-all mailing list