aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSantosh Shukla <santosh.shukla@linaro.org>2015-06-02 20:24:59 +0100
committerZoltan Kiss <zoltan.kiss@linaro.org>2015-06-02 20:32:42 +0100
commit0eb9713c9a522ba733d6956be45a3468e14ffc4c (patch)
tree6c408111a104d17fd86364af1debc8aaf3ab5fee
parentfe4a8b044cefa20c045510ba2e9f2109da55bd56 (diff)
netdev-odp: enable ODP logger in OVS
Commit b36f299a added support for odp_override_log, but it haven't enabled it. This patch fixes a related bug [1] Tieto folks proposed a similar solution, so credit goes to them too. [1] https://bugs.linaro.org/show_bug.cgi?id=1593 Signed-off-by: Zoltan Kiss <zoltan.kiss@linaro.org> Signed-off-by: Santosh Shukla <santosh.shukla@linaro.org>
-rw-r--r--lib/netdev-odp.c31
1 files changed, 25 insertions, 6 deletions
diff --git a/lib/netdev-odp.c b/lib/netdev-odp.c
index e4f74d8ee..a2006d2c1 100644
--- a/lib/netdev-odp.c
+++ b/lib/netdev-odp.c
@@ -95,10 +95,17 @@ free_odp_buf(struct ofpbuf *b)
odp_packet_free(b->odp_pkt);
}
+static void odp_abort(void)
+{
+ VLOG_ERR("abort\n");
+ abort();
+}
+
int
odp_init(int argc, char *argv[])
{
int result;
+ odp_init_t params;
if (strcmp(argv[1], "--odp"))
return 0;
@@ -106,7 +113,11 @@ odp_init(int argc, char *argv[])
argc--;
argv++;
- result = odp_init_global(NULL, NULL);
+ memset(&params, 0, sizeof(params));
+ params.log_fn = &odp_override_log;
+ params.abort_fn = &odp_abort;
+
+ result = odp_init_global(&params, NULL);
if (result) {
VLOG_ERR("Error: ODP global init failed\n");
return result;
@@ -578,12 +589,20 @@ int odp_override_log(odp_log_level_e level, const char *fmt, ...)
{
va_list args;
enum vlog_level ovs_level;
- if (level == ODP_LOG_DBG)
- ovs_level = VLL_DBG;
- else if (level == ODP_LOG_PRINT)
- ovs_level = VLL_INFO;
- else
+
+ switch (level) {
+ case ODP_LOG_ERR:
+ case ODP_LOG_UNIMPLEMENTED:
+ case ODP_LOG_ABORT:
ovs_level = VLL_ERR;
+ break;
+ case ODP_LOG_PRINT:
+ ovs_level = VLL_INFO;
+ break;
+ case ODP_LOG_DBG:
+ default:
+ ovs_level = VLL_DBG;
+ }
va_start(args, fmt);
vlog_rate_limit_valist(THIS_MODULE, ovs_level, &rl, fmt, args);