X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=lib%2Fdpif-provider.h;h=f264e1b85c9a7382a9518eb67021dad453e1c41f;hb=1e3f34c7693bcabae8e443ac1b246680ef9b60e2;hp=e069e1e92fc57f129573858e6aec8b4760156f35;hpb=ffa2665decbf47eb2a1ce642944144061454940c;p=sliver-openvswitch.git diff --git a/lib/dpif-provider.h b/lib/dpif-provider.h index e069e1e92..f264e1b85 100644 --- a/lib/dpif-provider.h +++ b/lib/dpif-provider.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2009, 2010, 2011, 2012 Nicira Networks. + * Copyright (c) 2009, 2010, 2011, 2012 Nicira, Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -110,8 +110,12 @@ struct dpif_class { /* Retrieves statistics for 'dpif' into 'stats'. */ int (*get_stats)(const struct dpif *dpif, struct dpif_dp_stats *stats); - /* Adds 'netdev' as a new port in 'dpif'. If successful, sets '*port_no' - * to the new port's port number. */ + /* Adds 'netdev' as a new port in 'dpif'. If '*port_no' is not + * UINT16_MAX, attempts to use that as the port's port number. + * + * If port is successfully added, sets '*port_no' to the new port's + * port number. Returns EBUSY if caller attempted to choose a port + * number, and it was in use. */ int (*port_add)(struct dpif *dpif, struct netdev *netdev, uint16_t *port_no); @@ -136,6 +140,10 @@ struct dpif_class { * actions as the OVS_USERSPACE_ATTR_PID attribute's value, for use in * flows whose packets arrived on port 'port_no'. * + * A 'port_no' of UINT16_MAX should be treated as a special case. The + * implementation should return a reserved PID, not allocated to any port, + * that the client may use for special purposes. + * * The return value only needs to be meaningful when DPIF_UC_ACTION has * been enabled in the 'dpif''s listen mask, and it is allowed to change * when DPIF_UC_ACTION is disabled and then re-enabled.