X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;ds=sidebyside;f=lib%2Fodp-execute.h;h=670e8ea5179c1eac0b1fb0bd7c91bf3842b0b3ea;hb=c0621c394f09882b7d210102d0389c60b353d630;hp=90a6788ce16aaafa56da5f9a1b8fc817aa4ea3f9;hpb=da546e076495672ab67106bb6dbb42447c1a2d26;p=sliver-openvswitch.git diff --git a/lib/odp-execute.h b/lib/odp-execute.h index 90a6788ce..670e8ea51 100644 --- a/lib/odp-execute.h +++ b/lib/odp-execute.h @@ -23,18 +23,20 @@ #include #include "openvswitch/types.h" -struct flow; struct nlattr; struct ofpbuf; +struct pkt_metadata; -typedef void (*odp_output_cb)(void *dp, struct ofpbuf *packet, - const struct flow *key, odp_port_t out_port); -typedef void (*odp_userspace_cb)(void *dp, struct ofpbuf *packet, - const struct flow *key, - const struct nlattr *action, bool may_steal); +typedef void (*odp_execute_cb)(void *dp, struct ofpbuf *packet, + const struct pkt_metadata *, + const struct nlattr *action, bool may_steal); +/* Actions that need to be executed in the context of a datapath are handed + * to 'dp_execute_action', if non-NULL. Currently this is called only for + * actions OVS_ACTION_ATTR_OUTPUT and OVS_ACTION_ATTR_USERSPACE so + * 'dp_execute_action' needs to handle only these. */ void -odp_execute_actions(void *dp, struct ofpbuf *packet, struct flow *key, +odp_execute_actions(void *dp, struct ofpbuf *packet, struct pkt_metadata *, const struct nlattr *actions, size_t actions_len, - odp_output_cb output, odp_userspace_cb userspace); + odp_execute_cb dp_execute_action); #endif