projects
/
openvswitch
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
xenserver: Don't delete pidfile when stopping monitor-external-ids
[openvswitch]
/
lib
/
netdev.c
diff --git
a/lib/netdev.c
b/lib/netdev.c
index dc27fd749e2324a0786b6b20128ba9bfda7cc65d..24c2a88fa3f38aaeb6e75db9991cfc13c58a0aa3 100644
(file)
--- a/
lib/netdev.c
+++ b/
lib/netdev.c
@@
-37,16
+37,17
@@
#include "poll-loop.h"
#include "shash.h"
#include "svec.h"
#include "poll-loop.h"
#include "shash.h"
#include "svec.h"
-
-#define THIS_MODULE VLM_netdev
#include "vlog.h"
#include "vlog.h"
+VLOG_DEFINE_THIS_MODULE(netdev)
+
static const struct netdev_class *base_netdev_classes[] = {
#ifdef HAVE_NETLINK
&netdev_linux_class,
&netdev_tap_class,
&netdev_patch_class,
&netdev_gre_class,
static const struct netdev_class *base_netdev_classes[] = {
#ifdef HAVE_NETLINK
&netdev_linux_class,
&netdev_tap_class,
&netdev_patch_class,
&netdev_gre_class,
+ &netdev_capwap_class,
#endif
};
#endif
};
@@
-207,7
+208,7
@@
compare_device_args(const struct netdev_dev *dev, const struct shash *args)
new_args = shash_sort(args);
for (i = 0; i < dev->n_args; i++) {
new_args = shash_sort(args);
for (i = 0; i < dev->n_args; i++) {
- if (strcmp(dev->args[i].key, new_args[i]->name) ||
+ if (strcmp(dev->args[i].key, new_args[i]->name) ||
strcmp(dev->args[i].value, new_args[i]->data)) {
result = false;
goto finish;
strcmp(dev->args[i].value, new_args[i]->data)) {
result = false;
goto finish;
@@
-272,8
+273,6
@@
create_device(struct netdev_options *options, struct netdev_dev **netdev_devp)
netdev_class = shash_find_data(&netdev_classes, options->type);
if (!netdev_class) {
netdev_class = shash_find_data(&netdev_classes, options->type);
if (!netdev_class) {
- VLOG_WARN("could not create netdev %s of unknown type %s",
- options->name, options->type);
return EAFNOSUPPORT;
}
return EAFNOSUPPORT;
}
@@
-312,6
+311,10
@@
netdev_open(struct netdev_options *options, struct netdev **netdevp)
if (!netdev_dev) {
error = create_device(options, &netdev_dev);
if (error) {
if (!netdev_dev) {
error = create_device(options, &netdev_dev);
if (error) {
+ if (error == EAFNOSUPPORT) {
+ VLOG_WARN("could not create netdev %s of unknown type %s",
+ options->name, options->type);
+ }
return error;
}
update_device_args(netdev_dev, options->args);
return error;
}
update_device_args(netdev_dev, options->args);
@@
-324,7
+327,7
@@
netdev_open(struct netdev_options *options, struct netdev **netdevp)
return EINVAL;
}
return EINVAL;
}
- error = netdev_dev->netdev_class->open(netdev_dev, options->ethertype,
+ error = netdev_dev->netdev_class->open(netdev_dev, options->ethertype,
netdevp);
if (!error) {
netdevp);
if (!error) {
@@
-726,7
+729,7
@@
netdev_get_in4(const struct netdev *netdev,
int error;
error = (netdev_get_dev(netdev)->netdev_class->get_in4
int error;
error = (netdev_get_dev(netdev)->netdev_class->get_in4
- ? netdev_get_dev(netdev)->netdev_class->get_in4(netdev,
+ ? netdev_get_dev(netdev)->netdev_class->get_in4(netdev,
&address, &netmask)
: EOPNOTSUPP);
if (address_) {
&address, &netmask)
: EOPNOTSUPP);
if (address_) {
@@
-801,7
+804,7
@@
netdev_get_in6(const struct netdev *netdev, struct in6_addr *in6)
int error;
error = (netdev_get_dev(netdev)->netdev_class->get_in6
int error;
error = (netdev_get_dev(netdev)->netdev_class->get_in6
- ? netdev_get_dev(netdev)->netdev_class->get_in6(netdev,
+ ? netdev_get_dev(netdev)->netdev_class->get_in6(netdev,
in6 ? in6 : &dummy)
: EOPNOTSUPP);
if (error && in6) {
in6 ? in6 : &dummy)
: EOPNOTSUPP);
if (error && in6) {
@@
-822,7
+825,7
@@
do_update_flags(struct netdev *netdev, enum netdev_flags off,
enum netdev_flags old_flags;
int error;
enum netdev_flags old_flags;
int error;
- error = netdev_get_dev(netdev)->netdev_class->update_flags(netdev,
+ error = netdev_get_dev(netdev)->netdev_class->update_flags(netdev,
off & ~on, on, &old_flags);
if (error) {
VLOG_WARN_RL(&rl, "failed to %s flags for network device %s: %s",
off & ~on, on, &old_flags);
if (error) {
VLOG_WARN_RL(&rl, "failed to %s flags for network device %s: %s",
@@
-897,7
+900,7
@@
netdev_arp_lookup(const struct netdev *netdev,
uint32_t ip, uint8_t mac[ETH_ADDR_LEN])
{
int error = (netdev_get_dev(netdev)->netdev_class->arp_lookup
uint32_t ip, uint8_t mac[ETH_ADDR_LEN])
{
int error = (netdev_get_dev(netdev)->netdev_class->arp_lookup
- ? netdev_get_dev(netdev)->netdev_class->arp_lookup(netdev,
+ ? netdev_get_dev(netdev)->netdev_class->arp_lookup(netdev,
ip, mac)
: EOPNOTSUPP);
if (error) {
ip, mac)
: EOPNOTSUPP);
if (error) {
@@
-912,7
+915,7
@@
int
netdev_get_carrier(const struct netdev *netdev, bool *carrier)
{
int error = (netdev_get_dev(netdev)->netdev_class->get_carrier
netdev_get_carrier(const struct netdev *netdev, bool *carrier)
{
int error = (netdev_get_dev(netdev)->netdev_class->get_carrier
- ? netdev_get_dev(netdev)->netdev_class->get_carrier(netdev,
+ ? netdev_get_dev(netdev)->netdev_class->get_carrier(netdev,
carrier)
: EOPNOTSUPP);
if (error) {
carrier)
: EOPNOTSUPP);
if (error) {
@@
-958,7
+961,7
@@
netdev_set_policing(struct netdev *netdev, uint32_t kbits_rate,
uint32_t kbits_burst)
{
return (netdev_get_dev(netdev)->netdev_class->set_policing
uint32_t kbits_burst)
{
return (netdev_get_dev(netdev)->netdev_class->set_policing
- ? netdev_get_dev(netdev)->netdev_class->set_policing(netdev,
+ ? netdev_get_dev(netdev)->netdev_class->set_policing(netdev,
kbits_rate, kbits_burst)
: EOPNOTSUPP);
}
kbits_rate, kbits_burst)
: EOPNOTSUPP);
}
@@
-1251,7
+1254,7
@@
int
netdev_get_vlan_vid(const struct netdev *netdev, int *vlan_vid)
{
int error = (netdev_get_dev(netdev)->netdev_class->get_vlan_vid
netdev_get_vlan_vid(const struct netdev *netdev, int *vlan_vid)
{
int error = (netdev_get_dev(netdev)->netdev_class->get_vlan_vid
- ? netdev_get_dev(netdev)->netdev_class->get_vlan_vid(netdev,
+ ? netdev_get_dev(netdev)->netdev_class->get_vlan_vid(netdev,
vlan_vid)
: ENOENT);
if (error) {
vlan_vid)
: ENOENT);
if (error) {
@@
-1416,7
+1419,7
@@
netdev_uninit(struct netdev *netdev, bool close)
}
}
-/* Returns the class type of 'netdev'.
+/* Returns the class type of 'netdev'.
*
* The caller must not free the returned value. */
const char *
*
* The caller must not free the returned value. */
const char *
@@
-1483,9
+1486,7
@@
netdev_monitor_cb(struct netdev_notifier *notifier)
{
struct netdev_monitor *monitor = notifier->aux;
const char *name = netdev_get_name(notifier->netdev);
{
struct netdev_monitor *monitor = notifier->aux;
const char *name = netdev_get_name(notifier->netdev);
- if (!shash_find(&monitor->changed_netdevs, name)) {
- shash_add(&monitor->changed_netdevs, name, NULL);
- }
+ shash_add_once(&monitor->changed_netdevs, name, NULL);
}
/* Attempts to add 'netdev' as a netdev monitored by 'monitor'. Returns 0 if
}
/* Attempts to add 'netdev' as a netdev monitored by 'monitor'. Returns 0 if