View | Details | Raw Unified | Return to bug 173444 | Differences between
and this patch

Collapse All | Expand All

(-)sys/netinet/ip6.h (+1 lines)
Lines 256-261 Link Here
256
#define IPV6_HLIMDEC	1	/* subtracted when forwarding */
256
#define IPV6_HLIMDEC	1	/* subtracted when forwarding */
257
257
258
#define IPV6_MMTU	1280	/* minimal MTU and reassembly. 1024 + 256 */
258
#define IPV6_MMTU	1280	/* minimal MTU and reassembly. 1024 + 256 */
259
#define IPV6_MMSS	1220	/* maximum MSS when IP6_USE_MIN_MTU is 1 */
259
#define IPV6_MAXPACKET	65535	/* ip6 max packet size without Jumbo payload*/
260
#define IPV6_MAXPACKET	65535	/* ip6 max packet size without Jumbo payload*/
260
#define IPV6_MAXOPTHDR	2048	/* max option header size, 256 64-bit words */
261
#define IPV6_MAXOPTHDR	2048	/* max option header size, 256 64-bit words */
261
262
(-)sys/netinet/tcp_input.c (+16 lines)
Lines 1280-1285 Link Here
1280
			    (void *)tcp_saveipgen, &tcp_savetcp, 0);
1280
			    (void *)tcp_saveipgen, &tcp_savetcp, 0);
1281
#endif
1281
#endif
1282
		tcp_dooptions(&to, optp, optlen, TO_SYN);
1282
		tcp_dooptions(&to, optp, optlen, TO_SYN);
1283
#ifdef INET6
1284
		if (isipv6 && inp) {
1285
			struct ip6_pktopts *opt;
1286
			opt = inp->in6p_outputopts;
1287
			if (opt && opt->ip6po_minmtu == IP6PO_MINMTU_ALL) {
1288
				if (to.to_flags & TOF_MSS)
1289
					to.to_mss = min(to.to_mss, IPV6_MMSS);
1290
				else
1291
					to.to_mss = IPV6_MMSS;
1292
			}
1293
		}
1294
#endif
1283
		syncache_add(&inc, &to, th, inp, &so, m);
1295
		syncache_add(&inc, &to, th, inp, &so, m);
1284
		/*
1296
		/*
1285
		 * Entry added to syncache and mbuf consumed.
1297
		 * Entry added to syncache and mbuf consumed.
Lines 3356-3362 Link Here
3356
	/* Initialize. */
3368
	/* Initialize. */
3357
#ifdef INET6
3369
#ifdef INET6
3358
	if (isipv6) {
3370
	if (isipv6) {
3371
		struct ip6_pktopts *opt;
3359
		maxmtu = tcp_maxmtu6(&inp->inp_inc, mtuflags);
3372
		maxmtu = tcp_maxmtu6(&inp->inp_inc, mtuflags);
3373
		opt = inp->inp_depend6.inp6_outputopts;
3374
		if (opt && opt->ip6po_minmtu == IP6PO_MINMTU_ALL)
3375
			maxmtu = min(maxmtu, IPV6_MMTU);
3360
		tp->t_maxopd = tp->t_maxseg = V_tcp_v6mssdflt;
3376
		tp->t_maxopd = tp->t_maxseg = V_tcp_v6mssdflt;
3361
	} else
3377
	} else
3362
#endif
3378
#endif
(-)sys/netinet/tcp_output.c (+9 lines)
Lines 692-697 Link Here
692
		if (flags & TH_SYN) {
692
		if (flags & TH_SYN) {
693
			tp->snd_nxt = tp->iss;
693
			tp->snd_nxt = tp->iss;
694
			to.to_mss = tcp_mssopt(&tp->t_inpcb->inp_inc);
694
			to.to_mss = tcp_mssopt(&tp->t_inpcb->inp_inc);
695
#ifdef INET6
696
			if (isipv6) {
697
				struct ip6_pktopts *opt;
698
				opt = tp->t_inpcb->in6p_outputopts;
699
				if (opt &&
700
				    opt->ip6po_minmtu == IP6PO_MINMTU_ALL)
701
					to.to_mss = min(to.to_mss, IPV6_MMSS);
702
			}
703
#endif
695
			to.to_flags |= TOF_MSS;
704
			to.to_flags |= TOF_MSS;
696
		}
705
		}
697
		/* Window scaling. */
706
		/* Window scaling. */

Return to bug 173444