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>