diff --git a/config/stack_config.h b/config/stack_config.h
index 294eed17..2e363644 100644
--- a/config/stack_config.h
+++ b/config/stack_config.h
@@ -243,10 +243,24 @@
/* enable to configure MmsServer at runtime */
#define CONFIG_MMS_SERVER_CONFIG_SERVICES_AT_RUNTIME 1
+/* Define the default number of the maximum outstanding calls allowed by the caller (client) */
+#define CONFIG_DEFAULT_MAX_SERV_OUTSTANDING_CALLING 5
+
+/* Define the default number of the maximum outstanding calls allowed by the calling endpoint (server) */
+#define CONFIG_DEFAULT_MAX_SERV_OUTSTANDING_CALLED 5
+
/************************************************************************************
* Check configuration for consistency - DO NOT MODIFY THIS PART!
************************************************************************************/
+#if (CONFIG_DEFAULT_MAX_SERV_OUTSTANDING_CALLING < 1)
+#error "Invalid configuration: CONFIG_DEFAULT_MAX_SERV_OUTSTANDING_CALLING must be greater than 0!"
+#endif
+
+#if (CONFIG_DEFAULT_MAX_SERV_OUTSTANDING_CALLED < 1)
+#error "Invalid configuration: CONFIG_DEFAULT_MAX_SERV_OUTSTANDING_CALLED must be greater than 0!"
+#endif
+
#if (MMS_JOURNAL_SERVICE != 1)
#if (CONFIG_IEC61850_LOG_SERVICE == 1)
diff --git a/config/stack_config.h.cmake b/config/stack_config.h.cmake
index 60d3b0dd..eaca7448 100644
--- a/config/stack_config.h.cmake
+++ b/config/stack_config.h.cmake
@@ -232,10 +232,24 @@
/* enable to configure MmsServer at runtime */
#define CONFIG_MMS_SERVER_CONFIG_SERVICES_AT_RUNTIME 1
+/* Define the default number of the maximum outstanding calls allowed by the caller (client) */
+#define CONFIG_DEFAULT_MAX_SERV_OUTSTANDING_CALLING 5
+
+/* Define the default number of the maximum outstanding calls allowed by the calling endpoint (server) */
+#define CONFIG_DEFAULT_MAX_SERV_OUTSTANDING_CALLED 5
+
/************************************************************************************
* Check configuration for consistency - DO NOT MODIFY THIS PART!
************************************************************************************/
+#if (CONFIG_DEFAULT_MAX_SERV_OUTSTANDING_CALLING < 1)
+#error "Invalid configuration: CONFIG_DEFAULT_MAX_SERV_OUTSTANDING_CALLING must be greater than 0!"
+#endif
+
+#if (CONFIG_DEFAULT_MAX_SERV_OUTSTANDING_CALLED < 1)
+#error "Invalid configuration: CONFIG_DEFAULT_MAX_SERV_OUTSTANDING_CALLED must be greater than 0!"
+#endif
+
#if (MMS_JOURNAL_SERVICE != 1)
#if (CONFIG_IEC61850_LOG_SERVICE == 1)
diff --git a/dotnet/IEC61850forCSharp/IEC61850ClientAPI.cs b/dotnet/IEC61850forCSharp/IEC61850ClientAPI.cs
index 4bb653bb..a7831cc8 100644
--- a/dotnet/IEC61850forCSharp/IEC61850ClientAPI.cs
+++ b/dotnet/IEC61850forCSharp/IEC61850ClientAPI.cs
@@ -431,6 +431,9 @@ namespace IEC61850
[DllImport("iec61850", CallingConvention = CallingConvention.Cdecl)]
static extern UInt32 IedConnection_getRequestTimeout(IntPtr self);
+ [DllImport("iec61850", CallingConvention = CallingConvention.Cdecl)]
+ static extern void IedConnection_setMaxOutstandingCalls(IntPtr self, int calling, int called);
+
[DllImport("iec61850", CallingConvention = CallingConvention.Cdecl)]
static extern void IedConnection_setTimeQuality(IntPtr self, [MarshalAs(UnmanagedType.I1)] bool leapSecondKnown, [MarshalAs(UnmanagedType.I1)] bool clockFailure, [MarshalAs(UnmanagedType.I1)] bool clockNotSynchronized, int subsecondPrecision);
@@ -815,6 +818,16 @@ namespace IEC61850
}
}
+ ///
+ /// Set the maximum number outstanding calls allowed for this connection
+ ///
+ /// the maximum outstanding calls allowed by the caller (client)
+ /// the maximum outstanding calls allowed by the called endpoint (server)
+ public void SetMaxOutstandingCalls(int calling, int called)
+ {
+ IedConnection_setMaxOutstandingCalls(connection, calling, called);
+ }
+
///
/// Gets or sets the maximum size if a PDU (has to be set before calling connect!).
///
diff --git a/src/iec61850/client/ied_connection.c b/src/iec61850/client/ied_connection.c
index b394cc56..dd65e4d7 100644
--- a/src/iec61850/client/ied_connection.c
+++ b/src/iec61850/client/ied_connection.c
@@ -33,7 +33,6 @@
#define DEFAULT_CONNECTION_TIMEOUT 10000
#define DATA_SET_MAX_NAME_LENGTH 64 /* is 32 according to standard! */
-#define OUTSTANDING_CALLS 12
typedef struct sICLogicalDevice
{
@@ -174,8 +173,10 @@ iedConnection_allocateOutstandingCall(IedConnection self)
int i = 0;
- for (i = 0; i < OUTSTANDING_CALLS; i++) {
- if (self->outstandingCalls[i].used == false) {
+ for (i = 0; i < self->maxOutstandingCalled; i++)
+ {
+ if (self->outstandingCalls[i].used == false)
+ {
self->outstandingCalls[i].used = true;
call = &(self->outstandingCalls[i]);
break;
@@ -206,8 +207,10 @@ iedConnection_lookupOutstandingCall(IedConnection self, uint32_t invokeId)
int i = 0;
- for (i = 0; i < OUTSTANDING_CALLS; i++) {
- if ((self->outstandingCalls[i].used) && (self->outstandingCalls[i].invokeId == invokeId)) {
+ for (i = 0; i < self->maxOutstandingCalled; i++)
+ {
+ if ((self->outstandingCalls[i].used) && (self->outstandingCalls[i].invokeId == invokeId))
+ {
call = &(self->outstandingCalls[i]);
break;
}
@@ -615,7 +618,8 @@ createNewConnectionObject(TLSConfiguration tlsConfig, bool useThreads)
self->reportHandlerMutex = Semaphore_create(1);
self->outstandingCallsLock = Semaphore_create(1);
- self->outstandingCalls = (IedConnectionOutstandingCall) GLOBAL_CALLOC(OUTSTANDING_CALLS, sizeof(struct sIedConnectionOutstandingCall));
+ self->maxOutstandingCalled = CONFIG_DEFAULT_MAX_SERV_OUTSTANDING_CALLED;
+ self->outstandingCalls = (IedConnectionOutstandingCall) GLOBAL_CALLOC(CONFIG_DEFAULT_MAX_SERV_OUTSTANDING_CALLED, sizeof(struct sIedConnectionOutstandingCall));
self->connectionTimeout = DEFAULT_CONNECTION_TIMEOUT;
@@ -660,6 +664,29 @@ IedConnection_setLocalAddress(IedConnection self, const char* localIpAddress, in
IsoConnectionParameters_setLocalTcpParameters(isoP, localIpAddress, localPort);
}
+void
+IedConnection_setMaxOutstandingCalls(IedConnection self, int calling, int called)
+{
+ if (calling < 1)
+ calling = 1;
+
+ if (called < 1)
+ called = 1;
+
+ if (self->outstandingCalls)
+ {
+ GLOBAL_FREEMEM(self->outstandingCalls);
+ }
+
+ self->maxOutstandingCalled = called;
+ self->outstandingCalls = (IedConnectionOutstandingCall)GLOBAL_CALLOC(called, sizeof(struct sIedConnectionOutstandingCall));
+
+ if (self->connection)
+ {
+ MmsConnnection_setMaxOutstandingCalls(self->connection, calling, called);
+ }
+}
+
void
IedConnection_setConnectTimeout(IedConnection self, uint32_t timeoutInMs)
{
@@ -669,7 +696,8 @@ IedConnection_setConnectTimeout(IedConnection self, uint32_t timeoutInMs)
void
IedConnection_setRequestTimeout(IedConnection self, uint32_t timeoutInMs)
{
- if (self->connection) {
+ if (self->connection)
+ {
MmsConnection_setRequestTimeout(self->connection, timeoutInMs);
}
}
diff --git a/src/iec61850/inc/iec61850_client.h b/src/iec61850/inc/iec61850_client.h
index 8a6f5371..f9b2b0c0 100644
--- a/src/iec61850/inc/iec61850_client.h
+++ b/src/iec61850/inc/iec61850_client.h
@@ -255,6 +255,16 @@ IedConnection_setLocalAddress(IedConnection self, const char* localIpAddress, in
LIB61850_API void
IedConnection_setConnectTimeout(IedConnection self, uint32_t timeoutInMs);
+/**
+ * \brief Set the maximum number outstanding calls allowed for this connection
+ *
+ * \param self the connection object
+ * \param calling the maximum outstanding calls allowed by the caller (client)
+ * \param called the maximum outstanding calls allowed by the called endpoint (server)
+ */
+LIB61850_API void
+IedConnection_setMaxOutstandingCalls(IedConnection self, int calling, int called);
+
/**
* \brief set the request timeout in ms
*
diff --git a/src/iec61850/inc_private/ied_connection_private.h b/src/iec61850/inc_private/ied_connection_private.h
index e571ca8e..5e9c2aeb 100644
--- a/src/iec61850/inc_private/ied_connection_private.h
+++ b/src/iec61850/inc_private/ied_connection_private.h
@@ -69,6 +69,7 @@ struct sIedConnection
Semaphore outstandingCallsLock;
IedConnectionOutstandingCall outstandingCalls;
+ int maxOutstandingCalled;
IedConnectionClosedHandler connectionCloseHandler;
void* connectionClosedParameter;
diff --git a/src/mms/inc/mms_client_connection.h b/src/mms/inc/mms_client_connection.h
index 86f12c9b..7447b33b 100644
--- a/src/mms/inc/mms_client_connection.h
+++ b/src/mms/inc/mms_client_connection.h
@@ -160,6 +160,16 @@ MmsConnection_setFilestoreBasepath(MmsConnection self, const char* basepath);
LIB61850_API void
MmsConnection_setRequestTimeout(MmsConnection self, uint32_t timeoutInMs);
+/**
+ * \brief Set the maximum number outstanding calls allowed for this connection
+ *
+ * \param self MmsConnection instance to operate on
+ * \param calling the maximum outstanding calls allowed by the caller (client)
+ * \param called the maximum outstanding calls allowed by the called endpoint (server)
+ */
+LIB61850_API void
+MmsConnnection_setMaxOutstandingCalls(MmsConnection self, int calling, int called);
+
/**
* \brief Get the request timeout in ms for this connection
*
diff --git a/src/mms/inc_private/mms_client_internal.h b/src/mms/inc_private/mms_client_internal.h
index aa0e60f3..5a7b2242 100644
--- a/src/mms/inc_private/mms_client_internal.h
+++ b/src/mms/inc_private/mms_client_internal.h
@@ -95,6 +95,8 @@ struct sMmsConnection {
Semaphore outstandingCallsLock;
MmsOutstandingCall outstandingCalls;
+ int maxOutstandingCalled;
+ int maxOutstandingCalling;
uint32_t requestTimeout;
uint32_t connectTimeout;
diff --git a/src/mms/inc_private/mms_common_internal.h b/src/mms/inc_private/mms_common_internal.h
index 0c508fbf..61faea58 100644
--- a/src/mms/inc_private/mms_common_internal.h
+++ b/src/mms/inc_private/mms_common_internal.h
@@ -30,8 +30,6 @@
#include "byte_buffer.h"
#include "mms_server.h"
-#define DEFAULT_MAX_SERV_OUTSTANDING_CALLING 5
-#define DEFAULT_MAX_SERV_OUTSTANDING_CALLED 5
#define DEFAULT_DATA_STRUCTURE_NESTING_LEVEL 10
typedef struct sMmsOutstandingCall* MmsOutstandingCall;
diff --git a/src/mms/iso_mms/client/mms_client_connection.c b/src/mms/iso_mms/client/mms_client_connection.c
index cc63582b..e1d5811c 100644
--- a/src/mms/iso_mms/client/mms_client_connection.c
+++ b/src/mms/iso_mms/client/mms_client_connection.c
@@ -37,7 +37,6 @@
#define CONFIG_MMS_CONNECTION_DEFAULT_TIMEOUT 5000
#define CONFIG_MMS_CONNECTION_DEFAULT_CONNECT_TIMEOUT 10000
-#define OUTSTANDING_CALLS 10
static void
setConnectionState(MmsConnection self, MmsConnectionState newState)
@@ -255,9 +254,12 @@ checkForOutstandingCall(MmsConnection self, uint32_t invokeId)
Semaphore_wait(self->outstandingCallsLock);
- for (i = 0; i < OUTSTANDING_CALLS; i++) {
- if (self->outstandingCalls[i].isUsed) {
- if (self->outstandingCalls[i].invokeId == invokeId) {
+ for (i = 0; i < self->maxOutstandingCalled; i++)
+ {
+ if (self->outstandingCalls[i].isUsed)
+ {
+ if (self->outstandingCalls[i].invokeId == invokeId)
+ {
Semaphore_post(self->outstandingCallsLock);
return &(self->outstandingCalls[i]);
}
@@ -276,8 +278,10 @@ addToOutstandingCalls(MmsConnection self, uint32_t invokeId, eMmsOutstandingCall
Semaphore_wait(self->outstandingCallsLock);
- for (i = 0; i < OUTSTANDING_CALLS; i++) {
- if (self->outstandingCalls[i].isUsed == false) {
+ for (i = 0; i < self->maxOutstandingCalled; i++)
+ {
+ if (self->outstandingCalls[i].isUsed == false)
+ {
self->outstandingCalls[i].isUsed = true;
self->outstandingCalls[i].invokeId = invokeId;
self->outstandingCalls[i].timeout = Hal_getTimeInMs() + self->requestTimeout;
@@ -302,9 +306,12 @@ removeFromOutstandingCalls(MmsConnection self, uint32_t invokeId)
Semaphore_wait(self->outstandingCallsLock);
- for (i = 0; i < OUTSTANDING_CALLS; i++) {
- if (self->outstandingCalls[i].isUsed) {
- if (self->outstandingCalls[i].invokeId == invokeId) {
+ for (i = 0; i < self->maxOutstandingCalled; i++)
+ {
+ if (self->outstandingCalls[i].isUsed)
+ {
+ if (self->outstandingCalls[i].invokeId == invokeId)
+ {
self->outstandingCalls[i].isUsed = false;
break;
}
@@ -321,11 +328,12 @@ mmsClient_getMatchingObtainFileRequest(MmsConnection self, const char* filename)
Semaphore_wait(self->outstandingCallsLock);
- for (i = 0; i < OUTSTANDING_CALLS; i++) {
- if (self->outstandingCalls[i].isUsed) {
-
- if (self->outstandingCalls[i].type == MMS_CALL_TYPE_OBTAIN_FILE) {
-
+ for (i = 0; i < self->maxOutstandingCalled; i++)
+ {
+ if (self->outstandingCalls[i].isUsed)
+ {
+ if (self->outstandingCalls[i].type == MMS_CALL_TYPE_OBTAIN_FILE)
+ {
char* storedFilename = (char*) self->outstandingCalls[i].internalParameter.ptr;
if (storedFilename) {
@@ -1008,8 +1016,8 @@ mmsIsoCallback(IsoIndication indication, void* parameter, ByteBuffer* payload)
int i = 0;
- for (i = 0; i < OUTSTANDING_CALLS; i++) {
-
+ for (i = 0; i < self->maxOutstandingCalled; i++)
+ {
Semaphore_wait(self->outstandingCallsLock);
if (self->outstandingCalls[i].isUsed) {
@@ -1057,8 +1065,8 @@ mmsIsoCallback(IsoIndication indication, void* parameter, ByteBuffer* payload)
{
int i;
- for (i = 0; i < OUTSTANDING_CALLS; i++) {
-
+ for (i = 0; i < self->maxOutstandingCalled; i++)
+ {
Semaphore_wait(self->outstandingCallsLock);
if (self->outstandingCalls[i].isUsed) {
@@ -1493,7 +1501,9 @@ MmsConnection_createInternal(TLSConfiguration tlsConfig, bool createThread)
self->concludeHandlerParameter = NULL;
self->concludeTimeout = 0;
- self->outstandingCalls = (MmsOutstandingCall) GLOBAL_CALLOC(OUTSTANDING_CALLS, sizeof(struct sMmsOutstandingCall));
+ self->maxOutstandingCalling = CONFIG_DEFAULT_MAX_SERV_OUTSTANDING_CALLING;
+ self->maxOutstandingCalled = CONFIG_DEFAULT_MAX_SERV_OUTSTANDING_CALLED;
+ self->outstandingCalls = (MmsOutstandingCall) GLOBAL_CALLOC(CONFIG_DEFAULT_MAX_SERV_OUTSTANDING_CALLED, sizeof(struct sMmsOutstandingCall));
self->isoParameters = IsoConnectionParameters_create();
@@ -1652,6 +1662,25 @@ MmsConnection_setRequestTimeout(MmsConnection self, uint32_t timeoutInMs)
self->requestTimeout = timeoutInMs;
}
+void
+MmsConnnection_setMaxOutstandingCalls(MmsConnection self, int calling, int called)
+{
+ if (calling < 1)
+ calling = 1;
+
+ if (called < 1)
+ called = 1;
+
+ if (self->outstandingCalls)
+ {
+ GLOBAL_FREEMEM(self->outstandingCalls);
+ }
+
+ self->maxOutstandingCalling = calling;
+ self->maxOutstandingCalled = called;
+ self->outstandingCalls = (MmsOutstandingCall)GLOBAL_CALLOC(called, sizeof(struct sMmsOutstandingCall));
+}
+
uint32_t
MmsConnection_getRequestTimeout(MmsConnection self)
{
diff --git a/src/mms/iso_mms/client/mms_client_initiate.c b/src/mms/iso_mms/client/mms_client_initiate.c
index fdd9b94e..8eb930de 100644
--- a/src/mms/iso_mms/client/mms_client_initiate.c
+++ b/src/mms/iso_mms/client/mms_client_initiate.c
@@ -39,18 +39,16 @@ static uint8_t servicesSupported[] = { 0xee, 0x1c, 0x00, 0x00, 0x04, 0x08, 0x00,
void
mmsClient_createInitiateRequest(MmsConnection self, ByteBuffer* message)
{
- int maxServerOutstandingCalling = DEFAULT_MAX_SERV_OUTSTANDING_CALLING;
- int maxServerOutstandingCalled = DEFAULT_MAX_SERV_OUTSTANDING_CALLED;
int dataStructureNestingLevel = DEFAULT_DATA_STRUCTURE_NESTING_LEVEL;
uint32_t localDetailSize =
BerEncoder_UInt32determineEncodedSize(self->parameters.maxPduSize);
uint32_t proposedMaxServerOutstandingCallingSize =
- BerEncoder_UInt32determineEncodedSize(maxServerOutstandingCalling);
+ BerEncoder_UInt32determineEncodedSize(self->maxOutstandingCalling);
uint32_t proposedMaxServerOutstandingCalledSize =
- BerEncoder_UInt32determineEncodedSize(maxServerOutstandingCalled);
+ BerEncoder_UInt32determineEncodedSize(self->maxOutstandingCalled);
uint32_t dataStructureNestingLevelSize =
BerEncoder_UInt32determineEncodedSize(dataStructureNestingLevel);
@@ -76,11 +74,11 @@ mmsClient_createInitiateRequest(MmsConnection self, ByteBuffer* message)
/* proposedMaxServerOutstandingCalling */
bufPos = BerEncoder_encodeTL(0x81, proposedMaxServerOutstandingCallingSize, buffer, bufPos);
- bufPos = BerEncoder_encodeUInt32(maxServerOutstandingCalling, buffer, bufPos);
+ bufPos = BerEncoder_encodeUInt32(self->maxOutstandingCalling, buffer, bufPos);
/* proposedMaxServerOutstandingCalled */
bufPos = BerEncoder_encodeTL(0x82, proposedMaxServerOutstandingCalledSize, buffer, bufPos);
- bufPos = BerEncoder_encodeUInt32(maxServerOutstandingCalled, buffer, bufPos);
+ bufPos = BerEncoder_encodeUInt32(self->maxOutstandingCalled, buffer, bufPos);
/* proposedDataStructureNestingLevel */
bufPos = BerEncoder_encodeTL(0x83, dataStructureNestingLevelSize, buffer, bufPos);
@@ -169,8 +167,8 @@ mmsClient_parseInitiateResponse(MmsConnection self, ByteBuffer* response)
{
self->parameters.maxPduSize = CONFIG_MMS_MAXIMUM_PDU_SIZE;
self->parameters.dataStructureNestingLevel = DEFAULT_DATA_STRUCTURE_NESTING_LEVEL;
- self->parameters.maxServOutstandingCalled = DEFAULT_MAX_SERV_OUTSTANDING_CALLED;
- self->parameters.maxServOutstandingCalling = DEFAULT_MAX_SERV_OUTSTANDING_CALLING;
+ self->parameters.maxServOutstandingCalled = CONFIG_DEFAULT_MAX_SERV_OUTSTANDING_CALLED;
+ self->parameters.maxServOutstandingCalling = CONFIG_DEFAULT_MAX_SERV_OUTSTANDING_CALLING;
int bufPos = 1; /* ignore tag - already checked */
@@ -203,16 +201,16 @@ mmsClient_parseInitiateResponse(MmsConnection self, ByteBuffer* response)
case 0x81: /* proposed-max-serv-outstanding-calling */
self->parameters.maxServOutstandingCalling = BerDecoder_decodeUint32(buffer, length, bufPos);
- if (self->parameters.maxServOutstandingCalling > DEFAULT_MAX_SERV_OUTSTANDING_CALLING)
- self->parameters.maxServOutstandingCalling = DEFAULT_MAX_SERV_OUTSTANDING_CALLING;
+ if (self->parameters.maxServOutstandingCalling > CONFIG_DEFAULT_MAX_SERV_OUTSTANDING_CALLING)
+ self->parameters.maxServOutstandingCalling = CONFIG_DEFAULT_MAX_SERV_OUTSTANDING_CALLING;
break;
case 0x82: /* proposed-max-serv-outstanding-called */
self->parameters.maxServOutstandingCalled = BerDecoder_decodeUint32(buffer, length, bufPos);
- if (self->parameters.maxServOutstandingCalled > DEFAULT_MAX_SERV_OUTSTANDING_CALLED)
- self->parameters.maxServOutstandingCalled = DEFAULT_MAX_SERV_OUTSTANDING_CALLED;
+ if (self->parameters.maxServOutstandingCalled > CONFIG_DEFAULT_MAX_SERV_OUTSTANDING_CALLED)
+ self->parameters.maxServOutstandingCalled = CONFIG_DEFAULT_MAX_SERV_OUTSTANDING_CALLED;
break;
case 0x83: /* proposed-data-structure-nesting-level */
diff --git a/src/mms/iso_mms/server/mms_association_service.c b/src/mms/iso_mms/server/mms_association_service.c
index 83a32f3e..667f365d 100644
--- a/src/mms/iso_mms/server/mms_association_service.c
+++ b/src/mms/iso_mms/server/mms_association_service.c
@@ -330,9 +330,9 @@ parseInitiateRequestPdu(MmsServerConnection self, uint8_t* buffer, int bufPos, i
self->dataStructureNestingLevel =
DEFAULT_DATA_STRUCTURE_NESTING_LEVEL;
- self->maxServOutstandingCalled = DEFAULT_MAX_SERV_OUTSTANDING_CALLED;
+ self->maxServOutstandingCalled = CONFIG_DEFAULT_MAX_SERV_OUTSTANDING_CALLED;
- self->maxServOutstandingCalling = DEFAULT_MAX_SERV_OUTSTANDING_CALLING;
+ self->maxServOutstandingCalling = CONFIG_DEFAULT_MAX_SERV_OUTSTANDING_CALLING;
self->negotiatedParameterCBC[0] = 0;
self->negotiatedParameterCBC[1] = 0;
@@ -367,16 +367,16 @@ parseInitiateRequestPdu(MmsServerConnection self, uint8_t* buffer, int bufPos, i
case 0x81: /* proposed-max-serv-outstanding-calling */
self->maxServOutstandingCalling = BerDecoder_decodeUint32(buffer, length, bufPos);
- if (self->maxServOutstandingCalling > DEFAULT_MAX_SERV_OUTSTANDING_CALLING)
- self->maxServOutstandingCalling = DEFAULT_MAX_SERV_OUTSTANDING_CALLING;
+ if (self->maxServOutstandingCalling > CONFIG_DEFAULT_MAX_SERV_OUTSTANDING_CALLING)
+ self->maxServOutstandingCalling = CONFIG_DEFAULT_MAX_SERV_OUTSTANDING_CALLING;
break;
case 0x82: /* proposed-max-serv-outstanding-called */
self->maxServOutstandingCalled = BerDecoder_decodeUint32(buffer, length, bufPos);
- if (self->maxServOutstandingCalled > DEFAULT_MAX_SERV_OUTSTANDING_CALLED)
- self->maxServOutstandingCalled = DEFAULT_MAX_SERV_OUTSTANDING_CALLED;
+ if (self->maxServOutstandingCalled > CONFIG_DEFAULT_MAX_SERV_OUTSTANDING_CALLED)
+ self->maxServOutstandingCalled = CONFIG_DEFAULT_MAX_SERV_OUTSTANDING_CALLED;
break;
case 0x83: /* proposed-data-structure-nesting-level */