summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/netdev-provider.h3
-rw-r--r--lib/netdev.c16
-rw-r--r--lib/netdev.h2
3 files changed, 20 insertions, 1 deletions
diff --git a/lib/netdev-provider.h b/lib/netdev-provider.h
index d9503adb0..73dce2fca 100644
--- a/lib/netdev-provider.h
+++ b/lib/netdev-provider.h
@@ -96,7 +96,8 @@ struct netdev {
/* Functions to control flow offloading. */
OVSRCU_TYPE(const struct netdev_flow_api *) flow_api;
- struct netdev_hw_info hw_info; /* offload-capable netdev info */
+ const char *dpif_type; /* Type of dpif this netdev belongs to. */
+ struct netdev_hw_info hw_info; /* Offload-capable netdev info. */
};
static inline void
diff --git a/lib/netdev.c b/lib/netdev.c
index 90962eec6..91e91955c 100644
--- a/lib/netdev.c
+++ b/lib/netdev.c
@@ -1984,6 +1984,22 @@ netdev_get_class(const struct netdev *netdev)
return netdev->netdev_class;
}
+/* Set the type of 'dpif' this 'netdev' belongs to. */
+void
+netdev_set_dpif_type(struct netdev *netdev, const char *type)
+{
+ netdev->dpif_type = type;
+}
+
+/* Returns the type of 'dpif' this 'netdev' belongs to.
+ *
+ * The caller must not free the returned value. */
+const char *
+netdev_get_dpif_type(const struct netdev *netdev)
+{
+ return netdev->dpif_type;
+}
+
/* Returns the netdev with 'name' or NULL if there is none.
*
* The caller must free the returned netdev with netdev_close(). */
diff --git a/lib/netdev.h b/lib/netdev.h
index fdbe0e1f5..fb5073056 100644
--- a/lib/netdev.h
+++ b/lib/netdev.h
@@ -179,6 +179,8 @@ bool netdev_mtu_is_user_config(struct netdev *);
int netdev_get_ifindex(const struct netdev *);
int netdev_set_tx_multiq(struct netdev *, unsigned int n_txq);
enum netdev_pt_mode netdev_get_pt_mode(const struct netdev *);
+void netdev_set_dpif_type(struct netdev *, const char *);
+const char *netdev_get_dpif_type(const struct netdev *);
/* Packet reception. */
int netdev_rxq_open(struct netdev *, struct netdev_rxq **, int id);