[ovs-dev] [PATCH v3 04/16] dpif: Allow hash actions in dpif_execute_helper_cb()
Simon Horman
horms at verge.net.au
Tue Apr 22 08:54:52 UTC 2014
Rather then prohibiting hash actions dpif_execute_helper_cb()
execute them by passing them on to aux->dpif->dpif_class->execute()
and save the updated packet metadata afterwards. It is assumed
that if a hash is calculated it will be sored in the dp_hash field
of the metadata.
This is in preparation for allowing execution of recirc actions
in ovs-vswitchd.
Signed-off-by: Simon Horman <horms at verge.net.au>
---
lib/dpif.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/lib/dpif.c b/lib/dpif.c
index 6a67127..026d92f 100644
--- a/lib/dpif.c
+++ b/lib/dpif.c
@@ -1146,12 +1146,14 @@ dpif_execute_helper_cb(void *aux_, struct ofpbuf *packet,
switch ((enum ovs_action_attr)type) {
case OVS_ACTION_ATTR_OUTPUT:
case OVS_ACTION_ATTR_USERSPACE:
+ case OVS_ACTION_ATTR_HASH:
execute.actions = action;
execute.actions_len = NLA_ALIGN(action->nla_len);
execute.packet = packet;
execute.md = *md;
execute.needs_help = false;
aux->error = aux->dpif->dpif_class->execute(aux->dpif, &execute);
+ *md = execute.md;
break;
case OVS_ACTION_ATTR_RECIRC:
@@ -1167,7 +1169,6 @@ dpif_execute_helper_cb(void *aux_, struct ofpbuf *packet,
case OVS_ACTION_ATTR_SET:
case OVS_ACTION_ATTR_SAMPLE:
case OVS_ACTION_ATTR_UNSPEC:
- case OVS_ACTION_ATTR_HASH:
case __OVS_ACTION_ATTR_MAX:
OVS_NOT_REACHED();
}
--
1.8.5.2
More information about the dev
mailing list