From: Giuseppe Lettieri Date: Wed, 20 Nov 2013 13:44:38 +0000 (+0100) Subject: Merge remote-tracking branch 'ovs-dev/master' X-Git-Tag: sliver-openvswitch-2.0.90-1~5 X-Git-Url: http://git.onelab.eu/?p=sliver-openvswitch.git;a=commitdiff_plain;h=99ab7312c17cd4ab603eb6194c50b9f1ef3ca1c9 Merge remote-tracking branch 'ovs-dev/master' --- 99ab7312c17cd4ab603eb6194c50b9f1ef3ca1c9 diff --cc lib/dpif-netdev.c index 5195d18da,911cb5dc1..11f010c84 --- a/lib/dpif-netdev.c +++ b/lib/dpif-netdev.c @@@ -1318,58 -1396,52 +1404,60 @@@ dp_netdev_action_userspace(void *aux_, } static void - dp_netdev_execute_actions(struct dp_netdev *dp, - struct ofpbuf *packet, struct flow *key, - const struct nlattr *actions, - size_t actions_len) + dp_netdev_execute_actions(struct dp_netdev *dp, const struct flow *key, + struct ofpbuf *packet, + const struct nlattr *actions, size_t actions_len) { - odp_execute_actions(dp, packet, key, actions, actions_len, - dp_netdev_output_port, dp_netdev_action_userspace); + struct dp_netdev_execute_aux aux = {dp, key}; + struct flow md = *key; /* Packet metadata, may be modified by actions. */ + + odp_execute_actions(&aux, packet, &md, actions, actions_len, + dp_netdev_action_output, dp_netdev_action_userspace); } +#define DPIF_NETDEV_CLASS_FUNCTIONS \ + dpif_netdev_enumerate, \ + dpif_netdev_port_open_type, \ + dpif_netdev_open, \ + dpif_netdev_close, \ + dpif_netdev_destroy, \ + dpif_netdev_run, \ + dpif_netdev_wait, \ + dpif_netdev_get_stats, \ + dpif_netdev_port_add, \ + dpif_netdev_port_del, \ + dpif_netdev_port_query_by_number, \ + dpif_netdev_port_query_by_name, \ + dpif_netdev_get_max_ports, \ + NULL, /* port_get_pid */ \ + dpif_netdev_port_dump_start, \ + dpif_netdev_port_dump_next, \ + dpif_netdev_port_dump_done, \ + dpif_netdev_port_poll, \ + dpif_netdev_port_poll_wait, \ + dpif_netdev_flow_get, \ + dpif_netdev_flow_put, \ + dpif_netdev_flow_del, \ + dpif_netdev_flow_flush, \ + dpif_netdev_flow_dump_start, \ + dpif_netdev_flow_dump_next, \ + dpif_netdev_flow_dump_done, \ + dpif_netdev_execute, \ + NULL, /* operate */ \ + dpif_netdev_recv_set, \ + dpif_netdev_queue_to_priority, \ + dpif_netdev_recv, \ + dpif_netdev_recv_wait, \ + dpif_netdev_recv_purge, \ + const struct dpif_class dpif_netdev_class = { "netdev", - dpif_netdev_enumerate, - dpif_netdev_port_open_type, - dpif_netdev_open, - dpif_netdev_close, - dpif_netdev_destroy, - dpif_netdev_run, - dpif_netdev_wait, - dpif_netdev_get_stats, - dpif_netdev_port_add, - dpif_netdev_port_del, - dpif_netdev_port_query_by_number, - dpif_netdev_port_query_by_name, - dpif_netdev_get_max_ports, - NULL, /* port_get_pid */ - dpif_netdev_port_dump_start, - dpif_netdev_port_dump_next, - dpif_netdev_port_dump_done, - dpif_netdev_port_poll, - dpif_netdev_port_poll_wait, - dpif_netdev_flow_get, - dpif_netdev_flow_put, - dpif_netdev_flow_del, - dpif_netdev_flow_flush, - dpif_netdev_flow_dump_start, - dpif_netdev_flow_dump_next, - dpif_netdev_flow_dump_done, - dpif_netdev_execute, - NULL, /* operate */ - dpif_netdev_recv_set, - dpif_netdev_queue_to_priority, - dpif_netdev_recv, - dpif_netdev_recv_wait, - dpif_netdev_recv_purge, + DPIF_NETDEV_CLASS_FUNCTIONS +}; + +const struct dpif_class dpif_planetlab_class = { + "planetlab", + DPIF_NETDEV_CLASS_FUNCTIONS }; static void