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:
parent
398f60e11c
commit
5012e07685
|
@ -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. */
|
||||
|
|
|
@ -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++) {
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Reference in New Issue