aboutsummaryrefslogtreecommitdiffstats
path: root/openbsc/src/nat
diff options
context:
space:
mode:
authorHolger Hans Peter Freyther <zecke@selfish.org>2010-05-16 02:06:11 +0800
committerHolger Hans Peter Freyther <zecke@selfish.org>2010-05-16 02:49:11 +0800
commite21bdea501d3c077f2148588091790def5bd0163 (patch)
treef996ac2b9d1f7f9a1d732b9216a6c1ca4ccdc448 /openbsc/src/nat
parent11c17233fea7bc9e59d3718f55620f4044910d41 (diff)
[nat] Use and print the connection type of a SCCP connection.
Diffstat (limited to 'openbsc/src/nat')
-rw-r--r--openbsc/src/nat/bsc_nat.c1
-rw-r--r--openbsc/src/nat/bsc_nat_utils.c12
-rw-r--r--openbsc/src/nat/bsc_nat_vty.c3
3 files changed, 15 insertions, 1 deletions
diff --git a/openbsc/src/nat/bsc_nat.c b/openbsc/src/nat/bsc_nat.c
index 59257f4a7..3b10b9a3a 100644
--- a/openbsc/src/nat/bsc_nat.c
+++ b/openbsc/src/nat/bsc_nat.c
@@ -611,6 +611,7 @@ static int forward_sccp_to_msc(struct bsc_connection *bsc, struct msgb *msg)
if (create_sccp_src_ref(bsc, msg, parsed) != 0)
goto exit2;
con = patch_sccp_src_ref_to_msc(msg, parsed, bsc);
+ con->con_type = con_type;
break;
case SCCP_MSG_TYPE_RLSD:
case SCCP_MSG_TYPE_CREF:
diff --git a/openbsc/src/nat/bsc_nat_utils.c b/openbsc/src/nat/bsc_nat_utils.c
index 8083c6ad1..edc398ab9 100644
--- a/openbsc/src/nat/bsc_nat_utils.c
+++ b/openbsc/src/nat/bsc_nat_utils.c
@@ -390,3 +390,15 @@ void bsc_parse_reg(void *ctx, regex_t *reg, char **imsi, int argc, const char **
}
}
+static const char *con_types [] = {
+ [NAT_CON_TYPE_NONE] = "n/a",
+ [NAT_CON_TYPE_LU] = "Location Update",
+ [NAT_CON_TYPE_CM_SERV_REQ] = "CM Serv Req",
+ [NAT_CON_TYPE_PAG_RESP] = "Paging Response",
+ [NAT_CON_TYPE_OTHER] = "Other",
+};
+
+const char *bsc_con_type_to_string(int type)
+{
+ return con_types[type];
+}
diff --git a/openbsc/src/nat/bsc_nat_vty.c b/openbsc/src/nat/bsc_nat_vty.c
index 3e572bae5..56cd3c40a 100644
--- a/openbsc/src/nat/bsc_nat_vty.c
+++ b/openbsc/src/nat/bsc_nat_vty.c
@@ -95,7 +95,7 @@ DEFUN(show_sccp, show_sccp_cmd, "show sccp connections",
vty_out(vty, "Listing all opening SCCP connections%s", VTY_NEWLINE);
llist_for_each_entry(con, &_nat->sccp_connections, list_entry) {
- vty_out(vty, "For BSC Nr: %d lac: %d; BSC ref: 0x%x; MUX ref: 0x%x; Network has ref: %d ref: 0x%x MSC/BSC mux: 0x%x/0x%x%s",
+ vty_out(vty, "For BSC Nr: %d lac: %d; BSC ref: 0x%x; MUX ref: 0x%x; Network has ref: %d ref: 0x%x MSC/BSC mux: 0x%x/0x%x type: %s%s",
con->bsc->cfg ? con->bsc->cfg->nr : -1,
con->bsc->cfg ? con->bsc->cfg->lac : -1,
sccp_src_ref_to_int(&con->real_ref),
@@ -103,6 +103,7 @@ DEFUN(show_sccp, show_sccp_cmd, "show sccp connections",
con->has_remote_ref,
sccp_src_ref_to_int(&con->remote_ref),
con->msc_timeslot, con->bsc_timeslot,
+ bsc_con_type_to_string(con->con_type),
VTY_NEWLINE);
}