X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=lib%2Fnetdev-provider.h;h=d5a30c809a01daf3f48d93b01c218e4b03b1aec6;hb=efb80167f7ebf51456df2940e3b42376ecbceb61;hp=22b00f72866cf00a6198271bf0b295d376a95b51;hpb=14622f22abd93ca464c9be1b6b58d6f0fb2bb186;p=openvswitch diff --git a/lib/netdev-provider.h b/lib/netdev-provider.h index 22b00f72..d5a30c80 100644 --- a/lib/netdev-provider.h +++ b/lib/netdev-provider.h @@ -144,16 +144,6 @@ struct netdev_class { /* Closes 'netdev'. */ void (*close)(struct netdev *netdev); - - /* Enumerates the names of all network devices of this class. - * - * The caller has already initialized 'all_names' and might already have - * added some names to it. This function should not disturb any existing - * names in 'all_names'. - * - * If this netdev class does not support enumeration, this may be a null - * pointer. */ - int (*enumerate)(struct sset *all_names); /* ## ----------------- ## */ /* ## Receiving Packets ## */ @@ -182,6 +172,9 @@ struct netdev_class { * packet, otherwise a negative errno value. Returns -EAGAIN immediately * if no packet is ready to be received. * + * Returns -EMSGSIZE, and discards the packet, if the received packet is + * longer than 'size' bytes. + * * This function can only be expected to return a packet if ->listen() has * been called successfully. * @@ -280,6 +273,12 @@ struct netdev_class { */ int (*get_carrier)(const struct netdev *netdev, bool *carrier); + /* Returns the number of times 'netdev''s carrier has changed since being + * initialized. + * + * If null, callers will assume the number of carrier resets is zero. */ + long long int (*get_carrier_resets)(const struct netdev *netdev); + /* Forces ->get_carrier() to poll 'netdev''s MII registers for link status * instead of checking 'netdev''s carrier. 'netdev''s MII registers will * be polled once ever 'interval' milliseconds. If 'netdev' does not @@ -324,17 +323,6 @@ struct netdev_class { * support configuring advertisements. */ int (*set_advertisements)(struct netdev *netdev, uint32_t advertise); - /* If 'netdev' is a VLAN network device (e.g. one created with vconfig(8)), - * sets '*vlan_vid' to the VLAN VID associated with that device and returns - * 0. - * - * Returns ENOENT if 'netdev' is a network device that is not a - * VLAN device. - * - * This function should be set to null if it doesn't make any sense for - * your network device (it probably doesn't). */ - int (*get_vlan_vid)(const struct netdev *netdev, int *vlan_vid); - /* Attempts to set input rate limiting (policing) policy, such that up to * 'kbits_rate' kbps of traffic is accepted, with a maximum accumulative * burst size of 'kbits' kb.