So requested by benno@ print when we receive and send the EOR marker.
This gives an indication when a session is synchronized (esp. the recv
one). Example

neighbor 10.48.0.242 (upstream): sending IPv4 unicast EOR marker
nexthop 10.48.0.242 now valid: via 10.0.0.1
neighbor 10.48.0.242 (upstream): received IPv4 unicast EOR marker

While there more importantly fix the log_peer_warn log level from LOG_CRIT
to LOG_ERR (like for log_warn). LOG_CRIT is exclusivly used by fatal and
yyerror.

-- 
:wq Claudio


Index: bgpd.h
===================================================================
RCS file: /cvs/src/usr.sbin/bgpd/bgpd.h,v
retrieving revision 1.306
diff -u -p -r1.306 bgpd.h
--- bgpd.h      28 May 2017 15:16:33 -0000      1.306
+++ bgpd.h      28 May 2017 19:07:35 -0000
@@ -1023,6 +1023,8 @@ int                kr_reload(void);
 struct in6_addr        *prefixlen2mask6(u_int8_t prefixlen);
 
 /* log.c */
+void            log_peer_info(const struct peer_config *, const char *, ...)
+                       __attribute__((__format__ (printf, 2, 3)));
 void            log_peer_warn(const struct peer_config *, const char *, ...)
                        __attribute__((__format__ (printf, 2, 3)));
 void            log_peer_warnx(const struct peer_config *, const char *, ...)
Index: logmsg.c
===================================================================
RCS file: /cvs/src/usr.sbin/bgpd/logmsg.c,v
retrieving revision 1.2
diff -u -p -r1.2 logmsg.c
--- logmsg.c    24 Jan 2017 04:22:42 -0000      1.2
+++ logmsg.c    28 May 2017 12:57:12 -0000
@@ -58,6 +58,22 @@ log_fmt_peer(const struct peer_config *p
 }
 
 void
+log_peer_info(const struct peer_config *peer, const char *emsg, ...)
+{
+       char    *p, *nfmt;
+       va_list  ap;
+
+       p = log_fmt_peer(peer);
+       if (asprintf(&nfmt, "%s: %s", p, emsg) == -1)
+               fatal(NULL);
+       va_start(ap, emsg);
+       vlog(LOG_INFO, nfmt, ap);
+       va_end(ap);
+       free(p);
+       free(nfmt);
+}
+
+void
 log_peer_warn(const struct peer_config *peer, const char *emsg, ...)
 {
        char    *p, *nfmt;
@@ -73,7 +89,7 @@ log_peer_warn(const struct peer_config *
                        fatal(NULL);
        }
        va_start(ap, emsg);
-       vlog(LOG_CRIT, nfmt, ap);
+       vlog(LOG_ERR, nfmt, ap);
        va_end(ap);
        free(p);
        free(nfmt);
@@ -89,7 +105,7 @@ log_peer_warnx(const struct peer_config 
        if (asprintf(&nfmt, "%s: %s", p, emsg) == -1)
                fatal(NULL);
        va_start(ap, emsg);
-       vlog(LOG_CRIT, nfmt, ap);
+       vlog(LOG_ERR, nfmt, ap);
        va_end(ap);
        free(p);
        free(nfmt);
@@ -161,21 +177,21 @@ log_notification(const struct peer *peer
                        suberrname = suberr_fsm_names[subcode];
                break;
        default:
-               logit(LOG_CRIT, "%s: %s notification, unknown errcode "
+               logit(LOG_ERR, "%s: %s notification, unknown errcode "
                    "%u, subcode %u", p, dir, errcode, subcode);
                free(p);
                return;
        }
 
        if (uk)
-               logit(LOG_CRIT, "%s: %s notification: %s, unknown subcode %u",
+               logit(LOG_ERR, "%s: %s notification: %s, unknown subcode %u",
                    p, dir, errnames[errcode], subcode);
        else {
                if (suberrname == NULL)
-                       logit(LOG_CRIT, "%s: %s notification: %s", p,
+                       logit(LOG_ERR, "%s: %s notification: %s", p,
                            dir, errnames[errcode]);
                else
-                       logit(LOG_CRIT, "%s: %s notification: %s, %s",
+                       logit(LOG_ERR, "%s: %s notification: %s, %s",
                            p, dir, errnames[errcode], suberrname);
        }
        free(p);
Index: rde.c
===================================================================
RCS file: /cvs/src/usr.sbin/bgpd/rde.c,v
retrieving revision 1.364
diff -u -p -r1.364 rde.c
--- rde.c       28 May 2017 12:21:36 -0000      1.364
+++ rde.c       28 May 2017 19:08:43 -0000
@@ -3490,6 +3490,9 @@ peer_recv_eor(struct rde_peer *peer, u_i
        if (imsg_compose(ibuf_se, IMSG_SESSION_RESTARTED, peer->conf.id,
            0, -1, &aid, sizeof(aid)) == -1)
                fatal("%s %d imsg_compose error", __func__, __LINE__);
+
+       log_peer_info(&peer->conf, "received %s EOR marker",
+           aid2str(aid));
 }
 
 void
@@ -3531,6 +3534,9 @@ peer_send_eor(struct rde_peer *peer, u_i
                        fatal("%s %d imsg_compose error in peer_send_eor",
                            __func__, __LINE__);
        }
+
+       log_peer_info(&peer->conf, "sending %s EOR marker",
+           aid2str(aid));
 }
 
 /*

Reply via email to