The special_cb hook allows ofproto's client to intercept packets. When
it is not present (as in ovs-openflowd), no packets need to be intercepted,
but ofproto implemented the opposite behavior. This fixes the problem.
Reported-by: kk yap <yapkke@stanford.edu>
ctx->last_pop_priority = -1;
if (!ctx->check_special
- || (ctx->ofproto->ofhooks->special_cb
- && ctx->ofproto->ofhooks->special_cb(&ctx->flow, ctx->packet,
- ctx->ofproto->aux))) {
+ || !ctx->ofproto->ofhooks->special_cb
+ || ctx->ofproto->ofhooks->special_cb(&ctx->flow, ctx->packet,
+ ctx->ofproto->aux)) {
do_xlate_actions(in, n_in, ctx);
} else {
ctx->may_set_up_flow = false;