Attention is currently required from: laforge, pespin, keith.
Hello Jenkins Builder,
I'd like you to reexamine a change. Please visit
https://gerrit.osmocom.org/c/libosmo-abis/+/32374
to look at the new patch set (#5).
Change subject: e1d: reconnect to osmo-e1d after connection loss
......................................................................
e1d: reconnect to osmo-e1d after connection loss
When osmo-e1d crashes while a line is in use the client process may
experience not only a lost connection, it may also hang up in an endless
loop that would also spam the logfile. The reason for this is that the
e1d driver in libosmo-abis lacks mechanisms to detect when the
connection to osmo-e1d gets lost.
When osmo-e1d goes down the effects should be similar to those of a
normal connection loss of an e1 line (cable pulled). So let's add an FSM
that takes care of the recovery of the connection when it is lost. Also
make sure that no havoc happens when the connection gets lost.
Related: OS#5983
Change-Id: Iaf4d42c2f009b1d7666e319fabdeb2598aa0b338
---
M src/input/e1d.c
1 file changed, 253 insertions(+), 13 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/libosmo-abis refs/changes/74/32374/5
--
To view, visit https://gerrit.osmocom.org/c/libosmo-abis/+/32374
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: libosmo-abis
Gerrit-Branch: master
Gerrit-Change-Id: Iaf4d42c2f009b1d7666e319fabdeb2598aa0b338
Gerrit-Change-Number: 32374
Gerrit-PatchSet: 5
Gerrit-Owner: dexter <pmaier(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-CC: keith <keith(a)rhizomatica.org>
Gerrit-CC: laforge <laforge(a)osmocom.org>
Gerrit-CC: pespin <pespin(a)sysmocom.de>
Gerrit-CC: tnt <tnt(a)246tNt.com>
Gerrit-Attention: laforge <laforge(a)osmocom.org>
Gerrit-Attention: pespin <pespin(a)sysmocom.de>
Gerrit-Attention: keith <keith(a)rhizomatica.org>
Gerrit-MessageType: newpatchset
Attention is currently required from: fixeria, pespin.
osmith has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/32494 )
Change subject: gsm_04_08*.h: Reference successor TS 24.008
......................................................................
Patch Set 1:
(1 comment)
Patchset:
PS1:
> I might be wrong, but IIRC, TS 04.08 has two successors: TS 24.008 and TS 44.018.
is there a table somewhere where one can look this up? I often wonder which TS is succeeded by which
--
To view, visit https://gerrit.osmocom.org/c/libosmocore/+/32494
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: libosmocore
Gerrit-Branch: master
Gerrit-Change-Id: Ie81d725bc7fa3a2b38b40304dd672b6c4c66f283
Gerrit-Change-Number: 32494
Gerrit-PatchSet: 1
Gerrit-Owner: pespin <pespin(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-CC: fixeria <vyanitskiy(a)sysmocom.de>
Gerrit-CC: osmith <osmith(a)sysmocom.de>
Gerrit-Attention: fixeria <vyanitskiy(a)sysmocom.de>
Gerrit-Attention: pespin <pespin(a)sysmocom.de>
Gerrit-Comment-Date: Wed, 26 Apr 2023 07:57:21 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
Comment-In-Reply-To: fixeria <vyanitskiy(a)sysmocom.de>
Gerrit-MessageType: comment
Attention is currently required from: pespin.
Hello Jenkins Builder,
I'd like you to reexamine a change. Please visit
https://gerrit.osmocom.org/c/osmo-bsc/+/32498
to look at the new patch set (#3).
Change subject: ctrl: Add penalty time control
......................................................................
ctrl: Add penalty time control
Change-Id: Idfdd54dec72fb5f52eee22df018161d75b8c48c8
---
M src/osmo-bsc/bts_ctrl.c
1 file changed, 70 insertions(+), 0 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/98/32498/3
--
To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/32498
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: osmo-bsc
Gerrit-Branch: master
Gerrit-Change-Id: Idfdd54dec72fb5f52eee22df018161d75b8c48c8
Gerrit-Change-Number: 32498
Gerrit-PatchSet: 3
Gerrit-Owner: matanp <matan1008(a)gmail.com>
Gerrit-Reviewer: Jenkins Builder
Gerrit-CC: pespin <pespin(a)sysmocom.de>
Gerrit-Attention: pespin <pespin(a)sysmocom.de>
Gerrit-MessageType: newpatchset
neels has submitted this change. ( https://gerrit.osmocom.org/c/libosmo-sccp/+/32361 )
Change subject: SCCP: implement variable limit on Optional Data (CR,CC,CREF,RLSD)
......................................................................
SCCP: implement variable limit on Optional Data (CR,CC,CREF,RLSD)
When the Optional Data surpasses 130 bytes, it is not sent as part of
SCCP CR, CC, CREF or RLSD messages, but gets sent separately in a Data
Form 1.
Make this 130 user configurable. This is specified to be 130 bytes
exactly, but to interop with non-conforming peers, make this limit
adjustable per cs7 instance, via osmo_sccp_vty_init().
Add and test new VTY config:
cs7 instance N
sccp max-optional-data (<0-999999>|standard)
Related: ITU-T Q.713 4.2 to 4.5
Related: Ia68dad973ef18513b52f5accb5264c557c7295ea osmo-ttcn3-hacks
Related: SYS#6423
Change-Id: If35697234796af8943691b2de62218e7dc93a08c
---
M src/sccp_internal.h
M src/sccp_scoc.c
M src/sccp_user.c
M src/sccp_vty.c
M tests/vty/ss7_asp_test.vty
5 files changed, 112 insertions(+), 3 deletions(-)
Approvals:
Jenkins Builder: Verified
laforge: Looks good to me, but someone else must approve
pespin: Looks good to me, approved
diff --git a/src/sccp_internal.h b/src/sccp_internal.h
index bfdca34..3027ae6 100644
--- a/src/sccp_internal.h
+++ b/src/sccp_internal.h
@@ -58,6 +58,8 @@
struct osmo_ss7_user ss7_user;
struct osmo_sccp_timer_val timers[OSMO_SCCP_TIMERS_COUNT];
+
+ uint32_t max_optional_data;
};
struct osmo_sccp_user {
diff --git a/src/sccp_scoc.c b/src/sccp_scoc.c
index c929ed6..1838615 100644
--- a/src/sccp_scoc.c
+++ b/src/sccp_scoc.c
@@ -676,11 +676,12 @@
static bool xua_opt_data_cache_keep(struct sccp_connection *conn, const struct osmo_scu_prim *prim, int msg_type)
{
uint8_t *buf;
+ uint32_t max_optional_data = conn->inst->max_optional_data;
if (xua_drop_data_check_drop(prim, SCCP_MAX_DATA, "cache overrun"))
return false;
- if (msgb_l2len(prim->oph.msg) > SCCP_MAX_OPTIONAL_DATA) {
+ if (msgb_l2len(prim->oph.msg) > max_optional_data) {
if (conn->opt_data_cache) {
/* Caching optional data, but there already is optional data occupying the cache: */
LOGP(DLSCCP, LOGL_ERROR, "replacing unsent %u bytes of optional data cache with %s optional data\n",
@@ -703,6 +704,8 @@
/* Check optional Data size limit, cache if necessary, return indication whether original opt data should be sent */
static bool xua_opt_data_length_lim(struct sccp_connection *conn, const struct osmo_scu_prim *prim, int msg_type)
{
+ uint32_t max_optional_data = conn->inst->max_optional_data;
+
if (!(prim && msgb_l2(prim->oph.msg) && msgb_l2len(prim->oph.msg)))
return false;
@@ -711,7 +714,7 @@
case SUA_CO_COAK: /* §4.3 Connection confirm (CC) */
return xua_opt_data_cache_keep(conn, prim, msg_type);
case SUA_CO_COREF: /* §4.4 Connection refused (CREF) */
- if (xua_drop_data_check_drop(prim, SCCP_MAX_OPTIONAL_DATA, "over ITU-T Rec. Q.713 §4.4 limit")) {
+ if (xua_drop_data_check_drop(prim, max_optional_data, "over ITU-T Rec. Q.713 §4.4 limit")) {
/* From the state diagrams in ITU-T Rec Q.714, there's no way to send DT1 neither before nor after CREF
* at this point, so the only option we have is to drop optional data:
* see Figure C.3 / Q.714 (sheet 2 of 6) */
@@ -719,7 +722,7 @@
}
break;
case SUA_CO_RELRE: /* §4.5 Released (RLSD) */
- if (msgb_l2len(prim->oph.msg) > SCCP_MAX_OPTIONAL_DATA) {
+ if (msgb_l2len(prim->oph.msg) > max_optional_data) {
if (xua_drop_data_check_drop(prim, SCCP_MAX_DATA, "protocol error"))
return false;
/* There's no need to cache the optional data since the connection is still active at this point:
diff --git a/src/sccp_user.c b/src/sccp_user.c
index e619c90..34c663d 100644
--- a/src/sccp_user.c
+++ b/src/sccp_user.c
@@ -35,6 +35,7 @@
#include <osmocom/sigtran/mtp_sap.h>
#include <osmocom/sigtran/protocol/mtp.h>
#include <osmocom/sigtran/sccp_helpers.h>
+#include <osmocom/sccp/sccp_types.h>
#include "sccp_internal.h"
#include "xua_internal.h"
@@ -235,6 +236,7 @@
inst->ss7_user.name = "SCCP";
inst->ss7_user.prim_cb = mtp_user_prim_cb;
inst->ss7_user.priv = inst;
+ inst->max_optional_data = SCCP_MAX_OPTIONAL_DATA;
rc = sccp_scmg_init(inst);
if (rc < 0) {
diff --git a/src/sccp_vty.c b/src/sccp_vty.c
index 13fe402..90fb914 100644
--- a/src/sccp_vty.c
+++ b/src/sccp_vty.c
@@ -37,6 +37,8 @@
#include <osmocom/sigtran/osmo_ss7.h>
#include <osmocom/sigtran/protocol/mtp.h>
+#include <osmocom/sccp/sccp_types.h>
+
#include "xua_internal.h"
#include "sccp_internal.h"
@@ -165,6 +167,36 @@
return CMD_SUCCESS;
}
+DEFUN_ATTR(sccp_max_optional_data, sccp_max_optional_data_cmd,
+ "sccp max-optional-data (<0-999999>|standard)",
+ "Configure SCCP behavior\n"
+ "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.\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",
+ CMD_ATTR_IMMEDIATE)
+{
+ struct osmo_ss7_instance *ss7 = vty->index;
+ int val;
+
+ if (!strcmp(argv[0], "standard"))
+ val = SCCP_MAX_OPTIONAL_DATA;
+ else
+ val = atoi(argv[0]);
+
+ osmo_ss7_ensure_sccp(ss7);
+ if (!ss7->sccp) {
+ vty_out(vty, "%% Error: cannot instantiate SCCP instance%s", VTY_NEWLINE);
+ return CMD_WARNING;
+ }
+
+ ss7->sccp->max_optional_data = val;
+ return CMD_SUCCESS;
+}
+
static const char *osmo_sccp_timer_val_name(const struct osmo_sccp_timer_val *val)
{
static char buf[16];
@@ -227,6 +259,8 @@
void osmo_sccp_vty_write_cs7_node(struct vty *vty, const char *indent, struct osmo_sccp_instance *inst)
{
write_sccp_timers(vty, indent, inst, false);
+ if (inst->max_optional_data != SCCP_MAX_OPTIONAL_DATA)
+ vty_out(vty, "%ssccp max-optional-data %u%s", indent, inst->max_optional_data, VTY_NEWLINE);
}
DEFUN(show_sccp_timers, show_sccp_timers_cmd,
@@ -262,4 +296,5 @@
install_lib_element_ve(&show_sccp_timers_cmd);
gen_sccp_timer_cmd_strs(&sccp_timer_cmd);
install_lib_element(L_CS7_NODE, &sccp_timer_cmd);
+ install_lib_element(L_CS7_NODE, &sccp_max_optional_data_cmd);
}
diff --git a/tests/vty/ss7_asp_test.vty b/tests/vty/ss7_asp_test.vty
index 09be45b..14ca25a 100644
--- a/tests/vty/ss7_asp_test.vty
+++ b/tests/vty/ss7_asp_test.vty
@@ -89,6 +89,7 @@
sccp-address NAME
no sccp-address NAME
sccp-timer (conn_est|ias|iar|rel|repeat_rel|int|guard|reset|reassembly) <1-999999>
+ sccp max-optional-data (<0-999999>|standard)
ss7_asp_vty_test(config-cs7)# ?
...
@@ -101,6 +102,7 @@
as Configure an Application Server
sccp-address Create/Modify an SCCP addressbook entry
sccp-timer Configure SCCP timer values, see ITU-T Q.714
+ sccp Configure SCCP behavior
ss7_asp_vty_test(config-cs7)# description ?
TEXT Text until the end of the line
@@ -427,3 +429,43 @@
ss7_asp_vty_test(config-cs7)# sccp-timer conn_est ?
<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.
+
+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
+
+ss7_asp_vty_test(config-cs7)# show running-config
+... !sccp max-optional-data
+
+ss7_asp_vty_test(config-cs7)# sccp max-optional-data 0
+ss7_asp_vty_test(config-cs7)# show running-config
+...
+ sccp max-optional-data 0
+...
+
+ss7_asp_vty_test(config-cs7)# sccp max-optional-data 123
+ss7_asp_vty_test(config-cs7)# show running-config
+...
+ sccp max-optional-data 123
+...
+
+ss7_asp_vty_test(config-cs7)# sccp max-optional-data 999999
+ss7_asp_vty_test(config-cs7)# show running-config
+...
+cs7 instance 0
+...
+ sccp max-optional-data 999999
+...
+cs7 instance 1
+... !sccp max-optional-data
+
+ss7_asp_vty_test(config-cs7)# sccp max-optional-data standard
+ss7_asp_vty_test(config-cs7)# show running-config
+... !sccp max-optional-data
+
+ss7_asp_vty_test(config-cs7)# sccp max-optional-data 130
+ss7_asp_vty_test(config-cs7)# show running-config
+... !sccp max-optional-data
--
To view, visit https://gerrit.osmocom.org/c/libosmo-sccp/+/32361
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: libosmo-sccp
Gerrit-Branch: master
Gerrit-Change-Id: If35697234796af8943691b2de62218e7dc93a08c
Gerrit-Change-Number: 32361
Gerrit-PatchSet: 3
Gerrit-Owner: neels <nhofmeyr(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: laforge <laforge(a)osmocom.org>
Gerrit-Reviewer: neels <nhofmeyr(a)sysmocom.de>
Gerrit-Reviewer: pespin <pespin(a)sysmocom.de>
Gerrit-MessageType: merged
Attention is currently required from: pespin.
Hello Jenkins Builder, laforge,
I'd like you to reexamine a change. Please visit
https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/32362
to look at the new patch set (#2).
Change subject: hnbgw: add TC_sccp_cr_limit: test CR data length cutoff
......................................................................
hnbgw: add TC_sccp_cr_limit: test CR data length cutoff
Depends: If35697234796af8943691b2de62218e7dc93a08c libosmo-sccp
Change-Id: Ia68dad973ef18513b52f5accb5264c557c7295ea
---
M hnbgw/HNBGW_Tests.ttcn
M library/Osmocom_Types.ttcn
2 files changed, 143 insertions(+), 28 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/62/32362/2
--
To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/32362
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: osmo-ttcn3-hacks
Gerrit-Branch: master
Gerrit-Change-Id: Ia68dad973ef18513b52f5accb5264c557c7295ea
Gerrit-Change-Number: 32362
Gerrit-PatchSet: 2
Gerrit-Owner: neels <nhofmeyr(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: laforge <laforge(a)osmocom.org>
Gerrit-CC: pespin <pespin(a)sysmocom.de>
Gerrit-Attention: pespin <pespin(a)sysmocom.de>
Gerrit-MessageType: newpatchset
neels has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/32424 )
Change subject: hnbgw: wait longer for PFCP Assoc
......................................................................
hnbgw: wait longer for PFCP Assoc
Since I introduced stricter timeouts on PFCP messages in
hnbgw: add f_pfcp_expect()
commit 6bbfe057afe6f23e2f325789a3dcac81065ab952
Change-Id I2117475b695d486b1204d61e5bb21120a6187354
the HNBGW tests with PFCP support fail often:
The Assoc Setup resending timeout (X26) is configured to 5 seconds, and
the timeout to wait for this is also 5 seconds. Every once in a while
they happen to miss, causing a test failure.
Increase the initial Assoc Setup Req timeout to 15 seconds to avoid
sporadic failures.
Change-Id: I4b9af224e2346a4735f3d4e01b234acf56c5f3ff
---
M hnbgw/HNBGW_Tests.ttcn
1 file changed, 25 insertions(+), 3 deletions(-)
Approvals:
Jenkins Builder: Verified
osmith: Looks good to me, approved
laforge: Looks good to me, approved
diff --git a/hnbgw/HNBGW_Tests.ttcn b/hnbgw/HNBGW_Tests.ttcn
index 1c0b121..e9693fe 100644
--- a/hnbgw/HNBGW_Tests.ttcn
+++ b/hnbgw/HNBGW_Tests.ttcn
@@ -1292,10 +1292,10 @@
}
}
-private function f_pfcp_expect(template (present) PDU_PFCP exp_rx) runs on ConnHdlr return PDU_PFCP
+private function f_pfcp_expect(template (present) PDU_PFCP exp_rx, float wait_time := 5.0) runs on ConnHdlr return PDU_PFCP
{
var PDU_PFCP rx;
- timer T := 5.0;
+ timer T := wait_time;
T.start;
alt {
[] PFCP.receive(exp_rx) -> value rx {
@@ -1325,7 +1325,7 @@
var PDU_PFCP m;
var Node_ID upf_node_id := valueof(ts_PFCP_Node_ID_fqdn("\07osmocom\03org"));
- m := f_pfcp_expect(tr_PFCP_Assoc_Setup_Req())
+ m := f_pfcp_expect(tr_PFCP_Assoc_Setup_Req(), wait_time := 15.0);
PFCP.send(ts_PFCP_Assoc_Setup_Resp(m.sequence_number, upf_node_id,
ts_PFCP_Cause(REQUEST_ACCEPTED), 1234));
--
To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/32424
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: osmo-ttcn3-hacks
Gerrit-Branch: master
Gerrit-Change-Id: I4b9af224e2346a4735f3d4e01b234acf56c5f3ff
Gerrit-Change-Number: 32424
Gerrit-PatchSet: 1
Gerrit-Owner: neels <nhofmeyr(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: laforge <laforge(a)osmocom.org>
Gerrit-Reviewer: neels <nhofmeyr(a)sysmocom.de>
Gerrit-Reviewer: osmith <osmith(a)sysmocom.de>
Gerrit-MessageType: merged