From 6cfaf517a342e23775b33cc1f67f58554125fac3 Mon Sep 17 00:00:00 2001 From: Ben Pfaff Date: Fri, 2 Oct 2009 16:01:36 -0700 Subject: [PATCH] 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 --- secchan/ofproto.c | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/secchan/ofproto.c b/secchan/ofproto.c index de1252a36..9836e0f83 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 * -- 2.43.0