]> git.proxmox.com Git - mirror_frr.git/commitdiff
vrrpd: some more error logging fixes
authorQuentin Young <qlyoung@cumulusnetworks.com>
Tue, 29 Oct 2019 18:47:04 +0000 (18:47 +0000)
committerQuentin Young <qlyoung@cumulusnetworks.com>
Wed, 30 Oct 2019 06:02:07 +0000 (06:02 +0000)
- Give the correct log message when refusing to start because the vr is
  already started
- Fix a couple other : whynot; cases missed

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
vrrpd/vrrp.c

index df2376c4739205f7d4d658bb7eca8bdc394b4637..eed0e8a31a2f1d171fa4518780a29db8e422f203 100644 (file)
@@ -281,7 +281,7 @@ void vrrp_check_start(struct vrrp_vrouter *vr)
 {
        struct vrrp_router *r;
        bool start;
-       const char *whynot;
+       const char *whynot = NULL;
 
        if (vr->shutdown || vr->ifp == NULL)
                return;
@@ -289,13 +289,14 @@ void vrrp_check_start(struct vrrp_vrouter *vr)
        r = vr->v4;
        /* Must not already be started */
        start = r->fsm.state == VRRP_STATE_INITIALIZE;
-       whynot = NULL;
+       whynot = (!start && !whynot) ? "Already running" : whynot;
        /* Must have a parent interface */
        start = start && (vr->ifp != NULL);
        whynot = (!start && !whynot) ? "No base interface" : whynot;
 #if 0
        /* Parent interface must be up */
        start = start && if_is_operative(vr->ifp);
+       start = (!start && !whynot) ? "Base interface inoperative" : whynot;
 #endif
        /* Parent interface must have at least one v4 */
        start = start && connected_count_by_family(vr->ifp, AF_INET) > 0;
@@ -306,6 +307,7 @@ void vrrp_check_start(struct vrrp_vrouter *vr)
 #if 0
        /* Macvlan interface must be admin up */
        start = start && CHECK_FLAG(r->mvl_ifp->flags, IFF_UP);
+       start = (!start && !whynot) ? "Macvlan device admin down" : whynot;
 #endif
        /* Must have at least one VIP configured */
        start = start && r->addrs->count > 0;
@@ -318,10 +320,12 @@ void vrrp_check_start(struct vrrp_vrouter *vr)
                          "Refusing to start Virtual Router: %s",
                          vr->vrid, family2str(r->family), whynot);
 
+       whynot = NULL;
+
        r = vr->v6;
        /* Must not already be started */
        start = r->fsm.state == VRRP_STATE_INITIALIZE;
-       whynot = NULL;
+       whynot = (!start && !whynot) ? "Already running" : whynot;
        /* Must not be v2 */
        start = start && vr->version != 2;
        whynot = (!start && !whynot) ? "VRRPv2 does not support v6" : whynot;
@@ -331,6 +335,7 @@ void vrrp_check_start(struct vrrp_vrouter *vr)
 #if 0
        /* Parent interface must be up */
        start = start && if_is_operative(vr->ifp);
+       start = (!start && !whynot) ? "Base interface inoperative" : whynot;
 #endif
        /* Must have a macvlan interface */
        start = start && (r->mvl_ifp != NULL);
@@ -338,6 +343,7 @@ void vrrp_check_start(struct vrrp_vrouter *vr)
 #if 0
        /* Macvlan interface must be admin up */
        start = start && CHECK_FLAG(r->mvl_ifp->flags, IFF_UP);
+       start = (!start && !whynot) ? "Macvlan device admin down" : whynot;
        /* Macvlan interface must have a link local */
        start = start && connected_get_linklocal(r->mvl_ifp);
        whynot =