svn commit: r197258 - in stable/8/sys: . amd64/include/xen
cddl/contrib/opensolaris contrib/dev/acpica contrib/pf
dev/xen/xenpci netinet
Michael Tuexen
tuexen at FreeBSD.org
Wed Sep 16 14:47:50 UTC 2009
Author: tuexen
Date: Wed Sep 16 14:47:50 2009
New Revision: 197258
URL: http://svn.freebsd.org/changeset/base/197258
Log:
MFC 197257:
Fix a bug reported by Daniel Mentz:
When authenticating DATA chunks some DATA chunks
might get stuck when the MTU gets decreased via
an ICMP message.
Approved by: re, rrs (mentor)
Modified:
stable/8/sys/ (props changed)
stable/8/sys/amd64/include/xen/ (props changed)
stable/8/sys/cddl/contrib/opensolaris/ (props changed)
stable/8/sys/contrib/dev/acpica/ (props changed)
stable/8/sys/contrib/pf/ (props changed)
stable/8/sys/dev/xen/xenpci/ (props changed)
stable/8/sys/netinet/sctp_usrreq.c
Modified: stable/8/sys/netinet/sctp_usrreq.c
==============================================================================
--- stable/8/sys/netinet/sctp_usrreq.c Wed Sep 16 14:23:31 2009 (r197257)
+++ stable/8/sys/netinet/sctp_usrreq.c Wed Sep 16 14:47:50 2009 (r197258)
@@ -106,6 +106,7 @@ sctp_pathmtu_adjustment(struct sctp_inpc
uint16_t nxtsz)
{
struct sctp_tmit_chunk *chk;
+ uint16_t overhead;
/* Adjust that too */
stcb->asoc.smallest_mtu = nxtsz;
@@ -114,13 +115,17 @@ sctp_pathmtu_adjustment(struct sctp_inpc
SCTP_PRINTF("sctp_pathmtu_adjust called inp:%p stcb:%p net:%p nxtsz:%d\n",
inp, stcb, net, nxtsz);
#endif
+ overhead = IP_HDR_SIZE;
+ if (sctp_auth_is_required_chunk(SCTP_DATA, stcb->asoc.peer_auth_chunks)) {
+ overhead += sctp_get_auth_chunk_len(stcb->asoc.peer_hmac_id);
+ }
TAILQ_FOREACH(chk, &stcb->asoc.send_queue, sctp_next) {
- if ((chk->send_size + IP_HDR_SIZE) > nxtsz) {
+ if ((chk->send_size + overhead) > nxtsz) {
chk->flags |= CHUNK_FLAGS_FRAGMENT_OK;
}
}
TAILQ_FOREACH(chk, &stcb->asoc.sent_queue, sctp_next) {
- if ((chk->send_size + IP_HDR_SIZE) > nxtsz) {
+ if ((chk->send_size + overhead) > nxtsz) {
/*
* For this guy we also mark for immediate resend
* since we sent to big of chunk
More information about the svn-src-stable-8
mailing list