svn commit: r237230 - head/sys/netinet

Michael Tuexen tuexen at FreeBSD.org
Mon Jun 18 17:11:24 UTC 2012


Author: tuexen
Date: Mon Jun 18 17:11:24 2012
New Revision: 237230
URL: http://svn.freebsd.org/changeset/base/237230

Log:
  Add rate limitation for SCTP OOTB responses.
  
  MFC after: 3 days

Modified:
  head/sys/netinet/icmp_var.h
  head/sys/netinet/ip_icmp.c
  head/sys/netinet/sctp_input.c

Modified: head/sys/netinet/icmp_var.h
==============================================================================
--- head/sys/netinet/icmp_var.h	Mon Jun 18 17:09:39 2012	(r237229)
+++ head/sys/netinet/icmp_var.h	Mon Jun 18 17:11:24 2012	(r237230)
@@ -102,7 +102,8 @@ extern int badport_bandlim(int);
 #define BANDLIM_RST_CLOSEDPORT 3 /* No connection, and no listeners */
 #define BANDLIM_RST_OPENPORT 4   /* No connection, listener */
 #define BANDLIM_ICMP6_UNREACH 5
-#define BANDLIM_MAX 5
+#define BANDLIM_SCTP_OOTB 6
+#define BANDLIM_MAX 6
 #endif
 
 #endif

Modified: head/sys/netinet/ip_icmp.c
==============================================================================
--- head/sys/netinet/ip_icmp.c	Mon Jun 18 17:09:39 2012	(r237229)
+++ head/sys/netinet/ip_icmp.c	Mon Jun 18 17:11:24 2012	(r237230)
@@ -965,7 +965,8 @@ badport_bandlim(int which)
 		{ "icmp tstamp response" },
 		{ "closed port RST response" },
 		{ "open port RST response" },
-		{ "icmp6 unreach response" }
+		{ "icmp6 unreach response" },
+		{ "sctp ootb response" }
 	};
 
 	/*

Modified: head/sys/netinet/sctp_input.c
==============================================================================
--- head/sys/netinet/sctp_input.c	Mon Jun 18 17:09:39 2012	(r237229)
+++ head/sys/netinet/sctp_input.c	Mon Jun 18 17:11:24 2012	(r237230)
@@ -6060,15 +6060,8 @@ sctp_skip_csum_4:
 		struct sctp_init_chunk *init_chk, chunk_buf;
 
 		SCTP_STAT_INCR(sctps_noport);
-#ifdef ICMP_BANDLIM
-		/*
-		 * we use the bandwidth limiting to protect against sending
-		 * too many ABORTS all at once. In this case these count the
-		 * same as an ICMP message.
-		 */
-		if (badport_bandlim(0) < 0)
+		if (badport_bandlim(BANDLIM_SCTP_OOTB) < 0)
 			goto bad;
-#endif				/* ICMP_BANDLIM */
 		SCTPDBG(SCTP_DEBUG_INPUT1,
 		    "Sending a ABORT from packet entry!\n");
 		if (ch->chunk_type == SCTP_INITIATION) {


More information about the svn-src-all mailing list