--- old/usr/src/uts/common/inet/mib2.h	2012-08-18 10:37:18.893817909 +0000
+++ new/usr/src/uts/common/inet/mib2.h	2012-08-18 10:37:18.919544870 +0000
@@ -96,12 +96,14 @@
 #define	MIB2_TCP6		(IPPROTO_MAX+14)
 #define	MIB2_UDP6		(IPPROTO_MAX+15)
 #define	MIB2_SCTP		(IPPROTO_MAX+16)
+#define	MIB2_DCCP		(IPPROTO_MAX+17)
+#define	MIB2_DCCP6		(IPPROTO_MAX+18)
 
 /*
  * Define range of levels for use with MIB2_*
  */
 #define	MIB2_RANGE_START	(IPPROTO_MAX+1)
-#define	MIB2_RANGE_END		(IPPROTO_MAX+16)
+#define	MIB2_RANGE_END		(IPPROTO_MAX+18)
 
 
 #define	EXPER			1024	/* experimental - not part of mib */
@@ -1786,6 +1788,134 @@
 #pragma pack()
 #endif
 
+/*
+ * the DCCP group
+ */
+#define	MIB2_DCCP_CONN		18
+#define	MIB2_DCCP6_CONN		19
+
+#define	MIB2_DCCP_closed	1
+#define	MIB2_DCCP_listen	2
+
+/* Pack data to make struct size the same for 32- and 64-bits */
+#if _LONG_LONG_ALIGNMENT == 8 && _LONG_LONG_ALIGNMENT_32 == 4
+#pragma pack(4)
+#endif
+
+typedef struct mib2_dccp {
+
+		/* # of direct transitions CLOSED -> ACK-SENT	{ dccp 5 } */
+	Counter	dccpActiveOpens;
+		/* # of direct transitions LISTEN -> ACK-RCVD	{ dccp 6 } */
+	Counter	dccpPassiveOpens;
+		/* # of direct SIN-SENT/RCVD -> CLOSED/LISTEN	{ dccp 7 } */
+	Counter	dccpAttemptFails;
+		/* # of direct ESTABLISHED/CLOSE-WAIT -> CLOSED	{ dccp 8 } */
+	Counter	dccpEstabResets;
+		/* # of connections ESTABLISHED or CLOSE-WAIT	{ dccp 9 } */
+	Gauge	dccpCurrEstab;
+		/* total # of segments recv'd			{ dccp 10 } */
+	Counter	dccpInSegs;
+		/* total # of segments sent			{ dccp 11 } */
+	Counter	dccpOutSegs;
+		/* total # of segments retransmitted		{ dccp 12 } */
+	Counter	dccpRetransSegs;
+
+	Counter dccpTimRetrans;
+	/* total # of retransmit timeouts dropping the connection */
+	Counter dccpTimRetransDrop;
+	/* total # of keepalive timeouts */
+	Counter dccpTimKeepalive;
+	/* total # of keepalive timeouts sending a probe */
+	Counter dccpTimKeepaliveProbe;
+	/* total # of keepalive timeouts dropping the connection */
+	Counter dccpTimKeepaliveDrop;
+
+	Counter	dccpOutDataSegs;
+	Counter dccpOutDataBytes;
+
+	int	dccpEntrySize;
+	int	dccp6EntrySize;
+
+	int	dccpConnTableSize;
+	int	dccp6ConnTableSize;
+
+	Counter64	dccpHCInDatagrams;
+	/* total # of segments recv'd				{ tcp 17 } */
+	Counter64	dccpHCInSegs;
+	/* total # of segments sent				{ tcp 18 } */
+	Counter64	dccpHCOutSegs;
+} mib2_dccp_t;
+#define	MIB_FIRST_NEW_ELM_mib2_dccp_t	dccpHCInDatagrams
+
+#if _LONG_LONG_ALIGNMENT == 8 && _LONG_LONG_ALIGNMENT_32 == 4
+#pragma pack()
+#endif
+
+/* Pack data to make struct size the same for 32- and 64-bits */
+#if _LONG_LONG_ALIGNMENT == 8 && _LONG_LONG_ALIGNMENT_32 == 4
+#pragma pack(4)
+#endif
+
+typedef struct mib2_dccpConnEntry {
+	int		dccpConnState;
+	IpAddress	dccpConnLocalAddress;
+	int		dccpConnLocalPort;
+	IpAddress	dccpConnRemAddress;
+	int		dccpConnRemPort;
+
+	struct dccpConnEntryInfo_s {
+				/* current rto (retransmit timeout) */
+		Gauge		ce_rto;
+				/* current max segment size */
+		Gauge		ce_mss;
+				/* actual internal state */
+		int		ce_state;
+	} dccpConnEntryInfo;
+
+	uint32_t	dccpConnCreationProcess;
+	uint64_t	dccpConnCreationTime;
+} mib2_dccpConnEntry_t;
+#define	MIB_FIRST_NEW_ELM_mib2_dccpConnEntry_t	dccpConnCreationProcess
+
+#if _LONG_LONG_ALIGNMENT == 8 && _LONG_LONG_ALIGNMENT_32 == 4
+#pragma pack()
+#endif
+
+/* Pack data to make struct size the same for 32- and 64-bits */
+#if _LONG_LONG_ALIGNMENT == 8 && _LONG_LONG_ALIGNMENT_32 == 4
+#pragma pack(4)
+#endif
+
+typedef struct mib2_dccp6ConnEntry {
+	Ip6Address	dccp6ConnLocalAddress;
+	int		dccp6ConnLocalPort;
+	Ip6Address	dccp6ConnRemAddress;
+	int		dccp6ConnRemPort;
+	/* Interface index or zero		{ ipv6DccpConnEntry 5 } */
+	DeviceIndex	dccp6ConnIfIndex;
+	/* State of dccp6 connection		{ ipv6DccpConnEntry 6 } RW */
+	int		dccp6ConnState;
+
+	struct dccp6ConnEntryInfo_s {
+				/* current rto (retransmit timeout) */
+		Gauge		ce_rto;
+				/* current max segment size */
+		Gauge		ce_mss;
+				/* actual internal state */
+		int		ce_state;
+	} dccp6ConnEntryInfo;
+
+	/* PID of the processes that created this connection */
+	uint32_t	dccp6ConnCreationProcess;
+	/* System uptime when the connection was created */
+	uint64_t	dccp6ConnCreationTime;
+} mib2_dccp6ConnEntry_t;
+#define	MIB_FIRST_NEW_ELM_mib2_dccp6ConnEntry_t	dccp6ConnCreationProcess
+
+#if _LONG_LONG_ALIGNMENT == 8 && _LONG_LONG_ALIGNMENT_32 == 4
+#pragma pack()
+#endif
 
 #ifdef	__cplusplus
 }
