ggsn: vty: Require ggsn param in <show pdp-context> cmd
Other similar commands already do it. This way we also get rid of
deprecated APIs, supporting search when more than one GSN is set up.
Related: OS#2873
Change-Id: I8357e20076348c8ded5e9f5b8e7252566b0fbfea
diff --git a/ggsn/ggsn_vty.c b/ggsn/ggsn_vty.c
index 9101361..eb7cca7 100644
--- a/ggsn/ggsn_vty.c
+++ b/ggsn/ggsn_vty.c
@@ -764,25 +764,35 @@
}
DEFUN(show_pdpctx_imsi, show_pdpctx_imsi_cmd,
- "show pdp-context imsi IMSI [<0-15>]",
+ "show pdp-context ggsn NAME imsi IMSI [<0-15>]",
SHOW_STR "Display information on PDP Context\n"
+ GGSN_STR "GGSN Name\n"
"PDP contexts for given IMSI\n"
"PDP context for given NSAPI\n")
{
- uint64_t imsi = strtoull(argv[0], NULL, 10);
+ struct ggsn_ctx *ggsn;
+ uint64_t imsi;
unsigned int nsapi;
struct pdp_t *pdp;
int num_found = 0;
- if (argc > 1) {
- nsapi = atoi(argv[1]);
- if (pdp_getimsi(&pdp, imsi, nsapi)) {
+ ggsn = ggsn_find(argv[0]);
+ if (!ggsn) {
+ vty_out(vty, "%% No such GGSN '%s'%s", argv[0], VTY_NEWLINE);
+ return CMD_WARNING;
+ }
+
+ imsi = strtoull(argv[1], NULL, 10);
+
+ if (argc > 2) {
+ nsapi = atoi(argv[2]);
+ if (gtp_pdp_getimsi(ggsn->gsn, &pdp, imsi, nsapi)) {
show_one_pdp(vty, pdp);
num_found++;
}
} else {
for (nsapi = 0; nsapi < PDP_MAXNSAPI; nsapi++) {
- if (pdp_getimsi(&pdp, imsi, nsapi))
+ if (gtp_pdp_getimsi(ggsn->gsn, &pdp, imsi, nsapi))
continue;
show_one_pdp(vty, pdp);
num_found++;