aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--doc/manuals/vty/ggsn_vty_reference.xml8
-rw-r--r--ggsn/ggsn_vty.c22
2 files changed, 22 insertions, 8 deletions
diff --git a/doc/manuals/vty/ggsn_vty_reference.xml b/doc/manuals/vty/ggsn_vty_reference.xml
index a226f8f..a395b23 100644
--- a/doc/manuals/vty/ggsn_vty_reference.xml
+++ b/doc/manuals/vty/ggsn_vty_reference.xml
@@ -351,10 +351,12 @@
<param name='APN' doc='APN name' />
</params>
</command>
- <command id='show pdp-context imsi IMSI [&lt;0-15&gt;]'>
+ <command id='show pdp-context ggsn NAME imsi IMSI [&lt;0-15&gt;]'>
<params>
<param name='show' doc='Show running system information' />
<param name='pdp-context' doc='Display information on PDP Context' />
+ <param name='ggsn' doc='Gateway GPRS Support NODE (GGSN)' />
+ <param name='NAME' doc='GGSN Name' />
<param name='imsi' doc='PDP contexts for given IMSI' />
<param name='IMSI' doc='PDP context for given NSAPI' />
<param name='[&lt;0-15&gt;]' doc='(null)' />
@@ -709,10 +711,12 @@
<param name='APN' doc='APN name' />
</params>
</command>
- <command id='show pdp-context imsi IMSI [&lt;0-15&gt;]'>
+ <command id='show pdp-context ggsn NAME imsi IMSI [&lt;0-15&gt;]'>
<params>
<param name='show' doc='Show running system information' />
<param name='pdp-context' doc='Display information on PDP Context' />
+ <param name='ggsn' doc='Gateway GPRS Support NODE (GGSN)' />
+ <param name='NAME' doc='GGSN Name' />
<param name='imsi' doc='PDP contexts for given IMSI' />
<param name='IMSI' doc='PDP context for given NSAPI' />
<param name='[&lt;0-15&gt;]' doc='(null)' />
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 @@ static void show_one_pdp(struct vty *vty, struct pdp_t *pdp)
}
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++;