diff options
author | Santosh Shukla <santosh.shukla@linaro.org> | 2015-06-02 20:24:59 +0100 |
---|---|---|
committer | Zoltan Kiss <zoltan.kiss@linaro.org> | 2015-06-02 20:32:42 +0100 |
commit | 0eb9713c9a522ba733d6956be45a3468e14ffc4c (patch) | |
tree | 6c408111a104d17fd86364af1debc8aaf3ab5fee | |
parent | fe4a8b044cefa20c045510ba2e9f2109da55bd56 (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.c | 31 |
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(¶ms, 0, sizeof(params)); + params.log_fn = &odp_override_log; + params.abort_fn = &odp_abort; + + result = odp_init_global(¶ms, 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); |