dcerpc.idl: add DCERPC_NCACN_{REQUEST,RESPONSE}_DEFAULT_MAX_SIZE
authorStefan Metzmacher <metze@samba.org>
Wed, 22 Jun 2016 14:58:03 +0000 (16:58 +0200)
committerKarolin Seeger <kseeger@samba.org>
Mon, 4 Jul 2016 07:09:51 +0000 (09:09 +0200)
This will replace DCERPC_NCACN_PAYLOAD_MAX_SIZE (4 MByte),
this limit is too strict for some workloads, e.g. DRSUAPI replication
with large objects.

BUG: https://bugzilla.samba.org/show_bug.cgi?id=11948

Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
(cherry picked from commit 281e11b53f676647997fb9ce21227782529a62ad)

librpc/idl/dcerpc.idl

index 015eb3d181516fccb9491971b713811994598c26..5e0f9193d08872386ba9fdfc8177c755d00f30cb 100644 (file)
@@ -537,6 +537,23 @@ interface dcerpc
        const uint8 DCERPC_NCACN_PAYLOAD_OFFSET = 16;
        const uint32 DCERPC_NCACN_PAYLOAD_MAX_SIZE = 0x400000; /* 4 MByte */
 
+       /*
+        * See [MS-RPCE] 3.3.3.5.4 Maximum Server Input Data Size
+        * 4 MByte is the default limit of reassembled request payload
+        */
+       const uint32 DCERPC_NCACN_REQUEST_DEFAULT_MAX_SIZE = 0x400000;
+
+       /*
+        * See [MS-RPCE] 3.3.2.5.2 Handling Responses
+        *
+        * Indicates that Windows accepts up to 0x7FFFFFFF ~2 GByte
+        *
+        * talloc has a limit of 256 MByte, so we need to use something smaller.
+        *
+        * For now we try our luck with 240 MByte.
+        */
+       const uint32 DCERPC_NCACN_RESPONSE_DEFAULT_MAX_SIZE = 0xf000000; /* 240 MByte */
+
        /* little-endian flag */
        const uint8 DCERPC_DREP_LE  = 0x10;