laforge has submitted this change. ( https://gerrit.osmocom.org/c/libosmo-sigtran/+/41192?usp=email )
Change subject: fix SCCP_MAX_OPTIONAL_DATA 128
......................................................................
fix SCCP_MAX_OPTIONAL_DATA 128
Related: SYS#7600
Change-Id: I841dbb2e8cbc13708ba7f5593f6bdd3b8da4329c
---
M include/osmocom/sccp/sccp_types.h
M src/sccp_vty.c
M tests/vty/osmo_stp_test.vty
M tests/vty/ss7_asp_test.vty
4 files changed, 26 insertions(+), 8 deletions(-)
Approvals:
Jenkins Builder: Verified
laforge: Looks good to me, approved
diff --git a/include/osmocom/sccp/sccp_types.h b/include/osmocom/sccp/sccp_types.h
index 5be0392..ab688b3 100644
--- a/include/osmocom/sccp/sccp_types.h
+++ b/include/osmocom/sccp/sccp_types.h
@@ -24,7 +24,25 @@
#include <osmocom/core/endian.h>
#include <osmocom/core/utils.h>
-#define SCCP_MAX_OPTIONAL_DATA 130
+/* ITU Q.713 3.16 Data is a variable-length IE, meaning it has two header
+ * octets:
+ * - one octet of "Parameter name code",
+ * - plus one octet of length.
+ *
+ * In
+ * - 4.2 CR,
+ * - 4.3 CC,
+ * - 4.4 CREF,
+ * - 4.5 RLSD,
+ * there are optional "Data" IEs with length indicated as "3-130" octets: the
+ * minimum of 3 stems from the two header octets plus one data octet. Note that
+ * when there are zero data octets, the entire "Data" IE is omitted.
+ *
+ * Hence, the maximum of 130 includes the two header octets, and the actual
+ * maximum data length is 128.
+ */
+#define SCCP_MAX_OPTIONAL_DATA 128
+
#define SCCP_MAX_DATA 256
/* Table 1/Q.713 - SCCP message types */
diff --git a/src/sccp_vty.c b/src/sccp_vty.c
index 5243346..6b40134 100644
--- a/src/sccp_vty.c
+++ b/src/sccp_vty.c
@@ -218,10 +218,10 @@
"Adjust the upper bound for the optional data length (the payload) for CR, CC, CREF and RLSD messages."
" For any Optional Data part larger than this value in octets, send CR, CC, CREF and RLSD"
" messages without any payload, and send the data payload in a separate Data Form 1 message."
- " ITU-T Q.713 sections 4.2 thru 4.5 define a limit of 130 bytes for the 'Data' parameter. This limit can be"
+ " ITU-T Q.713 sections 4.2 thru 4.5 define a limit of 128 bytes for the 'Data' parameter. This limit can be"
" adjusted here. May be useful for interop with nonstandard SCCP peers.\n"
"Set a non-standard maximum allowed number of bytes\n"
- "Use the ITU-T Q.713 4.2 to 4.5 standard value of 130\n",
+ "Use the ITU-T Q.713 4.2 to 4.5 standard value of 128\n",
CMD_ATTR_IMMEDIATE)
{
struct osmo_ss7_instance *ss7 = vty->index;
diff --git a/tests/vty/osmo_stp_test.vty b/tests/vty/osmo_stp_test.vty
index 3f8dfaf..62ad287 100644
--- a/tests/vty/osmo_stp_test.vty
+++ b/tests/vty/osmo_stp_test.vty
@@ -714,11 +714,11 @@
<1-999999> Timer value, in seconds
OsmoSTP(config-cs7)# sccp ?
- max-optional-data Adjust the upper bound for the optional data length (the payload) for CR, CC, CREF and RLSD messages. For any Optional Data part larger than this value in octets, send CR, CC, CREF and RLSD messages without any payload, and send the data payload in a separate Data Form 1 message. ITU-T Q.713 sections 4.2 thru 4.5 define a limit of 130 bytes for the 'Data' parameter. This limit can be adjusted here. May be useful for interop with nonstandard SCCP peers.
+ max-optional-data Adjust the upper bound for the optional data length (the payload) for CR, CC, CREF and RLSD messages. For any Optional Data part larger than this value in octets, send CR, CC, CREF and RLSD messages without any payload, and send the data payload in a separate Data Form 1 message. ITU-T Q.713 sections 4.2 thru 4.5 define a limit of 128 bytes for the 'Data' parameter. This limit can be adjusted here. May be useful for interop with nonstandard SCCP peers.
OsmoSTP(config-cs7)# sccp max-optional-data ?
<0-999999> Set a non-standard maximum allowed number of bytes
- standard Use the ITU-T Q.713 4.2 to 4.5 standard value of 130
+ standard Use the ITU-T Q.713 4.2 to 4.5 standard value of 128
OsmoSTP(config-cs7)# show running-config
... !sccp max-optional-data
@@ -749,7 +749,7 @@
OsmoSTP(config-cs7)# show running-config
... !sccp max-optional-data
-OsmoSTP(config-cs7)# sccp max-optional-data 130
+OsmoSTP(config-cs7)# sccp max-optional-data 128
OsmoSTP(config-cs7)# show running-config
... !sccp max-optional-data
diff --git a/tests/vty/ss7_asp_test.vty b/tests/vty/ss7_asp_test.vty
index 2bf753d..581bc38 100644
--- a/tests/vty/ss7_asp_test.vty
+++ b/tests/vty/ss7_asp_test.vty
@@ -513,11 +513,11 @@
<1-999999> Timer value, in seconds
ss7_asp_vty_test(config-cs7)# sccp ?
- max-optional-data Adjust the upper bound for the optional data length (the payload) for CR, CC, CREF and RLSD messages. For any Optional Data part larger than this value in octets, send CR, CC, CREF and RLSD messages without any payload, and send the data payload in a separate Data Form 1 message. ITU-T Q.713 sections 4.2 thru 4.5 define a limit of 130 bytes for the 'Data' parameter. This limit can be adjusted here. May be useful for interop with nonstandard SCCP peers.
+ max-optional-data Adjust the upper bound for the optional data length (the payload) for CR, CC, CREF and RLSD messages. For any Optional Data part larger than this value in octets, send CR, CC, CREF and RLSD messages without any payload, and send the data payload in a separate Data Form 1 message. ITU-T Q.713 sections 4.2 thru 4.5 define a limit of 128 bytes for the 'Data' parameter. This limit can be adjusted here. May be useful for interop with nonstandard SCCP peers.
ss7_asp_vty_test(config-cs7)# sccp max-optional-data ?
<0-999999> Set a non-standard maximum allowed number of bytes
- standard Use the ITU-T Q.713 4.2 to 4.5 standard value of 130
+ standard Use the ITU-T Q.713 4.2 to 4.5 standard value of 128
ss7_asp_vty_test(config-cs7)# show running-config
... !sccp max-optional-data
--
To view, visit https://gerrit.osmocom.org/c/libosmo-sigtran/+/41192?usp=email
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: merged
Gerrit-Project: libosmo-sigtran
Gerrit-Branch: master
Gerrit-Change-Id: I841dbb2e8cbc13708ba7f5593f6bdd3b8da4329c
Gerrit-Change-Number: 41192
Gerrit-PatchSet: 2
Gerrit-Owner: neels <nhofmeyr(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: laforge <laforge(a)osmocom.org>
Gerrit-Reviewer: osmith <osmith(a)sysmocom.de>
Gerrit-Reviewer: pespin <pespin(a)sysmocom.de>