diff options
| author | Quentin Young <qlyoung@cumulusnetworks.com> | 2017-08-15 16:47:02 -0400 |
|---|---|---|
| committer | Quentin Young <qlyoung@cumulusnetworks.com> | 2017-08-16 11:18:11 -0400 |
| commit | 5ed0add5e401fce563860f6afb69fdb33d115860 (patch) | |
| tree | d62f26665562d43997194ec017929c70424a7aa5 | |
| parent | 0dac59e9433ab025671c9a867a22894084d25c76 (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.h | 2 | ||||
| -rw-r--r-- | ospfd/ospf_vty.c | 10 |
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), ¶ms->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)); |
