summaryrefslogtreecommitdiff
path: root/lib/dpif-netlink.h
diff options
context:
space:
mode:
authorAlin Gabriel Serdean <aserdean@cloudbasesolutions.com>2014-09-18 04:17:54 -0700
committerBen Pfaff <blp@nicira.com>2014-09-18 14:59:59 -0700
commit93451a0a81b40c480115abd8739c1582e6b49a9c (patch)
tree1f792e0f5998942986f0a450b5680b586b546a27 /lib/dpif-netlink.h
parent1a9bb326d8411ec97adc0f34020efca09caf14c4 (diff)
downloadopenvswitch-93451a0a81b40c480115abd8739c1582e6b49a9c.tar.gz
dpif-linux: Rename dpif-netlink; change to compile with MSVC.
The patch contains the necessary modifications to compile and also to run under MSVC. Added the files to the build system and also changed dpif_linux to be under a more generic name dpif_windows. Added a TODO under the windows part in case we want to implement another counterpart for epoll functions. Signed-off-by: Alin Gabriel Serdean <aserdean@cloudbasesolutions.com> Signed-off-by: Ben Pfaff <blp@nicira.com>
Diffstat (limited to 'lib/dpif-netlink.h')
-rw-r--r--lib/dpif-netlink.h61
1 files changed, 61 insertions, 0 deletions
diff --git a/lib/dpif-netlink.h b/lib/dpif-netlink.h
new file mode 100644
index 000000000..6d1505713
--- /dev/null
+++ b/lib/dpif-netlink.h
@@ -0,0 +1,61 @@
+/*
+ * Copyright (c) 2010, 2011, 2014 Nicira, Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at:
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef DPIF_NETLINK_H
+#define DPIF_NETLINK_H 1
+
+#include <stdbool.h>
+#include <stddef.h>
+#include <stdint.h>
+#include "odp-netlink.h"
+
+#include "flow.h"
+
+struct ofpbuf;
+
+struct dpif_netlink_vport {
+ /* Generic Netlink header. */
+ uint8_t cmd;
+
+ /* ovs_vport header. */
+ int dp_ifindex;
+ odp_port_t port_no; /* ODPP_NONE if unknown. */
+ enum ovs_vport_type type;
+
+ /* Attributes.
+ *
+ * The 'stats' member points to 64-bit data that might only be aligned on
+ * 32-bit boundaries, so use get_unaligned_u64() to access its values.
+ */
+ const char *name; /* OVS_VPORT_ATTR_NAME. */
+ uint32_t n_upcall_pids;
+ const uint32_t *upcall_pids; /* OVS_VPORT_ATTR_UPCALL_PID. */
+ const struct ovs_vport_stats *stats; /* OVS_VPORT_ATTR_STATS. */
+ const struct nlattr *options; /* OVS_VPORT_ATTR_OPTIONS. */
+ size_t options_len;
+};
+
+void dpif_netlink_vport_init(struct dpif_netlink_vport *);
+
+int dpif_netlink_vport_transact(const struct dpif_netlink_vport *request,
+ struct dpif_netlink_vport *reply,
+ struct ofpbuf **bufp);
+int dpif_netlink_vport_get(const char *name, struct dpif_netlink_vport *reply,
+ struct ofpbuf **bufp);
+
+bool dpif_netlink_is_internal_device(const char *name);
+
+#endif /* dpif-netlink.h */