X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=lib%2Fdpif-linux.h;h=f942a8cc03222269ef9186f724c5ec62e6bcfab2;hb=520e9a2acdcf6136bf0a20586df6351ecf72dd3e;hp=1dff4b76ccf4334e7b3a5ca036378dec7eef8fe7;hpb=9fe3b9a2eeace9689def807e78e35c79e4b1814b;p=openvswitch diff --git a/lib/dpif-linux.h b/lib/dpif-linux.h index 1dff4b76..f942a8cc 100644 --- a/lib/dpif-linux.h +++ b/lib/dpif-linux.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010 Nicira Networks. + * Copyright (c) 2010, 2011 Nicira Networks. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -18,7 +18,42 @@ #define DPIF_LINUX_H 1 #include +#include +#include "openvswitch/datapath-protocol.h" + +struct ofpbuf; + +struct dpif_linux_vport { + /* Generic Netlink header. */ + uint8_t cmd; + + /* odp_vport header. */ + int dp_ifindex; + uint32_t port_no; /* UINT32_MAX if unknown. */ + enum odp_vport_type type; + + /* Attributes. */ + const char *name; /* ODP_VPORT_ATTR_NAME. */ + const struct rtnl_link_stats64 *stats; /* ODP_VPORT_ATTR_STATS. */ + const uint8_t *address; /* ODP_VPORT_ATTR_ADDRESS. */ + int mtu; /* ODP_VPORT_ATTR_MTU. */ + const struct nlattr *options; /* ODP_VPORT_ATTR_OPTIONS. */ + size_t options_len; + int ifindex; /* ODP_VPORT_ATTR_IFINDEX. */ + int iflink; /* ODP_VPORT_ATTR_IFLINK. */ +}; + +void dpif_linux_vport_init(struct dpif_linux_vport *); + +int dpif_linux_vport_transact(const struct dpif_linux_vport *request, + struct dpif_linux_vport *reply, + struct ofpbuf **bufp); +int dpif_linux_vport_get(const char *name, struct dpif_linux_vport *reply, + struct ofpbuf **bufp); bool dpif_linux_is_internal_device(const char *name); +int dpif_linux_vport_send(int dp_ifindex, uint32_t port_no, + const void *data, size_t size); + #endif /* dpif-linux.h */