-void netdev_vport_register(void);
-int netdev_vport_get_stats(const struct netdev *, struct netdev_stats *);
-int netdev_vport_set_stats(struct netdev *, const struct netdev_stats *);
+void netdev_vport_tunnel_register(void);
+void netdev_vport_patch_register(void);
+
+bool netdev_vport_is_patch(const struct netdev *);
+bool netdev_vport_is_layer3(const struct netdev *);
+
+char *netdev_vport_patch_peer(const struct netdev *netdev);
+
+void netdev_vport_inc_rx(const struct netdev *,
+ const struct dpif_flow_stats *);
+void netdev_vport_inc_tx(const struct netdev *,
+ const struct dpif_flow_stats *);
+
+bool netdev_vport_is_vport_class(const struct netdev_class *);
+const char *netdev_vport_class_get_dpif_port(const struct netdev_class *);
+
+#ifndef _WIN32
+enum { NETDEV_VPORT_NAME_BUFSIZE = 16 };
+#else
+enum { NETDEV_VPORT_NAME_BUFSIZE = 256 };
+#endif
+const char *netdev_vport_get_dpif_port(const struct netdev *,
+ char namebuf[], size_t bufsize);
+char *netdev_vport_get_dpif_port_strdup(const struct netdev *);