X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=lib%2Fnetdev-provider.h;h=080b76a6840b71eb3ee32e3965c0056e901e42cf;hb=e0edde6fee279cdbbf3c179f5f50adaf0c7c7f1e;hp=d5a30c809a01daf3f48d93b01c218e4b03b1aec6;hpb=02e83e83b4c8d88f50317ba56fec53cd6d3fb909;p=sliver-openvswitch.git diff --git a/lib/netdev-provider.h b/lib/netdev-provider.h index d5a30c809..080b76a68 100644 --- a/lib/netdev-provider.h +++ b/lib/netdev-provider.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2009, 2010, 2011 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. @@ -231,7 +231,10 @@ struct netdev_class { /* Sets 'netdev''s Ethernet address to 'mac' */ int (*set_etheraddr)(struct netdev *netdev, const uint8_t mac[6]); - /* Retrieves 'netdev''s Ethernet address into 'mac'. */ + /* Retrieves 'netdev''s Ethernet address into 'mac'. + * + * This address will be advertised as 'netdev''s MAC address through the + * OpenFlow protocol, among other uses. */ int (*get_etheraddr)(const struct netdev *netdev, uint8_t mac[6]); /* Retrieves 'netdev''s MTU into '*mtup'. @@ -308,20 +311,23 @@ struct netdev_class { /* Stores the features supported by 'netdev' into each of '*current', * '*advertised', '*supported', and '*peer'. Each value is a bitmap of - * "enum ofp_port_features" bits, in host byte order. + * NETDEV_F_* bits. * * This function may be set to null if it would always return EOPNOTSUPP. */ int (*get_features)(const struct netdev *netdev, - uint32_t *current, uint32_t *advertised, - uint32_t *supported, uint32_t *peer); + enum netdev_features *current, + enum netdev_features *advertised, + enum netdev_features *supported, + enum netdev_features *peer); /* Set the features advertised by 'netdev' to 'advertise', which is a - * bitmap of "enum ofp_port_features" bits, in host byte order. + * set of NETDEV_F_* bits. * * This function may be set to null for a network device that does not * support configuring advertisements. */ - int (*set_advertisements)(struct netdev *netdev, uint32_t advertise); + int (*set_advertisements)(struct netdev *netdev, + enum netdev_features advertise); /* Attempts to set input rate limiting (policing) policy, such that up to * 'kbits_rate' kbps of traffic is accepted, with a maximum accumulative @@ -461,7 +467,12 @@ struct netdev_class { * of iteration is unspecified, but (when successful) each queue is visited * exactly once. * - * 'cb' will not modify or free the 'details' argument passed in. */ + * 'cb' will not modify or free the 'details' argument passed in. It may + * delete or modify the queue passed in as its 'queue_id' argument. It may + * modify but will not delete any other queue within 'netdev'. If 'cb' + * adds new queues, then ->dump_queues is allowed to visit some queues + * twice or not at all. + */ int (*dump_queues)(const struct netdev *netdev, void (*cb)(unsigned int queue_id, const struct shash *details, @@ -532,10 +543,10 @@ struct netdev_class { int (*get_next_hop)(const struct in_addr *host, struct in_addr *next_hop, char **netdev_name); - /* Retrieves the status of the device. + /* Retrieves driver information of the device. * * Populates 'sh' with key-value pairs representing the status of the - * device. A device's status is a set of key-value string pairs + * device. Driver info is a set of key-value string pairs * representing netdev type specific information. For more information see * ovs-vswitchd.conf.db(5). * @@ -544,7 +555,7 @@ struct netdev_class { * * This function may be set to null if it would always return EOPNOTSUPP * anyhow. */ - int (*get_status)(const struct netdev *netdev, struct shash *sh); + int (*get_drv_info)(const struct netdev *netdev, struct shash *sh); /* Looks up the ARP table entry for 'ip' on 'netdev' and stores the * corresponding MAC address in 'mac'. A return value of ENXIO, in