summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorQuentin Young <qlyoung@cumulusnetworks.com>2017-08-15 16:47:02 -0400
committerQuentin Young <qlyoung@cumulusnetworks.com>2017-08-16 11:18:11 -0400
commit5ed0add5e401fce563860f6afb69fdb33d115860 (patch)
treed62f26665562d43997194ec017929c70424a7aa5
parent0dac59e9433ab025671c9a867a22894084d25c76 (diff)
ospfd: remember area-id format for ifaces
Display dotted quad or decimal back in the config depending on what the user enters. Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
-rw-r--r--ospfd/ospf_interface.h2
-rw-r--r--ospfd/ospf_vty.c10
2 files changed, 10 insertions, 2 deletions
diff --git a/ospfd/ospf_interface.h b/ospfd/ospf_interface.h
index d4b495b20f..829a3f4297 100644
--- a/ospfd/ospf_interface.h
+++ b/ospfd/ospf_interface.h
@@ -66,6 +66,8 @@ struct ospf_if_params {
DECLARE_IF_PARAM(u_char, priority); /* OSPF Interface priority */
/* Enable OSPF on this interface with area if_area */
DECLARE_IF_PARAM(struct in_addr, if_area);
+ u_int32_t if_area_id_fmt;
+
DECLARE_IF_PARAM(u_char, type); /* type of interface */
#define OSPF_IF_ACTIVE 0
#define OSPF_IF_PASSIVE 1
diff --git a/ospfd/ospf_vty.c b/ospfd/ospf_vty.c
index 13d4780db3..d9354e0cb1 100644
--- a/ospfd/ospf_vty.c
+++ b/ospfd/ospf_vty.c
@@ -6971,6 +6971,7 @@ DEFUN (ip_ospf_area,
/* enable ospf on this interface with area_id */
SET_IF_PARAM(params, if_area);
params->if_area = area_id;
+ params->if_area_id_fmt = format;
ospf_interface_area_set(ifp);
ospf->if_ospf_cli_count++;
@@ -8312,8 +8313,13 @@ static int config_write_interface(struct vty *vty)
else
vty_out(vty, " ip ospf");
- vty_out(vty, " area %s",
- inet_ntoa(params->if_area));
+
+ size_t buflen = MAX(strlen("4294967295"),
+ strlen("255.255.255.255"));
+ char buf[buflen];
+ area_id2str(buf, sizeof(buf), &params->if_area,
+ params->if_area_id_fmt);
+ vty_out(vty, " area %s", buf);
if (params != IF_DEF_PARAMS(ifp))
vty_out(vty, " %s",
inet_ntoa(rn->p.u.prefix4));