aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorHarald Welte <laforge@osmocom.org>2021-03-05 10:22:23 +0100
committerHarald Welte <laforge@osmocom.org>2021-03-24 00:30:22 +0100
commit579699bc2d9a7777f748eadeb151103794ce6a79 (patch)
tree3f5605f63a7adf2346017ca8f87a73e9aeec0d74 /src
parent5b034fbab02299e1106e7a35af51cbeaf15f55eb (diff)
gprs_ns2_vty: Allow creating NSE in sgsn-role
Diffstat (limited to 'src')
-rw-r--r--src/gb/gprs_ns2_vty.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/src/gb/gprs_ns2_vty.c b/src/gb/gprs_ns2_vty.c
index a769ad1b..42ab2b25 100644
--- a/src/gb/gprs_ns2_vty.c
+++ b/src/gb/gprs_ns2_vty.c
@@ -270,15 +270,19 @@ DEFUN(cfg_ns_timer, cfg_ns_timer_cmd,
}
DEFUN(cfg_ns_nsei, cfg_ns_nsei_cmd,
- "nse <0-65535>",
+ "nse <0-65535> [ip-sns-role-sgsn]",
"Persistent NS Entity\n"
"NS Entity ID (NSEI)\n"
+ "Create NSE in SGSN role (default: BSS)\n"
)
{
struct gprs_ns2_nse *nse;
struct vty_nse *vnse;
uint16_t nsei = atoi(argv[0]);
+ bool sgsn_role = false;
bool free_vnse = false;
+ if (argc > 1 && !strcmp(argv[1], "ip-sns-role-sgsn"))
+ sgsn_role = true;
vnse = vty_nse_by_nsei(nsei);
if (!vnse) {
@@ -292,7 +296,8 @@ DEFUN(cfg_ns_nsei, cfg_ns_nsei_cmd,
nse = gprs_ns2_nse_by_nsei(vty_nsi, nsei);
if (!nse) {
- nse = gprs_ns2_create_nse(vty_nsi, nsei, GPRS_NS2_LL_UNDEF, GPRS_NS2_DIALECT_UNDEF);
+ nse = gprs_ns2_create_nse2(vty_nsi, nsei, GPRS_NS2_LL_UNDEF, GPRS_NS2_DIALECT_UNDEF,
+ sgsn_role);
if (!nse) {
vty_out(vty, "Failed to create NSE!%s", VTY_NEWLINE);
goto err;
@@ -526,7 +531,8 @@ static void _config_write_ns_nse(struct vty *vty, struct gprs_ns2_nse *nse)
OSMO_ASSERT(vnse);
- vty_out(vty, " nse %u%s", nse->nsei, VTY_NEWLINE);
+ vty_out(vty, " nse %u%s%s", nse->nsei,
+ nse->ip_sns_role_sgsn ? " ip-sns-role-sgsn" : "", VTY_NEWLINE);
switch (nse->dialect) {
case GPRS_NS2_DIALECT_SNS:
ns2_sns_write_vty(vty, nse);