Skip to content

Commit

Permalink
ofproto-dpif-xlate: Log flow in XLATE_REPORT_ERROR.
Browse files Browse the repository at this point in the history
To assist debugging pipelines when resubmit resource checks fail, print
the base_flow from the translation context. This base flow can then be
used from ofproto/trace to figure out which parts of the pipeline lead
to this translation error.

Signed-off-by: Joe Stringer <[email protected]>
Acked-by: Ben Pfaff <[email protected]>
  • Loading branch information
joestringer committed Aug 11, 2016
1 parent 51f4f3f commit a716ef9
Showing 1 changed file with 13 additions and 7 deletions.
20 changes: 13 additions & 7 deletions ofproto/ofproto-dpif-xlate.c
Original file line number Diff line number Diff line change
Expand Up @@ -627,13 +627,19 @@ xlate_report(struct xlate_ctx *ctx, const char *format, ...)

static struct vlog_rate_limit error_report_rl = VLOG_RATE_LIMIT_INIT(1, 5);

#define XLATE_REPORT_ERROR(CTX, ...) \
do { \
if (OVS_UNLIKELY((CTX)->xin->report_hook)) { \
xlate_report(CTX, __VA_ARGS__); \
} else { \
VLOG_ERR_RL(&error_report_rl, __VA_ARGS__); \
} \
#define XLATE_REPORT_ERROR(CTX, ...) \
do { \
if (OVS_UNLIKELY((CTX)->xin->report_hook)) { \
xlate_report(CTX, __VA_ARGS__); \
} else { \
struct ds ds = DS_EMPTY_INITIALIZER; \
\
ds_put_format(&ds, __VA_ARGS__); \
ds_put_cstr(&ds, ": "); \
flow_format(&ds, &ctx->base_flow); \
VLOG_ERR_RL(&error_report_rl, ds_cstr(&ds)); \
ds_destroy(&ds); \
} \
} while (0)

static inline void
Expand Down

0 comments on commit a716ef9

Please sign in to comment.