Inline...

On 11/17/2015 3:54 PM, Vipin Kumar wrote:
Hi Jafar,

Response inline..

On Tue, Nov 17, 2015 at 9:25 AM, Jafar Al-Gharaibeh <[email protected] <mailto:[email protected]>> wrote:

    Question inline...


    On 11/13/2015 1:19 PM, Donald Sharp wrote:

        From: Vipin Kumar <[email protected]
        <mailto:[email protected]>>

        Signed-off-by: Vipin Kumar <[email protected]
        <mailto:[email protected]>>
        ---
          ospfd/ospf_main.c |    1 +
          ospfd/ospf_vty.c  |   45
        +++++++++++++++++++++++++++++++++++++++++++++
          ospfd/ospf_vty.h  |    1 +
          3 files changed, 47 insertions(+)

        diff --git a/ospfd/ospf_main.c b/ospfd/ospf_main.c
        index 1e4184f..dae0b8a 100644
        --- a/ospfd/ospf_main.c
        +++ b/ospfd/ospf_main.c
        @@ -303,6 +303,7 @@ main (int argc, char **argv)
            /* OSPF vty inits. */
            ospf_vty_init ();
            ospf_vty_show_init ();
        +  ospf_vty_clear_init ();
              ospf_route_map_init ();
          #ifdef HAVE_SNMP
        diff --git a/ospfd/ospf_vty.c b/ospfd/ospf_vty.c
        index 45a19c0..179b734 100644
        --- a/ospfd/ospf_vty.c
        +++ b/ospfd/ospf_vty.c
        @@ -7769,6 +7769,51 @@ static struct cmd_node ospf_node =
            1
          };
          +static void
        +ospf_interface_clear (struct interface *ifp)
        +{
        +  if (!if_is_operative (ifp)) return;
        +
        +  if (IS_DEBUG_OSPF (ism, ISM_EVENTS))
        +    zlog (NULL, LOG_DEBUG, "ISM[%s]: clear by reset", ifp->name);
        +
        +  ospf_if_reset(ifp);
        +}
        +
        +DEFUN (clear_ip_ospf_interface,
        +       clear_ip_ospf_interface_cmd,
        +       "clear ip ospf interface [IFNAME]",
        +       CLEAR_STR
        +       IP_STR
        +       "OSPF information\n"
        +       "Interface information\n"
        +       "Interface name\n")
        +{
        +  struct interface *ifp;
        +  struct listnode *node;
        +
        +  if (argc == 0) /* Clear all the ospfv2 interfaces. */
        +    {
        +      for (ALL_LIST_ELEMENTS_RO (iflist, node, ifp))
        +        ospf_interface_clear(ifp);
        +    }
        +  else /* Interface name is specified. */
        +    {
        +      if ((ifp = if_lookup_by_name (argv[0])) == NULL)
        +        vty_out (vty, "No such interface name%s", VTY_NEWLINE);
        +      else
        +        ospf_interface_clear(ifp);
        +    }


    If I am reading this correctly, it clears all of the interfaces if
    an interface name was not given explicitly, right?

    If this is the case, isn't there a danger of accidentally clearing
    all of the interfaces? should the "clear all" behavior be
    explicitly asked for by something like:

    clear ip ospf interface all


Use of 'all' isn't quite consistent in quagga at the moment.

r1# clea isis neighbor
  <cr>
  WORD  System id

r1# clear bgp
  *               Clear all peers
  <1-4294967295>  Clear peers with the AS number
  A.B.C.D         BGP neighbor address to clear
  WORD            BGP neighbor on interface to clear
  X:X::X:X        BGP IPv6 neighbor to clear
  external        Clear all external peers
  ipv6            Address family
  peer-group      Clear all members of peer-group
  view            BGP view
r1#

r1# show interface
  <cr>
  IFNAME       Inteface name
  description  Interface description
  vrf          Specify the VRF
r1# show interface vrf
  <0-65535>  The VRF ID
  all        All VRFs
r1# show interface vrf

therefore, i don't see an immediate need of 'all' here.

Fine by me if explicit 'all' is made norm. VRF lib has introduced 'all' as well for show 'vrf all'

Fine by me either way also but I thought it is good to be safe rather than sorry when I made the comment earlier. "all" makes the extent of the command very clear . Maybe "all" should be the norm and make it consistent across other commands, at least when it comes to "clear"? "show" doesn't have the same consequences if you do it by accident.

Regards,
Jafar


Vipin

    Regards,
    Jafar


        +
        +  return CMD_SUCCESS;
        +}
        +
        +void
        +ospf_vty_clear_init (void)
        +{
        +  install_element (ENABLE_NODE, &clear_ip_ospf_interface_cmd);
        +}
        +
            /* Install OSPF related vty commands. */
          void
        diff --git a/ospfd/ospf_vty.h b/ospfd/ospf_vty.h
        index da0ed1c..28bb419 100644
        --- a/ospfd/ospf_vty.h
        +++ b/ospfd/ospf_vty.h
        @@ -53,5 +53,6 @@
          /* Prototypes. */
          extern void ospf_vty_init (void);
          extern void ospf_vty_show_init (void);
        +extern void ospf_vty_clear_init (void);
            #endif /* _QUAGGA_OSPF_VTY_H */




_______________________________________________
Quagga-dev mailing list
[email protected]
https://lists.quagga.net/mailman/listinfo/quagga-dev

Reply via email to