lldpad/lldpad-0.9.43-lldpad-Fix-logging-to-no-longer-use-message-IDs.patch
2011-09-08 08:34:30 +02:00

490 lines
15 KiB
Diff

From a7542456c40a9943a92daf6c7b6fcbd520ed023e Mon Sep 17 00:00:00 2001
From: Mark Rustad <mark.d.rustad@intel.com>
Date: Mon, 15 Aug 2011 18:14:26 -0700
Subject: [PATCH 24/29] lldpad: Fix logging to no longer use message IDs
lldpad's logging was overloading the first parameter to the log_message
function as both a logging level and a message ID. There are really not
many message IDs in use, so resolve the conflict by using only log level.
This also adds a proper printf-attribute to the logging function so
that arguments can be checked and resolve those as well. A few messages
that were changed now have more useful content.
Signed-off-by: Mark Rustad <mark.d.rustad@intel.com>
Tested-by: Ross Brattain <ross.b.brattain@intel.com>
Signed-off-by: John Fastabend <john.r.fastabend@intel.com>
Signed-off-by: Petr Sabata <contyk@redhat.com>
---
ecp/ecp.c | 4 +-
ecp/ecp_rx.c | 12 ++--
ecp/ecp_tx.c | 13 ++---
include/messages.h | 30 +----------
lldp/rx.c | 4 +-
lldp_evb.c | 8 +--
lldp_mand.c | 4 +-
lldp_vdp.c | 24 ++++-----
lldpad.c | 6 +--
log.c | 150 ++--------------------------------------------------
10 files changed, 38 insertions(+), 217 deletions(-)
diff --git a/ecp/ecp.c b/ecp/ecp.c
index 7d9be89..638a8cb 100644
--- a/ecp/ecp.c
+++ b/ecp/ecp.c
@@ -118,9 +118,9 @@ void ecp_ack_timeout_handler(void *eloop_data, void *user_ctx)
__func__, __LINE__, vd->ifname, vd->ecp.ackTimer);
ecp_tx_run_sm(vd);
} else {
- LLDPAD_DBG("%s(%i)-%s: BUG ! handler called but"
+ LLDPAD_DBG("%s-%s: BUG ! handler called but"
"vdp->ecp.ackTimer not expired (%i) !\n",
- __func__, __LINE__, vd->ecp.ackTimer);
+ __func__, vd->ifname, vd->ecp.ackTimer);
}
}
diff --git a/ecp/ecp_rx.c b/ecp/ecp_rx.c
index 74e9f32..a56cd3b 100644
--- a/ecp/ecp_rx.c
+++ b/ecp/ecp_rx.c
@@ -513,8 +513,8 @@ void ecp_rx_change_state(struct vdp_data *vd, u8 newstate)
assert(vd->ecp.rx.state == ECP_RX_RECEIVE_ECPDU);
break;
default:
- LLDPAD_ERR("ERROR: The ECP_RX State Machine is broken!\n");
- log_message(MSG_ERR_RX_SM_INVALID, "%s", vd->ifname);
+ LLDPAD_ERR("%s: LLDP rx state machine setting invalid state %d\n",
+ vd->ifname, newstate);
}
LLDPAD_DBG("%s(%i)-%s: state change %s -> %s\n", __func__, __LINE__,
@@ -585,8 +585,8 @@ bool ecp_set_rx_state(struct vdp_data *vd)
ecp_rx_change_state(vd, ECP_RX_RECEIVE_WAIT);
return false;
default:
- LLDPAD_ERR("ERROR: The ECP_RX State Machine is broken!\n");
- log_message(MSG_ERR_RX_SM_INVALID, "%s", vd->ifname);
+ LLDPAD_ERR("%s: LLDP RX state machine in invalid state %d\n",
+ vd->ifname, vd->ecp.rx.state);
return false;
}
}
@@ -628,8 +628,8 @@ void ecp_rx_run_sm(struct vdp_data *vd)
}
break;
default:
- LLDPAD_ERR("ERROR: The ECP_RX State Machine is broken!\n");
- log_message(MSG_ERR_TX_SM_INVALID, "%s", vd->ifname);
+ LLDPAD_ERR("%s: LLDP RX state machine in invalid state %d\n",
+ vd->ifname, vd->ecp.rx.state);
}
} while (ecp_set_rx_state(vd) == true);
diff --git a/ecp/ecp_tx.c b/ecp/ecp_tx.c
index f9ee3d7..c81e101 100644
--- a/ecp/ecp_tx.c
+++ b/ecp/ecp_tx.c
@@ -377,8 +377,8 @@ static void ecp_tx_change_state(struct vdp_data *vd, u8 newstate)
assert(vd->ecp.tx.state == ECP_TX_WAIT_FOR_ACK);
break;
default:
- LLDPAD_ERR("ERROR: The ECP_TX State Machine is broken!\n");
- log_message(MSG_ERR_TX_SM_INVALID, "%s", vd->ifname);
+ LLDPAD_ERR("%s: LLDP TX state machine setting invalid state %d\n",
+ vd->ifname, newstate);
}
LLDPAD_DBG("%s(%i)-%s: state change %s -> %s\n", __func__, __LINE__,
@@ -462,8 +462,8 @@ static bool ecp_set_tx_state(struct vdp_data *vd)
}
return false;
default:
- LLDPAD_ERR("ERROR: The TX State Machine is broken!\n");
- log_message(MSG_ERR_TX_SM_INVALID, "%s", vd->ifname);
+ LLDPAD_ERR("%s: LLDP TX state machine in invalid state %d\n",
+ vd->ifname, vd->ecp.tx.state);
return false;
}
}
@@ -506,9 +506,8 @@ void ecp_tx_run_sm(struct vdp_data *vd)
vd->ifname, vd->ecp.lastSequence);
break;
default:
- LLDPAD_ERR("%s(%i): ERROR The TX State Machine is broken!\n", __func__,
- __LINE__);
- log_message(MSG_ERR_TX_SM_INVALID, "%s", vd->ifname);
+ LLDPAD_ERR("%s: LLDP TX state machine in invalid state %d\n",
+ vd->ifname, vd->ecp.tx.state);
}
} while (ecp_set_tx_state(vd) == true);
diff --git a/include/messages.h b/include/messages.h
index 795a0df..2991d33 100644
--- a/include/messages.h
+++ b/include/messages.h
@@ -29,37 +29,11 @@
#include <syslog.h>
#include <stdbool.h>
-#define MSG_INFO_DEBUG_STRING 1
-
-#define MSG_ERR_SERVICE_START_FAILURE 14
-#define MSG_ERR_RESOURCE_MEMORY 15
-#define MSG_ERR_ADD_CARD_FAILURE 16
-#define MSG_ERR_DCB_INVALID_TX_TOTAL_BWG 17
-#define MSG_ERR_DCB_INVALID_RX_TOTAL_BWG 18
-#define MSG_ERR_DCB_INVALID_TX_BWG_IDX 19
-#define MSG_ERR_DCB_INVALID_RX_BWG_IDX 20
-#define MSG_ERR_DCB_INVALID_TX_LSP_NZERO_BW_TC 21
-#define MSG_ERR_DCB_INVALID_RX_LSP_NZERO_BW_TC 22
-#define MSG_ERR_DCB_TOO_MANY_LSP_PGIDS 23
-#define MSG_ERR_DCB_INVALID_TX_ZERO_BW_TC 24
-#define MSG_ERR_DCB_INVALID_RX_ZERO_BW_TC 25
-#define MSG_ERR_DCB_INVALID_TX_LSP_NZERO_BWG 26
-#define MSG_ERR_DCB_INVALID_RX_LSP_NZERO_BWG 27
-#define MSG_ERR_DCB_INVALID_TX_BWG 28
-#define MSG_ERR_DCB_INVALID_RX_BWG 29
-#define MSG_ERR_TX_SM_INVALID 30
-#define MSG_ERR_RX_SM_INVALID 31
-#define MSG_ERR_DCB_INVALID_CONFIG_FILE 32
-
-#define MSG_INFO_LLINK_DISABLED 37
-#define MSG_INFO_LLINK_ENABLED 38
-#define MSG_INFO_LLINK_OPER 39
-#define MSG_ERR_LLINK_NONOPER 40
-
extern bool daemonize;
extern int loglvl;
-void log_message(__u32 dwMsgId, const char *pFormat, ...);
+void log_message(int loglvl, const char *pFormat, ...)
+ __attribute__((__format__(__printf__, 2, 3)));
#define LLDPAD_ERR(...) log_message(LOG_ERR, __VA_ARGS__)
#define LLDPAD_WARN(...) log_message(LOG_WARNING, __VA_ARGS__)
diff --git a/lldp/rx.c b/lldp/rx.c
index bbb2e2f..3954808 100644
--- a/lldp/rx.c
+++ b/lldp/rx.c
@@ -375,8 +375,8 @@ void rxProcessFrame(struct port * port)
}
if (!tlv_stored) {
- LLDPAD_INFO("\nrxProcessFrame: allocated TLV (%lu) "
- " was not stored! (%p)\n", tlv->type, tlv);
+ LLDPAD_INFO("%s: allocated TLV %u was not stored! %p\n",
+ __func__, tlv->type, tlv);
tlv = free_unpkd_tlv(tlv);
port->stats.statsTLVsUnrecognizedTotal++;
}
diff --git a/lldp_evb.c b/lldp_evb.c
index fe43af5..3895d71 100644
--- a/lldp_evb.c
+++ b/lldp_evb.c
@@ -648,17 +648,13 @@ struct lldp_module *evb_register(void)
mod = malloc(sizeof(*mod));
if (!mod) {
- LLDPAD_ERR("failed to malloc module data\n");
- log_message(MSG_ERR_SERVICE_START_FAILURE,
- "%s", "failed to malloc module data");
+ LLDPAD_ERR("lldpad failed to start - failed to malloc module data\n");
goto out_err;
}
ud = malloc(sizeof(struct evb_user_data));
if (!ud) {
free(mod);
- LLDPAD_ERR("failed to malloc module user data\n");
- log_message(MSG_ERR_SERVICE_START_FAILURE,
- "%s", "failed to malloc module user data");
+ LLDPAD_ERR("lldpad failed to start - failed to malloc module user data\n");
goto out_err;
}
LIST_INIT(&ud->head);
diff --git a/lldp_mand.c b/lldp_mand.c
index b5e8092..1bc4358 100644
--- a/lldp_mand.c
+++ b/lldp_mand.c
@@ -211,7 +211,7 @@ bld_config:
/* if invalid subtype, fall back to build */
if (!CHASSIS_ID_INVALID(chassis.sub)) {
- LLDPAD_DBG("%s:%s:from config %d bytes:str=%s\n",
+ LLDPAD_DBG("%s:%s:from config %zd bytes:str=%s\n",
__func__, md->ifname, length, chastr);
/* TODO: validate the loaded tlv */
goto bld_tlv;
@@ -358,7 +358,7 @@ bld_config:
/* if invalid subtype, fall back to build */
if (!PORT_ID_INVALID(portid.sub)) {
- LLDPAD_DBG("%s:%s:from config %d bytes:str=%s\n",
+ LLDPAD_DBG("%s:%s:from config %zd bytes:str=%s\n",
__func__, md->ifname, length, porstr);
/* TODO: validate the loaded tlv */
goto bld_tlv;
diff --git a/lldp_vdp.c b/lldp_vdp.c
index 2875bf5..5b8ce46 100644
--- a/lldp_vdp.c
+++ b/lldp_vdp.c
@@ -596,8 +596,8 @@ static bool vdp_vsi_set_station_state(struct vsi_profile *profile)
case VSI_EXIT:
return false;
default:
- LLDPAD_ERR("ERROR: The VSI RX State Machine is broken!\n");
- log_message(MSG_ERR_RX_SM_INVALID, "");
+ LLDPAD_ERR("%s: VSI state machine in invalid state %d\n",
+ profile->port->ifname, profile->state);
return false;
}
}
@@ -668,8 +668,8 @@ void vdp_vsi_sm_station(struct vsi_profile *profile)
vdp_remove_profile(profile);
break;
default:
- LLDPAD_ERR("ERROR: The VSI RX station State Machine is broken!\n");
- log_message(MSG_ERR_TX_SM_INVALID, "");
+ LLDPAD_ERR("%s: VSI state machine in invalid state %d\n",
+ vd->ifname, profile->state);
}
} while (vdp_vsi_set_station_state(profile) == true);
@@ -792,8 +792,8 @@ static bool vdp_vsi_set_bridge_state(struct vsi_profile *profile)
case VSI_EXIT:
return false;
default:
- LLDPAD_ERR("ERROR: The VSI RX State Machine (bridge) is broken!\n");
- log_message(MSG_ERR_RX_SM_INVALID, "");
+ LLDPAD_ERR("%s: VSI state machine (bridge) in invalid state %d\n",
+ profile->port->ifname, profile->state);
return false;
}
}
@@ -850,8 +850,8 @@ static void vdp_vsi_sm_bridge(struct vsi_profile *profile)
vdp_remove_profile(profile);
break;
default:
- LLDPAD_ERR("ERROR: The VSI RX bridge State Machine is broken!\n");
- log_message(MSG_ERR_TX_SM_INVALID, "");
+ LLDPAD_ERR("%s: VSI state machine in invalid state %d\n",
+ vd->ifname, profile->state);
}
} while (vdp_vsi_set_bridge_state(profile) == true);
@@ -1454,17 +1454,13 @@ struct lldp_module *vdp_register(void)
mod = malloc(sizeof(*mod));
if (!mod) {
- LLDPAD_ERR("failed to malloc module data\n");
- log_message(MSG_ERR_SERVICE_START_FAILURE,
- "%s", "failed to malloc module data");
+ LLDPAD_ERR("lldpad failed to start - failed to malloc module data\n");
goto out_err;
}
ud = malloc(sizeof(struct vdp_user_data));
if (!ud) {
free(mod);
- LLDPAD_ERR("failed to malloc module user data\n");
- log_message(MSG_ERR_SERVICE_START_FAILURE,
- "%s", "failed to malloc module user data");
+ LLDPAD_ERR("lldpad failed to start - failed to malloc module user data\n");
goto out_err;
}
LIST_INIT(&ud->head);
diff --git a/lldpad.c b/lldpad.c
index 6105985..a1a7ac1 100644
--- a/lldpad.c
+++ b/lldpad.c
@@ -370,8 +370,7 @@ int main(int argc, char *argv[])
* pid as netlink address.
*/
if (event_iface_init_user_space() < 0) {
- log_message(MSG_ERR_SERVICE_START_FAILURE,
- "%s", "failed to register user space event interface");
+ LLDPAD_ERR("lldpad failed to start - failed to register user space event interface\n");
exit(1);
}
@@ -398,8 +397,7 @@ int main(int argc, char *argv[])
if (ctrl_iface_register(clifd) < 0) {
if (!daemonize)
fprintf(stderr, "failed to register control interface\n");
- log_message(MSG_ERR_SERVICE_START_FAILURE,
- "%s", "failed to register control interface");
+ LLDPAD_ERR("lldpad failed to start - failed to register control interface\n");
exit(1);
}
diff --git a/log.c b/log.c
index e0aa3e5..57ac256 100644
--- a/log.c
+++ b/log.c
@@ -27,160 +27,18 @@
#include <stdio.h>
#include <syslog.h>
#include <stdarg.h>
-#include "dcb_protocol.h"
#include "messages.h"
-#include "lldpad.h"
-
-void log_message(u32 msgid, const char *format, ...)
+void log_message(int level, const char *format, ...)
{
- int a, b;
- char fmt[256];
-
va_list va, vb;
va_start(va, format);
va_copy(vb, va);
- if (!daemonize && loglvl >= msgid) {
+ if (daemonize)
+ vsyslog(level, format, vb);
+ else if (loglvl >= level)
vprintf(format, vb);
- va_end(va);
- return;
- } else if (!daemonize) {
- va_end(va);
- return;
- }
-
- switch(msgid) {
- case MSG_INFO_DEBUG_STRING:
- vsyslog(LOG_DEBUG, format, vb);
- break;
- case MSG_ERR_SERVICE_START_FAILURE:
- snprintf(fmt, sizeof(fmt), "lldpad failed to start - %s", format);
- syslog(LOG_ERR, fmt, va_arg(va, char *));
- break;
- case MSG_ERR_RESOURCE_MEMORY:
- break;
- case MSG_ERR_ADD_CARD_FAILURE:
- syslog(LOG_ERR,
- "failed to add interface %s",
- va_arg(va, char *));
- break;
- case MSG_ERR_DCB_INVALID_TX_TOTAL_BWG:
- syslog(LOG_ERR,
- "invalid total priority group bandwidth for tx [%d%%]",
- va_arg(va, int));
- break;
- case MSG_ERR_DCB_INVALID_RX_TOTAL_BWG:
- syslog(LOG_ERR,
- "invalid total priority group bandwidth for rx [%d%%]",
- va_arg(va, int));
- break;
- case MSG_ERR_DCB_INVALID_TX_BWG_IDX:
- syslog(LOG_ERR,
- "invalid transmit priority group index [%d]",
- va_arg(va, int));
- break;
- case MSG_ERR_DCB_INVALID_RX_BWG_IDX:
- syslog(LOG_ERR,
- "invalid receive priority group index [%d]",
- va_arg(va, int));
- break;
- case MSG_ERR_DCB_INVALID_TX_LSP_NZERO_BW_TC:
- a = va_arg(va, int);
- b = va_arg(va, int);
- syslog(LOG_ERR,
- "transmit link strict user priority[%d] has non-zero "
- "bandwidth [%d%%]", a, b);
- break;
- case MSG_ERR_DCB_INVALID_RX_LSP_NZERO_BW_TC:
- a = va_arg(va, int);
- b = va_arg(va, int);
- syslog(LOG_ERR,
- "receive link strict user priority[%d] has non-zero "
- "bandwidth [%d%%]", a, b);
- break;
- case MSG_ERR_DCB_TOO_MANY_LSP_PGIDS:
- syslog(LOG_ERR,
- "only one link strict priority group is allowed [%d%%]",
- va_arg(va, int));
- break;
- case MSG_ERR_DCB_INVALID_TX_ZERO_BW_TC:
- syslog(LOG_ERR,
- "transmit user priority[%d] has zero bandwidth",
- va_arg(va, int));
- break;
- case MSG_ERR_DCB_INVALID_RX_ZERO_BW_TC:
- syslog(LOG_ERR,
- "receive user priority[%d] has zero bandwidth",
- va_arg(va, int));
- break;
- case MSG_ERR_DCB_INVALID_TX_LSP_NZERO_BWG:
- a = va_arg(va, int);
- b = va_arg(va, int);
- syslog(LOG_ERR,
- "transmit link strict priority group [%d] has a "
- "non-zero bandwidth [%d%%]", a, b);
- break;
- case MSG_ERR_DCB_INVALID_RX_LSP_NZERO_BWG:
- a = va_arg(va, int);
- b = va_arg(va, int);
- syslog(LOG_ERR,
- "receive link strict priority group [%d] has a "
- "non-zero bandwidth [%d%%]", a, b);
- break;
- case MSG_ERR_DCB_INVALID_TX_BWG:
- a = va_arg(va, int);
- b = va_arg(va, int);
- syslog(LOG_ERR,
- "transmit priority group [%d] has invalid total "
- "bandwidth [%d%%], should be 0 or 100", a, b);
- break;
- case MSG_ERR_DCB_INVALID_RX_BWG:
- a = va_arg(va, int);
- b = va_arg(va, int);
- syslog(LOG_ERR,
- "receive priority group [%d] has invalid total "
- "bandwidth [%d%%], should be 0 or 100", a, b);
- break;
- case MSG_ERR_TX_SM_INVALID:
- syslog(LOG_ERR,
- "LLDP transmit state machine encountered an invalid "
- "state.");
- break;
- case MSG_ERR_RX_SM_INVALID:
- syslog(LOG_ERR,
- "LLDP receive state machine encountered an invalid "
- "state.");
- break;
- case MSG_ERR_DCB_INVALID_CONFIG_FILE:
- syslog(LOG_ERR,
- "lldpad failed to read config file - %s",
- va_arg(va, char *));
- break;
- case MSG_INFO_LLINK_DISABLED:
- syslog(LOG_INFO,
- "FCoE logical link on %s is disabled",
- va_arg(va, char *));
- break;
- case MSG_INFO_LLINK_ENABLED:
- syslog(LOG_INFO,
- "FCoE logical link on %s is enabled",
- va_arg(va, char *));
- break;
- case MSG_INFO_LLINK_OPER:
- syslog(LOG_INFO,
- "FCoE logical link on %s is operational",
- va_arg(va, char *));
- break;
- case MSG_ERR_LLINK_NONOPER:
- syslog(LOG_ERR,
- "FCoE logical link on %s is not operational",
- va_arg(va, char *));
- break;
- default:
- vsyslog(msgid, format, vb);
- break;
- }
va_end(va);
}
--
1.7.6