#include <unistd.h>
#include "dpif-provider.h"
-#include "netdev-linux.h"
#include "ofpbuf.h"
#include "poll-loop.h"
+#include "rtnetlink.h"
#include "svec.h"
#include "util.h"
/* Change notification. */
int local_ifindex; /* Ifindex of local port. */
struct svec changed_ports; /* Ports that have changed. */
- struct linux_netdev_notifier port_notifier;
+ struct rtnetlink_notifier port_notifier;
bool change_error;
};
static int create_minor(const char *name, int minor, struct dpif **dpifp);
static int open_minor(int minor, struct dpif **dpifp);
static int make_openvswitch_device(int minor, char **fnp);
-static void dpif_linux_port_changed(const struct linux_netdev_change *,
+static void dpif_linux_port_changed(const struct rtnetlink_change *,
void *dpif);
static struct dpif_linux *
{
int minor;
- minor = !strncmp(name, "dp", 2) && isdigit(name[2]) ? atoi(name + 2) : -1;
+ minor = !strncmp(name, "dp", 2)
+ && isdigit((unsigned char)name[2]) ? atoi(name + 2) : -1;
if (create) {
if (minor >= 0) {
return create_minor(suffix, minor, dpifp);
dpif_linux_close(struct dpif *dpif_)
{
struct dpif_linux *dpif = dpif_linux_cast(dpif_);
- linux_netdev_notifier_unregister(&dpif->port_notifier);
+ rtnetlink_notifier_unregister(&dpif->port_notifier);
svec_destroy(&dpif->changed_ports);
free(dpif->local_ifname);
close(dpif->fd);
if (dpif->changed_ports.n || dpif->change_error) {
poll_immediate_wake();
} else {
- linux_netdev_notifier_wait();
+ rtnetlink_notifier_wait();
}
}
fd = open(fn, O_RDONLY | O_NONBLOCK);
if (fd >= 0) {
struct dpif_linux *dpif = xmalloc(sizeof *dpif);
- error = linux_netdev_notifier_register(&dpif->port_notifier,
- dpif_linux_port_changed, dpif);
+ error = rtnetlink_notifier_register(&dpif->port_notifier,
+ dpif_linux_port_changed, dpif);
if (!error) {
char *name;
}
static void
-dpif_linux_port_changed(const struct linux_netdev_change *change, void *dpif_)
+dpif_linux_port_changed(const struct rtnetlink_change *change, void *dpif_)
{
struct dpif_linux *dpif = dpif_;