diff options
author | Alin Gabriel Serdean <aserdean@cloudbasesolutions.com> | 2014-09-18 04:17:54 -0700 |
---|---|---|
committer | Ben Pfaff <blp@nicira.com> | 2014-09-18 14:59:59 -0700 |
commit | 93451a0a81b40c480115abd8739c1582e6b49a9c (patch) | |
tree | 1f792e0f5998942986f0a450b5680b586b546a27 /lib/dpif-netlink.h | |
parent | 1a9bb326d8411ec97adc0f34020efca09caf14c4 (diff) | |
download | openvswitch-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.h | 61 |
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 */ |