From: Ben Pfaff Date: Fri, 2 Oct 2009 23:01:36 +0000 (-0700) Subject: secchan: Clarify logic in add_output_action(). X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6cfaf517a342e23775b33cc1f67f58554125fac3;p=openvswitch secchan: Clarify logic in add_output_action(). The code and the logic here was too terse for anyone to reasonably understand it. Add some comments. This should not cause any behavioral change. CC: Jean Tourrilhes --- diff --git a/secchan/ofproto.c b/secchan/ofproto.c index de1252a3..9836e0f8 100644 --- a/secchan/ofproto.c +++ b/secchan/ofproto.c @@ -1930,9 +1930,21 @@ static void add_output_action(struct action_xlate_ctx *ctx, uint16_t port) { const struct ofport *ofport = port_array_get(&ctx->ofproto->ports, port); - if (!ofport || !(ofport->opp.config & OFPPC_NO_FWD)) { - odp_actions_add(ctx->out, ODPAT_OUTPUT)->output.port = port; + + if (ofport) { + if (ofport->opp.config & OFPPC_NO_FWD) { + /* Forwarding disabled on port. */ + return; + } + } else { + /* + * We don't have an ofport record for this port, but it doesn't hurt to + * allow forwarding to it anyhow. Maybe such a port will appear later + * and we're pre-populating the flow table. + */ } + + odp_actions_add(ctx->out, ODPAT_OUTPUT)->output.port = port; } static struct rule *