pespin has uploaded this change for review. ( 
https://gerrit.osmocom.org/c/osmo-hnbgw/+/40270?usp=email )


Change subject: vty: Allow setting cnlink msc/sgsn name
......................................................................

vty: Allow setting cnlink msc/sgsn name

This is useful to identify each individual CN link towards a specific
MSC/SGSN, be it checking VTY config, looking at logs, reporting over
statsd, etc.

Change-Id: Ic557f20f40fec49ce2c83a73f6e5c8b027d57ef5
---
M include/osmocom/hnbgw/cnlink.h
M src/osmo-hnbgw/cnlink.c
M src/osmo-hnbgw/hnbgw_vty.c
M tests/cnpool.vty
4 files changed, 58 insertions(+), 1 deletion(-)



  git pull ssh://gerrit.osmocom.org:29418/osmo-hnbgw refs/changes/70/40270/1

diff --git a/include/osmocom/hnbgw/cnlink.h b/include/osmocom/hnbgw/cnlink.h
index ee1a8dd..1d413a9 100644
--- a/include/osmocom/hnbgw/cnlink.h
+++ b/include/osmocom/hnbgw/cnlink.h
@@ -104,6 +104,7 @@
 struct hnbgw_cnlink *hnbgw_cnlink_alloc(struct hnbgw_cnpool *cnpool, int nr);
 void hnbgw_cnlink_term_and_free(struct hnbgw_cnlink *cnlink);
 void hnbgw_cnlink_drop_sccp(struct hnbgw_cnlink *cnlink);
+int hnbgw_cnlink_set_name(struct hnbgw_cnlink *cnlink, const char *name);
 int hnbgw_cnlink_tx_ranap_reset(struct hnbgw_cnlink *cnlink);
 int hnbgw_cnlink_tx_ranap_reset_ack(struct hnbgw_cnlink *cnlink);

diff --git a/src/osmo-hnbgw/cnlink.c b/src/osmo-hnbgw/cnlink.c
index 8d312c6..0bd2b3d 100644
--- a/src/osmo-hnbgw/cnlink.c
+++ b/src/osmo-hnbgw/cnlink.c
@@ -230,6 +230,17 @@
        return cnlink;
 }

+int hnbgw_cnlink_set_name(struct hnbgw_cnlink *cnlink, const char *name)
+{
+       talloc_free(cnlink->name);
+       cnlink->name = talloc_strdup(cnlink, name);
+       osmo_fsm_inst_update_id_f_sanitize(cnlink->fi, '-', cnlink->name);
+       /* Update rate_ctr/stats to report by name instead of index: */
+       rate_ctr_group_set_name(cnlink->ctrs, cnlink->name);
+       osmo_stat_item_group_set_name(cnlink->statg, cnlink->name);
+       return 0;
+}
+
 void hnbgw_cnlink_drop_sccp(struct hnbgw_cnlink *cnlink)
 {
        struct hnbgw_context_map *map, *map2;
diff --git a/src/osmo-hnbgw/hnbgw_vty.c b/src/osmo-hnbgw/hnbgw_vty.c
index 52c5ba6..7d78909 100644
--- a/src/osmo-hnbgw/hnbgw_vty.c
+++ b/src/osmo-hnbgw/hnbgw_vty.c
@@ -149,7 +149,8 @@
                return;
        }

-       vty_out(vty, "%s <->",
+       vty_out(vty, "%s: %s <->",
+               cnlink->name,
                osmo_sccp_user_name(cnlink->hnbgw_sccp_user->sccp_user));
        vty_out(vty, " %s%s%s%s",
                cnlink->use.remote_addr_name ? : "",
@@ -526,6 +527,18 @@
 /* 'msc 0'  / 'remote-addr my-msc'  and
  * 'sgsn 0' / 'remote-addr my-sgsn'
  */
+DEFUN(cfg_cnlink_name,
+      cfg_cnlink_name_cmd,
+      "name NAME",
+      "Set user defined name for this msc/sgsn\n"
+      "The user defined name to be set for this msc/sgsn\n")
+{
+       struct hnbgw_cnlink *cnlink = vty->index;
+       if (hnbgw_cnlink_set_name(cnlink, argv[0]) < 0)
+               return CMD_WARNING;
+       return CMD_SUCCESS;
+}
+
 DEFUN(cfg_cnlink_remote_addr,
       cfg_cnlink_remote_addr_cmd,
       "remote-addr NAME",
@@ -1057,6 +1070,7 @@

        llist_for_each_entry(cnlink, &cnpool->cnlinks, entry) {
                vty_out(vty, "%s %d%s", cnpool->peer_name, cnlink->nr, 
VTY_NEWLINE);
+               vty_out(vty, " name %s%s", cnlink->name, VTY_NEWLINE);
                if (cnlink->vty.remote_addr_name)
                        vty_out(vty, " remote-addr %s%s", 
cnlink->vty.remote_addr_name, VTY_NEWLINE);
                cnlink_write_nri(vty, cnlink, false);
@@ -1098,6 +1112,7 @@

 static void install_cnlink_elements(int node)
 {
+       install_element(node, &cfg_cnlink_name_cmd);
        install_element(node, &cfg_cnlink_remote_addr_cmd);
        install_element(node, &cfg_cnlink_nri_add_cmd);
        install_element(node, &cfg_cnlink_nri_del_cmd);
diff --git a/tests/cnpool.vty b/tests/cnpool.vty
index 2de56a7..78f660f 100644
--- a/tests/cnpool.vty
+++ b/tests/cnpool.vty
@@ -135,7 +135,9 @@
 OsmoHNBGW(config)# show running-config
 ...
 msc 0
+ name msc-0
 sgsn 0
+ name sgsn-0
 ...

 OsmoHNBGW(config)# msc 1
@@ -224,9 +226,13 @@
 OsmoHNBGW(config)# show running-config
 ...
 msc 0
+ name msc-0
 msc 1
+ name msc-1
 sgsn 0
+ name sgsn-0
 sgsn 1
+ name sgsn-1
 ...

 OsmoHNBGW(config)# ### Add {msc,sgsn}x{2,3}
@@ -252,18 +258,26 @@
 OsmoHNBGW(config)# show running-config
 ...
 msc 0
+ name msc-0
 msc 1
+ name msc-1
 msc 2
+ name msc-2
  remote-addr addr-msc2
  no allow-attach
 msc 3
+ name msc-3
  remote-addr addr-msc3
  allow-emergency
 sgsn 0
+ name sgsn-0
 sgsn 1
+ name sgsn-1
 sgsn 2
+ name sgsn-2
  remote-addr addr-sgsn2
 sgsn 3
+ name sgsn-3
  remote-addr addr-sgsn3
 ...

@@ -282,16 +296,24 @@
 OsmoHNBGW(config)# show running-config
 ...
 msc 0
+ name msc-0
 msc 1
+ name msc-1
 msc 2
+ name msc-2
  remote-addr addr-msc2
 msc 3
+ name msc-3
  remote-addr addr-msc4
 sgsn 0
+ name sgsn-0
 sgsn 1
+ name sgsn-1
 sgsn 2
+ name sgsn-2
  remote-addr addr-sgsn4
 sgsn 3
+ name sgsn-3
  remote-addr addr-sgsn3
 ...

@@ -321,18 +343,26 @@
 hnbgw
 ...
 msc 0
+ name msc-0
  remote-addr addr-msc0
 msc 1
+ name msc-1
 msc 2
+ name msc-2
  remote-addr addr-msc2
 msc 3
+ name msc-3
  remote-addr addr-msc4
 sgsn 0
+ name sgsn-0
  remote-addr addr-sgsn0
 sgsn 1
+ name sgsn-1
 sgsn 2
+ name sgsn-2
  remote-addr addr-sgsn4
 sgsn 3
+ name sgsn-3
  remote-addr addr-sgsn3
 ...


--
To view, visit https://gerrit.osmocom.org/c/osmo-hnbgw/+/40270?usp=email
To unsubscribe, or for help writing mail filters, visit 
https://gerrit.osmocom.org/settings?usp=email

Gerrit-MessageType: newchange
Gerrit-Project: osmo-hnbgw
Gerrit-Branch: master
Gerrit-Change-Id: Ic557f20f40fec49ce2c83a73f6e5c8b027d57ef5
Gerrit-Change-Number: 40270
Gerrit-PatchSet: 1
Gerrit-Owner: pespin <pes...@sysmocom.de>

Reply via email to