X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=lib%2Fdpif-provider.h;h=f41ab6b9b3a20939d47c1cdf47fdacd03ead71e5;hb=1e827902be9194d71ea851c9ce2676f65eeed33a;hp=f279934b613f8e33eaef28ba490855220e682818;hpb=da546e076495672ab67106bb6dbb42447c1a2d26;p=sliver-openvswitch.git diff --git a/lib/dpif-provider.h b/lib/dpif-provider.h index f279934b6..f41ab6b9b 100644 --- a/lib/dpif-provider.h +++ b/lib/dpif-provider.h @@ -144,10 +144,6 @@ struct dpif_class { int (*port_query_by_name)(const struct dpif *dpif, const char *devname, struct dpif_port *port); - /* Returns one greater than the largest port number accepted in flow - * actions. */ - uint32_t (*get_max_ports)(const struct dpif *dpif); - /* Returns the Netlink PID value to supply in OVS_ACTION_ATTR_USERSPACE * actions as the OVS_USERSPACE_ATTR_PID attribute's value, for use in * flows whose packets arrived on port 'port_no'. @@ -311,12 +307,10 @@ struct dpif_class { int (*flow_dump_done)(const struct dpif *dpif, void *state); /* Performs the 'execute->actions_len' bytes of actions in - * 'execute->actions' on the Ethernet frame specified in 'execute->packet' - * taken from the flow specified in the 'execute->key_len' bytes of - * 'execute->key'. ('execute->key' is mostly redundant with - * 'execute->packet', but it contains some metadata that cannot be - * recovered from 'execute->packet', such as tunnel and in_port.) */ - int (*execute)(struct dpif *dpif, const struct dpif_execute *execute); + * 'execute->actions' on the Ethernet frame in 'execute->packet' + * and on the packet metadata in 'execute->md'. + * May modify both packet and metadata. */ + int (*execute)(struct dpif *dpif, struct dpif_execute *execute); /* Executes each of the 'n_ops' operations in 'ops' on 'dpif', in the order * in which they are specified, placing each operation's results in the @@ -349,7 +343,9 @@ struct dpif_class { * The caller owns the data of 'upcall->packet' and may modify it. If * packet's headroom is exhausted as it is manipulated, 'upcall->packet' * will be reallocated. This requires the data of 'upcall->packet' to be - * released with ofpbuf_uninit() before 'upcall' is destroyed. + * released with ofpbuf_uninit() before 'upcall' is destroyed. However, + * when an error is returned, the 'upcall->packet' may be uninitialized + * and should not be released. * * This function must not block. If no upcall is pending when it is * called, it should return EAGAIN without blocking. */ @@ -367,6 +363,7 @@ struct dpif_class { extern const struct dpif_class dpif_linux_class; extern const struct dpif_class dpif_netdev_class; +extern const struct dpif_class dpif_planetlab_class; #ifdef __cplusplus }