Projects
osmocom:master
libosmo-sigtran
Log In
Username
Password
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
Expand all
Collapse all
Changes of Revision 73
View file
commit_12dd8b6b0fcb170fcfb9a9dd743f8a6eb15ffbeb.txt
Deleted
View file
commit_687495e495ce983319e1ec461ef8e934ed492fe2.txt
Added
View file
libosmo-sigtran_2.1.0.140.12dd.dsc -> libosmo-sigtran_2.1.0.146.6874.dsc
Changed
@@ -2,7 +2,7 @@ Source: libosmo-sigtran Binary: libosmo-sigtran11, libosmo-sigtran-dbg, libosmo-sigtran-doc, libosmo-sigtran-dev, osmo-stp, osmo-stp-dbg, osmo-stp-doc Architecture: any all -Version: 2.1.0.140.12dd +Version: 2.1.0.146.6874 Maintainer: Osmocom team <openbsc@lists.osmocom.org> Homepage: https://projects.osmocom.org/projects/libosmo-sccp Standards-Version: 3.9.7 @@ -18,8 +18,8 @@ osmo-stp-dbg deb debug optional arch=any osmo-stp-doc deb doc optional arch=all Checksums-Sha1: - b3908b242f03bc1516d796ce2ce1490625768dcc 250168 libosmo-sigtran_2.1.0.140.12dd.tar.xz + 123fa6ef246c500e6a46539eb43cccd0529e06fb 250792 libosmo-sigtran_2.1.0.146.6874.tar.xz Checksums-Sha256: - bbe96b1ac9c971cb70bc88d96003457aed9f5b3657980fef6648f91556d4f2a9 250168 libosmo-sigtran_2.1.0.140.12dd.tar.xz + fc1c3738f2959ea8b3bb03ca0695b8334ab884c3f298ddaf700f3ee2c819ced1 250792 libosmo-sigtran_2.1.0.146.6874.tar.xz Files: - 9c6b08783067700d232c103e3e5e36cd 250168 libosmo-sigtran_2.1.0.140.12dd.tar.xz + c582adacf98eea3f0479cddc8345244c 250792 libosmo-sigtran_2.1.0.146.6874.tar.xz
View file
libosmo-sigtran_2.1.0.140.12dd.tar.xz/.tarball-version -> libosmo-sigtran_2.1.0.146.6874.tar.xz/.tarball-version
Changed
@@ -1 +1 @@ -2.1.0.140-12dd +2.1.0.146-6874
View file
libosmo-sigtran_2.1.0.140.12dd.tar.xz/debian/changelog -> libosmo-sigtran_2.1.0.146.6874.tar.xz/debian/changelog
Changed
@@ -1,8 +1,8 @@ -libosmo-sigtran (2.1.0.140.12dd) unstable; urgency=medium +libosmo-sigtran (2.1.0.146.6874) unstable; urgency=medium * Automatically generated changelog entry for building the Osmocom master feed - -- Osmocom OBS scripts <info@osmocom.org> Mon, 07 Jul 2025 19:08:32 +0000 + -- Osmocom OBS scripts <info@osmocom.org> Thu, 10 Jul 2025 11:17:50 +0000 libosmo-sigtran (2.1.0) unstable; urgency=medium
View file
libosmo-sigtran_2.1.0.140.12dd.tar.xz/src/ipa.c -> libosmo-sigtran_2.1.0.146.6874.tar.xz/src/ipa.c
Changed
@@ -265,25 +265,40 @@ * information inside the non-CR/CC connection oriented * messages. * - * The only other alternative we have is to simply have a - * STP (server) side configuration that specifies which point - * code those messages are to be routed to, and then use this - * 'override DPC' in the routing decision. We could do the same - * for the source point code to ensure responses are routed back - * to us. This is all quite ugly, but then what can we do :/ + * The only other alternative we have is to: + * + * ASP role: we assume whatever was received at the ASP/AS was meant to + * reach us and hence set the DPC to the PC configured in the + * 'routing-key'. In this case the 'override OPC' is used so that upper + * layers can find out where it came from, so it can answer back if needed. + * + * SG role (STP): By default, the AS associated with the ASP assumes the + * OPC of the message received was transmitted to us from the PC + * configured in the 'routing-key'. If set, 'override OPC' can be used + * to also tweak the originating PC, which can be useful in setups with + * traffic coming from another STP where want to set eg. the OPC to the + * PC of the originating AS. In this case the 'override DPC'. + * allows to find out where those messages are to be routed to in the + * routing decision. + * + * This is all quite ugly, but then what can we do :/ */ /* First, determine the DPC and OPC to use */ - if (asp->cfg.is_server) { - /* Source: the PC of the routing key */ - opc = as->cfg.routing_key.pc; - /* Destination: Based on VTY config */ - dpc = as->cfg.pc_override.dpc; - } else { + if (asp->cfg.role == OSMO_SS7_ASP_ROLE_ASP) { /* Source: Based on VTY config */ - opc = as->cfg.pc_override.dpc; + opc = as->cfg.pc_override.opc; /* Destination: PC of the routing key */ dpc = as->cfg.routing_key.pc; + } else { + /* Source: if set, based on VTY config, + * otherwise by default the PC of the routing key */ + if (as->cfg.pc_override.opc_enabled) + opc = as->cfg.pc_override.opc; + else + opc = as->cfg.routing_key.pc; + /* Destination: Based on VTY config */ + dpc = as->cfg.pc_override.dpc; } /* Second, patch this into the SCCP message */
View file
libosmo-sigtran_2.1.0.140.12dd.tar.xz/src/sccp_sclc.c -> libosmo-sigtran_2.1.0.146.6874.tar.xz/src/sccp_sclc.c
Changed
@@ -396,6 +396,10 @@ { struct xua_msg *xua_out; + LOGPSCI(inst, LOGL_NOTICE, "SCRC Routing Failure (%s) for CL message %s\n", + osmo_sccp_return_cause_name(cause), + xua_hdr_dump(xua_in, &xua_dialect_sua)); + /* Figure C.12/Q.714 (Sheet 8) Node 9 */ switch (xua_in->hdr.msg_type) { case SUA_CL_CLDT:
View file
libosmo-sigtran_2.1.0.140.12dd.tar.xz/src/sccp_scoc.c -> libosmo-sigtran_2.1.0.146.6874.tar.xz/src/sccp_scoc.c
Changed
@@ -503,7 +503,7 @@ uint32_t conn_id; struct sccp_connection *conn; - LOGPSCI(inst, LOGL_NOTICE, "SCRC Routing Failure (%s) for message %s\n", + LOGPSCI(inst, LOGL_NOTICE, "SCRC Routing Failure (%s) for CO message %s\n", osmo_sccp_return_cause_name(return_cause), xua_hdr_dump(xua, &xua_dialect_sua));
View file
libosmo-sigtran_2.1.0.140.12dd.tar.xz/src/sccp_scoc_fsm.c -> libosmo-sigtran_2.1.0.146.6874.tar.xz/src/sccp_scoc_fsm.c
Changed
@@ -409,7 +409,7 @@ /* Send N-DISCONNECT.ind to local user */ sccp_conn_scu_gen_encode_and_send(conn, event, xua, OSMO_SCU_PRIM_N_DISCONNECT, PRIM_OP_INDICATION); - talloc_free(xua); + xua_msg_free(xua); /* Send RLSD to peer */ sccp_conn_xua_gen_relre_and_send(conn, SCCP_RELEASE_CAUSE_EXPIRATION_INACTIVE, NULL); /* start release timer */ @@ -457,10 +457,9 @@ /* send N-DISCONNECT.ind to user */ sccp_conn_scu_gen_encode_and_send(conn, event, xua, OSMO_SCU_PRIM_N_DISCONNECT, PRIM_OP_INDICATION); - talloc_free(xua); + xua_msg_free(xua); /* Send RLSD to SCRC */ sccp_conn_xua_gen_relre_and_send(conn, SCCP_RELEASE_CAUSE_INCONSISTENT_CONN_DATA, NULL); - talloc_free(xua); /* Start release timer */ sccp_conn_start_rel_timer(conn); osmo_fsm_inst_state_chg(fi, S_DISCONN_PEND, 0, 0);
View file
libosmo-sigtran_2.1.0.140.12dd.tar.xz/src/ss7_as.h -> libosmo-sigtran_2.1.0.146.6874.tar.xz/src/ss7_as.h
Changed
@@ -104,6 +104,9 @@ uint32_t recovery_timeout_msec; uint8_t qos_class; struct { + bool opc_enabled; + bool dpc_enabled; + uint32_t opc; uint32_t dpc; enum osmo_ss7_as_patch_sccp_mode sccp_mode; } pc_override;
View file
libosmo-sigtran_2.1.0.140.12dd.tar.xz/src/ss7_as_vty.c -> libosmo-sigtran_2.1.0.146.6874.tar.xz/src/ss7_as_vty.c
Changed
@@ -344,18 +344,19 @@ } DEFUN_ATTR(as_pc_override, as_pc_override_cmd, - "point-code override dpc PC", + "point-code override (opc|dpc) PC", "Point Code Specific Features\n" - "Override (force) a point-code to hard-coded value\n" - "Override Source Point Code\n" - "Override Destination Point Code\n" + "Override (force) a point-code of messages received at the AS\n" + "Override Source Point Code of received messages\n" + "Override Destination Point Code of received messages\n" "New Point Code\n", CMD_ATTR_IMMEDIATE) { struct osmo_ss7_as *as = vty->index; - int pc = osmo_ss7_pointcode_parse(as->inst, argv0); + bool change_dpc = !strcmp(argv0, "dpc"); + int pc = osmo_ss7_pointcode_parse(as->inst, argv1); if (pc < 0) { - vty_out(vty, "Invalid point code (%s)%s", argv0, VTY_NEWLINE); + vty_out(vty, "Invalid point code (%s)%s", argv1, VTY_NEWLINE); return CMD_WARNING; } @@ -365,8 +366,45 @@ return CMD_WARNING; } - as->cfg.pc_override.dpc = pc; + if (change_dpc) { + if (cs7_role == CS7_ROLE_ASP) { + vty_out(vty, "%% Overriding the DPC of AS '%s' in role ASP makes no sense. " + "Assuming user meant 'point-code override opc %s' to stay backway-comaptible. " + "Please update your config!%s", + as->cfg.name, argv1, VTY_NEWLINE); + as->cfg.pc_override.opc_enabled = true; + as->cfg.pc_override.opc = pc; + return CMD_SUCCESS; + } + as->cfg.pc_override.dpc_enabled = true; + as->cfg.pc_override.dpc = pc; + } else { + as->cfg.pc_override.opc_enabled = true; + as->cfg.pc_override.opc = pc; + } + + return CMD_SUCCESS; +} + +DEFUN_ATTR(as_no_pc_override, as_no_pc_override_cmd, + "no point-code override (opc|dpc)", + NO_STR + "Point Code Specific Features\n" + "Override (force) a point-code of messages received at the AS\n" + "Override Source Point Code of received messages\n" + "Override Destination Point Code of received messages\n", + CMD_ATTR_IMMEDIATE) +{ + struct osmo_ss7_as *as = vty->index; + bool change_dpc = !strcmp(argv0, "dpc"); + if (change_dpc) { + as->cfg.pc_override.dpc_enabled = false; + as->cfg.pc_override.dpc = 0; + } else { + as->cfg.pc_override.opc_enabled = false; + as->cfg.pc_override.opc = 0; + } return CMD_SUCCESS; } @@ -450,7 +488,10 @@ vty_out(vty, " ssn %u", rkey->ssn); vty_out(vty, "%s", VTY_NEWLINE); - if (as->cfg.pc_override.dpc) + if (as->cfg.pc_override.opc_enabled) + vty_out(vty, " point-code override opc %s%s", + osmo_ss7_pointcode_print(as->inst, as->cfg.pc_override.opc), VTY_NEWLINE); + if (as->cfg.pc_override.dpc_enabled) vty_out(vty, " point-code override dpc %s%s", osmo_ss7_pointcode_print(as->inst, as->cfg.pc_override.dpc), VTY_NEWLINE); @@ -581,6 +622,33 @@ struct osmo_ss7_as *as = vty->index; vty->node = L_CS7_NODE; vty->index = as->inst; + + /* Config sanity checks: */ + + if (cs7_role == CS7_ROLE_ASP) { + int as_role = ss7_as_get_local_role(as); + /* AS in ASP role should be configured with a local PC which they can + * then announce using RKM. + * Still, allow STPs to have AS(P) configured in an ASP mode to talk to a + * peer STP by announcing remove PCs. */ + if (as_role == OSMO_SS7_ASP_ROLE_ASP && + !osmo_ss7_pc_is_local(as->inst, as->cfg.routing_key.pc)) + vty_out(vty, "%% AS '%s' with local role ASP should have a local PC configured in its " + "routing-key. Fix your config!%s", as->cfg.name, VTY_NEWLINE); + + if (as->cfg.proto == OSMO_SS7_ASP_PROT_IPA) { + if (as_role == OSMO_SS7_ASP_ROLE_ASP && + !as->cfg.pc_override.opc_enabled) + vty_out(vty, "%% ipa AS '%s' with local role ASP should have a " + "'point-code override opc PC' configured in its routing-key. Fix your config!%s", + as->cfg.name, VTY_NEWLINE); + if (as_role == OSMO_SS7_ASP_ROLE_SG && + !as->cfg.pc_override.dpc_enabled) + vty_out(vty, "%% ipa AS '%s' with local role SG should have a " + "'point-code override dpc PC' configured in its routing-key. Fix your config!%s", + as->cfg.name, VTY_NEWLINE); + } + } return 0; } @@ -607,5 +675,6 @@ install_lib_element(L_CS7_AS_NODE, &as_rout_key_ssn_cmd); install_lib_element(L_CS7_AS_NODE, &as_rout_key_si_ssn_cmd); install_lib_element(L_CS7_AS_NODE, &as_pc_override_cmd); + install_lib_element(L_CS7_AS_NODE, &as_no_pc_override_cmd); install_lib_element(L_CS7_AS_NODE, &as_pc_patch_sccp_cmd); }
View file
libosmo-sigtran_2.1.0.140.12dd.tar.xz/src/ss7_vty.c -> libosmo-sigtran_2.1.0.146.6874.tar.xz/src/ss7_vty.c
Changed
@@ -76,7 +76,7 @@ * Core CS7 Configuration ***********************************************************************/ -static enum cs7_role_t cs7_role; +enum cs7_role_t cs7_role; void *g_ctx; static struct cmd_node cs7_node = {
View file
libosmo-sigtran_2.1.0.140.12dd.tar.xz/src/ss7_vty.h -> libosmo-sigtran_2.1.0.146.6874.tar.xz/src/ss7_vty.h
Changed
@@ -18,6 +18,7 @@ }; extern void *g_ctx; +extern enum cs7_role_t cs7_role; extern const struct value_string ipproto_vals; #define CS7_STR "ITU-T Signaling System 7\n"
View file
libosmo-sigtran_2.1.0.140.12dd.tar.xz/src/xua_msg.c -> libosmo-sigtran_2.1.0.146.6874.tar.xz/src/xua_msg.c
Changed
@@ -504,7 +504,7 @@ } } -char *xua_hdr_dump(struct xua_msg *xua, const struct xua_dialect *dialect) +char *xua_hdr_dump(const struct xua_msg *xua, const struct xua_dialect *dialect) { const struct xua_msg_class *xmc = NULL; static char buf128; @@ -551,7 +551,7 @@ return 1; } -char *xua_msg_dump(struct xua_msg *xua, const struct xua_dialect *dialect) +char *xua_msg_dump(const struct xua_msg *xua, const struct xua_dialect *dialect) { static char buf1024; struct osmo_strbuf sb = { .buf = buf, .len = sizeof(buf) };
View file
libosmo-sigtran_2.1.0.140.12dd.tar.xz/src/xua_msg.h -> libosmo-sigtran_2.1.0.146.6874.tar.xz/src/xua_msg.h
Changed
@@ -102,8 +102,8 @@ const char *xua_class_msg_name(const struct xua_msg_class *xmc, uint16_t msg_type); const char *xua_class_iei_name(const struct xua_msg_class *xmc, uint16_t iei); -char *xua_hdr_dump(struct xua_msg *xua, const struct xua_dialect *dialect); -char *xua_msg_dump(struct xua_msg *xua, const struct xua_dialect *dialect); +char *xua_hdr_dump(const struct xua_msg *xua, const struct xua_dialect *dialect); +char *xua_msg_dump(const struct xua_msg *xua, const struct xua_dialect *dialect); int xua_dialect_check_all_mand_ies(const struct xua_dialect *dialect, struct xua_msg *xua); int xua_msg_event_map(const struct xua_msg *xua,
View file
libosmo-sigtran_2.1.0.140.12dd.tar.xz/tests/vty/osmo_stp_test.vty -> libosmo-sigtran_2.1.0.146.6874.tar.xz/tests/vty/osmo_stp_test.vty
Changed
@@ -387,7 +387,8 @@ routing-key RCONTEXT DPC si (aal2|bicc|b-isup|h248|isup|sat-isup|sccp|tup) routing-key RCONTEXT DPC ssn SSN routing-key RCONTEXT DPC si (aal2|bicc|b-isup|h248|isup|sat-isup|sccp|tup) ssn SSN - point-code override dpc PC + point-code override (opc|dpc) PC + no point-code override (opc|dpc) point-code override patch-sccp (disabled|both) OsmoSTP(config-cs7-as)# ? @@ -406,6 +407,7 @@ OsmoSTP(config-cs7-as)# no ? asp Specify ASP to be removed from this AS traffic-mode Remove explicit traffic mode of operation of this AS + point-code Point Code Specific Features OsmoSTP(config-cs7-as)# do show cs7 instance 0 as all Routing Routing Key Cic Cic Traffic
View file
libosmo-sigtran_2.1.0.140.12dd.tar.xz/tests/xua/xua_test.c -> libosmo-sigtran_2.1.0.146.6874.tar.xz/tests/xua/xua_test.c
Changed
@@ -601,8 +601,8 @@ OSMO_ASSERT(xua_msg_get_u32(nested, M3UA_IEI_LOC_RKEY_ID) == 1); OSMO_ASSERT(xua_msg_get_u32(nested, M3UA_IEI_DEST_PC) == 23); - talloc_free(nested); - talloc_free(xua); + xua_msg_free(nested); + xua_msg_free(xua); } static void test_sccp_addr_cmp(void)
Locations
Projects
Search
Status Monitor
Help
Open Build Service
OBS Manuals
API Documentation
OBS Portal
Reporting a Bug
Contact
Mailing List
Forums
Chat (IRC)
Twitter
Open Build Service (OBS)
is an
openSUSE project
.