ns2: follow ns2 dialect changes

NS2 introduce a ns dialect to differentiate
between the 4 possible dialects.

Related: OS#4472, OS#4890
Depends: libosmocore.git Ia118bb6f994845d84db09de7a94856f5ca573404
Change-Id: I16dc82c38eb75c2b9d1197640a955fec7df84efc
This commit is contained in:
Alexander Couzens 2020-12-06 01:23:51 +01:00 committed by Harald Welte
parent 398f60e11c
commit 5012e07685
3 changed files with 13 additions and 9 deletions

View File

@ -23,17 +23,23 @@
#ifdef __cplusplus
extern "C" {
#endif
#include <osmocom/core/linuxlist.h>
#include <osmocom/core/rate_ctr.h>
#include <osmocom/core/stat_item.h>
#include <osmocom/core/tdef.h>
#include <osmocom/gprs/gprs_ns2.h>
#include <osmocom/gsm/l1sap.h>
#include <osmocom/gsm/protocol/gsm_04_08.h>
#include <osmocom/gsm/gsm48.h>
#include "mslot_class.h"
#include "gsm_rlcmac.h"
#ifdef __cplusplus
}
#endif
#ifdef __cplusplus
#include "poll_controller.h"
#include "sba.h"
#include "tbf.h"
@ -170,7 +176,7 @@ struct gprs_rlcmac_bts {
char *pcu_sock_path;
/* Are we talking Gb with IP-SNS (true) or classic Gb? */
bool gb_dialect_sns;
enum gprs_ns2_dialect ns_dialect;
/* Packet Application Information (3GPP TS 44.060 11.2.47, usually ETWS primary message). We don't need to store
* more than one message, because they get sent so rarely. */

View File

@ -984,7 +984,7 @@ static int ns_create_nsvc(struct gprs_rlcmac_bts *bts,
bts->nse = gprs_ns2_nse_by_nsei(bts->nsi, nsei);
if (!bts->nse)
bts->nse = gprs_ns2_create_nse(bts->nsi, nsei,
GPRS_NS2_LL_UDP);
GPRS_NS2_LL_UDP, bts->ns_dialect);
if (!bts->nse) {
LOGP(DBSSGP, LOGL_ERROR, "Failed to create NSE\n");
@ -997,7 +997,7 @@ static int ns_create_nsvc(struct gprs_rlcmac_bts *bts,
continue;
/* FIXME: for SNS we just use the first successful NS-VC instead of all for the initial connect */
if (bts->gb_dialect_sns) {
if (bts->ns_dialect == NS2_DIALECT_SNS) {
rc = gprs_ns2_ip_connect_sns(bind[i], &remote[i], nsei);
if (!rc)
return rc;
@ -1066,7 +1066,7 @@ int gprs_ns_config(struct gprs_rlcmac_bts *bts, uint16_t nsei,
gprs_ns2_free_nses(bts->nsi);
gprs_ns2_free_binds(bts->nsi);
rc = ns_create_nsvc(bts, nsei, local, remote, nsvci, valid);
} else if (bts->gb_dialect_sns) {
} else if (bts->ns_dialect == NS2_DIALECT_SNS) {
/* SNS: check if the initial nsvc is the same, if not recreate it */
const struct osmo_sockaddr *initial = gprs_ns2_nse_sns_remote(bts->nse);
for (unsigned int i = 0; i < PCU_IF_NUM_NSVC; i++) {

View File

@ -246,7 +246,7 @@ static int config_write_pcu(struct vty *vty)
}
}
if (bts->gb_dialect_sns)
if (bts->ns_dialect == NS2_DIALECT_SNS)
vty_out(vty, " gb-dialect ip-sns%s", VTY_NEWLINE);
else
vty_out(vty, " gb-dialect classic%s", VTY_NEWLINE);
@ -1131,11 +1131,9 @@ DEFUN_USRATTR(cfg_pcu_gb_dialect,
struct gprs_rlcmac_bts *bts = bts_main_data();
if (!strcmp(argv[0], "ip-sns")) {
bts->gb_dialect_sns = true;
gprs_ns2_vty_force_vc_mode(true, NS2_VC_MODE_ALIVE, "gb-dialect is ip-sns");
bts->ns_dialect = NS2_DIALECT_SNS;
} else {
bts->gb_dialect_sns = false;
gprs_ns2_vty_force_vc_mode(false, 0, NULL);
bts->ns_dialect = NS2_DIALECT_IPACCESS;
}
return CMD_SUCCESS;