Module Name: src Committed By: ozaki-r Date: Mon Sep 7 01:56:50 UTC 2015
Modified Files: src/sys/netinet: tcp_subr.c Log Message: Refactor tcp_mtudisc No functional change. To generate a diff of this commit: cvs rdiff -u -r1.263 -r1.264 src/sys/netinet/tcp_subr.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/netinet/tcp_subr.c diff -u src/sys/netinet/tcp_subr.c:1.263 src/sys/netinet/tcp_subr.c:1.264 --- src/sys/netinet/tcp_subr.c:1.263 Mon Aug 24 22:21:26 2015 +++ src/sys/netinet/tcp_subr.c Mon Sep 7 01:56:50 2015 @@ -1,4 +1,4 @@ -/* $NetBSD: tcp_subr.c,v 1.263 2015/08/24 22:21:26 pooka Exp $ */ +/* $NetBSD: tcp_subr.c,v 1.264 2015/09/07 01:56:50 ozaki-r Exp $ */ /* * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project. @@ -91,7 +91,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: tcp_subr.c,v 1.263 2015/08/24 22:21:26 pooka Exp $"); +__KERNEL_RCSID(0, "$NetBSD: tcp_subr.c,v 1.264 2015/09/07 01:56:50 ozaki-r Exp $"); #ifdef _KERNEL_OPT #include "opt_inet.h" @@ -1768,41 +1768,43 @@ void tcp_mtudisc(struct inpcb *inp, int errno) { struct tcpcb *tp = intotcpcb(inp); - struct rtentry *rt = in_pcbrtentry(inp); + struct rtentry *rt; - if (tp != 0) { - if (rt != 0) { - /* - * If this was not a host route, remove and realloc. - */ - if ((rt->rt_flags & RTF_HOST) == 0) { - in_rtchange(inp, errno); - if ((rt = in_pcbrtentry(inp)) == 0) - return; - } + if (tp == NULL) + return; - /* - * Slow start out of the error condition. We - * use the MTU because we know it's smaller - * than the previously transmitted segment. - * - * Note: This is more conservative than the - * suggestion in draft-floyd-incr-init-win-03. - */ - if (rt->rt_rmx.rmx_mtu != 0) - tp->snd_cwnd = - TCP_INITIAL_WINDOW(tcp_init_win, - rt->rt_rmx.rmx_mtu); + rt = in_pcbrtentry(inp); + if (rt != NULL) { + /* + * If this was not a host route, remove and realloc. + */ + if ((rt->rt_flags & RTF_HOST) == 0) { + in_rtchange(inp, errno); + if ((rt = in_pcbrtentry(inp)) == NULL) + return; } /* - * Resend unacknowledged packets. + * Slow start out of the error condition. We + * use the MTU because we know it's smaller + * than the previously transmitted segment. + * + * Note: This is more conservative than the + * suggestion in draft-floyd-incr-init-win-03. */ - tp->snd_nxt = tp->sack_newdata = tp->snd_una; - tcp_output(tp); + if (rt->rt_rmx.rmx_mtu != 0) + tp->snd_cwnd = + TCP_INITIAL_WINDOW(tcp_init_win, + rt->rt_rmx.rmx_mtu); } + + /* + * Resend unacknowledged packets. + */ + tp->snd_nxt = tp->sack_newdata = tp->snd_una; + tcp_output(tp); } -#endif +#endif /* INET */ #ifdef INET6 /*