{
struct ofp_action_output *oa = (struct ofp_action_output *)ah;
- if (oa->port == htons(OFPP_NONE) || oa->port == key->in_port)
+ if (oa->port == htons(OFPP_NONE) ||
+ (!(key->wildcards & OFPFW_IN_PORT) && oa->port == key->in_port))
return OFPBAC_BAD_OUT_PORT;
return ACT_VALIDATION_OK;