mirror of
https://github.com/openvswitch/ovs
synced 2025-09-01 23:05:29 +00:00
Remove stream, vconn, and rconn functions to get local/remote IPs/ports.
These functions don't have any ultimate users. The in-band control code used to use them, but not anymore, so we might as well delete them all. Signed-off-by: Ben Pfaff <blp@nicira.com> Acked-by: Ethan Jackson <ethan@nicira.com>
This commit is contained in:
57
lib/rconn.c
57
lib/rconn.c
@@ -115,17 +115,6 @@ struct rconn {
|
|||||||
int probe_interval; /* Secs of inactivity before sending probe. */
|
int probe_interval; /* Secs of inactivity before sending probe. */
|
||||||
time_t last_activity; /* Last time we saw some activity. */
|
time_t last_activity; /* Last time we saw some activity. */
|
||||||
|
|
||||||
/* When we create a vconn we obtain these values, to save them past the end
|
|
||||||
* of the vconn's lifetime. Otherwise, in-band control will only allow
|
|
||||||
* traffic when a vconn is actually open, but it is nice to allow ARP to
|
|
||||||
* complete even between connection attempts, and it is also polite to
|
|
||||||
* allow traffic from other switches to go through to the controller
|
|
||||||
* whether or not we are connected.
|
|
||||||
*
|
|
||||||
* We don't cache the local port, because that changes from one connection
|
|
||||||
* attempt to the next. */
|
|
||||||
ovs_be32 local_ip, remote_ip;
|
|
||||||
ovs_be16 remote_port;
|
|
||||||
uint8_t dscp;
|
uint8_t dscp;
|
||||||
|
|
||||||
/* Messages sent or received are copied to the monitor connections. */
|
/* Messages sent or received are copied to the monitor connections. */
|
||||||
@@ -456,9 +445,6 @@ reconnect(struct rconn *rc)
|
|||||||
retval = vconn_open(rc->target, rc->allowed_versions, rc->dscp,
|
retval = vconn_open(rc->target, rc->allowed_versions, rc->dscp,
|
||||||
&rc->vconn);
|
&rc->vconn);
|
||||||
if (!retval) {
|
if (!retval) {
|
||||||
rc->remote_ip = vconn_get_remote_ip(rc->vconn);
|
|
||||||
rc->local_ip = vconn_get_local_ip(rc->vconn);
|
|
||||||
rc->remote_port = vconn_get_remote_port(rc->vconn);
|
|
||||||
rc->backoff_deadline = time_now() + rc->backoff;
|
rc->backoff_deadline = time_now() + rc->backoff;
|
||||||
state_transition(rc, S_CONNECTING);
|
state_transition(rc, S_CONNECTING);
|
||||||
} else {
|
} else {
|
||||||
@@ -911,46 +897,6 @@ rconn_failure_duration(const struct rconn *rconn)
|
|||||||
return duration;
|
return duration;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Returns the IP address of the peer, or 0 if the peer's IP address is not
|
|
||||||
* known. */
|
|
||||||
ovs_be32
|
|
||||||
rconn_get_remote_ip(const struct rconn *rconn)
|
|
||||||
{
|
|
||||||
return rconn->remote_ip;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Returns the transport port of the peer, or 0 if the peer's port is not
|
|
||||||
* known. */
|
|
||||||
ovs_be16
|
|
||||||
rconn_get_remote_port(const struct rconn *rconn)
|
|
||||||
{
|
|
||||||
return rconn->remote_port;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Returns the IP address used to connect to the peer, or 0 if the
|
|
||||||
* connection is not an IP-based protocol or if its IP address is not
|
|
||||||
* known. */
|
|
||||||
ovs_be32
|
|
||||||
rconn_get_local_ip(const struct rconn *rconn)
|
|
||||||
{
|
|
||||||
return rconn->local_ip;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Returns the transport port used to connect to the peer, or 0 if the
|
|
||||||
* connection does not contain a port or if the port is not known. */
|
|
||||||
ovs_be16
|
|
||||||
rconn_get_local_port(const struct rconn *rconn)
|
|
||||||
OVS_EXCLUDED(rconn->mutex)
|
|
||||||
{
|
|
||||||
ovs_be16 port;
|
|
||||||
|
|
||||||
ovs_mutex_lock(&rconn->mutex);
|
|
||||||
port = rconn->vconn ? vconn_get_local_port(rconn->vconn) : 0;
|
|
||||||
ovs_mutex_unlock(&rconn->mutex);
|
|
||||||
|
|
||||||
return port;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int
|
static int
|
||||||
rconn_get_version__(const struct rconn *rconn)
|
rconn_get_version__(const struct rconn *rconn)
|
||||||
OVS_REQUIRES(rconn->mutex)
|
OVS_REQUIRES(rconn->mutex)
|
||||||
@@ -1139,9 +1085,6 @@ rconn_set_target__(struct rconn *rc, const char *target, const char *name)
|
|||||||
rc->name = xstrdup(name ? name : target);
|
rc->name = xstrdup(name ? name : target);
|
||||||
free(rc->target);
|
free(rc->target);
|
||||||
rc->target = xstrdup(target);
|
rc->target = xstrdup(target);
|
||||||
rc->local_ip = 0;
|
|
||||||
rc->remote_ip = 0;
|
|
||||||
rc->remote_port = 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Tries to send a packet from 'rc''s send buffer. Returns 0 if successful,
|
/* Tries to send a packet from 'rc''s send buffer. Returns 0 if successful,
|
||||||
|
@@ -83,10 +83,6 @@ bool rconn_is_connected(const struct rconn *);
|
|||||||
bool rconn_is_admitted(const struct rconn *);
|
bool rconn_is_admitted(const struct rconn *);
|
||||||
int rconn_failure_duration(const struct rconn *);
|
int rconn_failure_duration(const struct rconn *);
|
||||||
|
|
||||||
ovs_be32 rconn_get_remote_ip(const struct rconn *);
|
|
||||||
ovs_be16 rconn_get_remote_port(const struct rconn *);
|
|
||||||
ovs_be32 rconn_get_local_ip(const struct rconn *);
|
|
||||||
ovs_be16 rconn_get_local_port(const struct rconn *);
|
|
||||||
int rconn_get_version(const struct rconn *);
|
int rconn_get_version(const struct rconn *);
|
||||||
|
|
||||||
const char *rconn_get_state(const struct rconn *);
|
const char *rconn_get_state(const struct rconn *);
|
||||||
|
@@ -29,19 +29,11 @@ struct stream {
|
|||||||
const struct stream_class *class;
|
const struct stream_class *class;
|
||||||
int state;
|
int state;
|
||||||
int error;
|
int error;
|
||||||
ovs_be32 remote_ip;
|
|
||||||
ovs_be16 remote_port;
|
|
||||||
ovs_be32 local_ip;
|
|
||||||
ovs_be16 local_port;
|
|
||||||
char *name;
|
char *name;
|
||||||
};
|
};
|
||||||
|
|
||||||
void stream_init(struct stream *, const struct stream_class *,
|
void stream_init(struct stream *, const struct stream_class *,
|
||||||
int connect_status, const char *name);
|
int connect_status, const char *name);
|
||||||
void stream_set_remote_ip(struct stream *, ovs_be32 remote_ip);
|
|
||||||
void stream_set_remote_port(struct stream *, ovs_be16 remote_port);
|
|
||||||
void stream_set_local_ip(struct stream *, ovs_be32 local_ip);
|
|
||||||
void stream_set_local_port(struct stream *, ovs_be16 local_port);
|
|
||||||
static inline void stream_assert_class(const struct stream *stream,
|
static inline void stream_assert_class(const struct stream *stream,
|
||||||
const struct stream_class *class)
|
const struct stream_class *class)
|
||||||
{
|
{
|
||||||
|
@@ -204,8 +204,7 @@ want_to_poll_events(int want)
|
|||||||
|
|
||||||
static int
|
static int
|
||||||
new_ssl_stream(const char *name, int fd, enum session_type type,
|
new_ssl_stream(const char *name, int fd, enum session_type type,
|
||||||
enum ssl_state state, const struct sockaddr_in *remote,
|
enum ssl_state state, struct stream **streamp)
|
||||||
struct stream **streamp)
|
|
||||||
{
|
{
|
||||||
struct sockaddr_in local;
|
struct sockaddr_in local;
|
||||||
socklen_t local_len = sizeof local;
|
socklen_t local_len = sizeof local;
|
||||||
@@ -270,10 +269,6 @@ new_ssl_stream(const char *name, int fd, enum session_type type,
|
|||||||
/* Create and return the ssl_stream. */
|
/* Create and return the ssl_stream. */
|
||||||
sslv = xmalloc(sizeof *sslv);
|
sslv = xmalloc(sizeof *sslv);
|
||||||
stream_init(&sslv->stream, &ssl_stream_class, EAGAIN, name);
|
stream_init(&sslv->stream, &ssl_stream_class, EAGAIN, name);
|
||||||
stream_set_remote_ip(&sslv->stream, remote->sin_addr.s_addr);
|
|
||||||
stream_set_remote_port(&sslv->stream, remote->sin_port);
|
|
||||||
stream_set_local_ip(&sslv->stream, local.sin_addr.s_addr);
|
|
||||||
stream_set_local_port(&sslv->stream, local.sin_port);
|
|
||||||
sslv->state = state;
|
sslv->state = state;
|
||||||
sslv->type = type;
|
sslv->type = type;
|
||||||
sslv->fd = fd;
|
sslv->fd = fd;
|
||||||
@@ -309,7 +304,6 @@ ssl_stream_cast(struct stream *stream)
|
|||||||
static int
|
static int
|
||||||
ssl_open(const char *name, char *suffix, struct stream **streamp, uint8_t dscp)
|
ssl_open(const char *name, char *suffix, struct stream **streamp, uint8_t dscp)
|
||||||
{
|
{
|
||||||
struct sockaddr_in sin;
|
|
||||||
int error, fd;
|
int error, fd;
|
||||||
|
|
||||||
error = ssl_init();
|
error = ssl_init();
|
||||||
@@ -317,11 +311,11 @@ ssl_open(const char *name, char *suffix, struct stream **streamp, uint8_t dscp)
|
|||||||
return error;
|
return error;
|
||||||
}
|
}
|
||||||
|
|
||||||
error = inet_open_active(SOCK_STREAM, suffix, OFP_OLD_PORT, &sin, &fd,
|
error = inet_open_active(SOCK_STREAM, suffix, OFP_OLD_PORT, NULL, &fd,
|
||||||
dscp);
|
dscp);
|
||||||
if (fd >= 0) {
|
if (fd >= 0) {
|
||||||
int state = error ? STATE_TCP_CONNECTING : STATE_SSL_CONNECTING;
|
int state = error ? STATE_TCP_CONNECTING : STATE_SSL_CONNECTING;
|
||||||
return new_ssl_stream(name, fd, CLIENT, state, &sin, streamp);
|
return new_ssl_stream(name, fd, CLIENT, state, streamp);
|
||||||
} else {
|
} else {
|
||||||
VLOG_ERR("%s: connect: %s", name, ovs_strerror(error));
|
VLOG_ERR("%s: connect: %s", name, ovs_strerror(error));
|
||||||
return error;
|
return error;
|
||||||
@@ -849,7 +843,7 @@ pssl_accept(struct pstream *pstream, struct stream **new_streamp)
|
|||||||
if (sin.sin_port != htons(OFP_OLD_PORT)) {
|
if (sin.sin_port != htons(OFP_OLD_PORT)) {
|
||||||
sprintf(strchr(name, '\0'), ":%"PRIu16, ntohs(sin.sin_port));
|
sprintf(strchr(name, '\0'), ":%"PRIu16, ntohs(sin.sin_port));
|
||||||
}
|
}
|
||||||
return new_ssl_stream(name, new_fd, SERVER, STATE_SSL_CONNECTING, &sin,
|
return new_ssl_stream(name, new_fd, SERVER, STATE_SSL_CONNECTING,
|
||||||
new_streamp);
|
new_streamp);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -38,7 +38,7 @@ VLOG_DEFINE_THIS_MODULE(stream_tcp);
|
|||||||
|
|
||||||
static int
|
static int
|
||||||
new_tcp_stream(const char *name, int fd, int connect_status,
|
new_tcp_stream(const char *name, int fd, int connect_status,
|
||||||
const struct sockaddr_in *remote, struct stream **streamp)
|
struct stream **streamp)
|
||||||
{
|
{
|
||||||
struct sockaddr_in local;
|
struct sockaddr_in local;
|
||||||
socklen_t local_len = sizeof local;
|
socklen_t local_len = sizeof local;
|
||||||
@@ -58,26 +58,17 @@ new_tcp_stream(const char *name, int fd, int connect_status,
|
|||||||
return errno;
|
return errno;
|
||||||
}
|
}
|
||||||
|
|
||||||
retval = new_fd_stream(name, fd, connect_status, streamp);
|
return new_fd_stream(name, fd, connect_status, streamp);
|
||||||
if (!retval) {
|
|
||||||
struct stream *stream = *streamp;
|
|
||||||
stream_set_remote_ip(stream, remote->sin_addr.s_addr);
|
|
||||||
stream_set_remote_port(stream, remote->sin_port);
|
|
||||||
stream_set_local_ip(stream, local.sin_addr.s_addr);
|
|
||||||
stream_set_local_port(stream, local.sin_port);
|
|
||||||
}
|
|
||||||
return retval;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
tcp_open(const char *name, char *suffix, struct stream **streamp, uint8_t dscp)
|
tcp_open(const char *name, char *suffix, struct stream **streamp, uint8_t dscp)
|
||||||
{
|
{
|
||||||
struct sockaddr_in sin;
|
|
||||||
int fd, error;
|
int fd, error;
|
||||||
|
|
||||||
error = inet_open_active(SOCK_STREAM, suffix, 0, &sin, &fd, dscp);
|
error = inet_open_active(SOCK_STREAM, suffix, 0, NULL, &fd, dscp);
|
||||||
if (fd >= 0) {
|
if (fd >= 0) {
|
||||||
return new_tcp_stream(name, fd, error, &sin, streamp);
|
return new_tcp_stream(name, fd, error, streamp);
|
||||||
} else {
|
} else {
|
||||||
VLOG_ERR("%s: connect: %s", name, ovs_strerror(error));
|
VLOG_ERR("%s: connect: %s", name, ovs_strerror(error));
|
||||||
return error;
|
return error;
|
||||||
@@ -140,7 +131,7 @@ ptcp_accept(int fd, const struct sockaddr *sa, size_t sa_len,
|
|||||||
} else {
|
} else {
|
||||||
strcpy(name, "tcp");
|
strcpy(name, "tcp");
|
||||||
}
|
}
|
||||||
return new_tcp_stream(name, fd, 0, sin, streamp);
|
return new_tcp_stream(name, fd, 0, streamp);
|
||||||
}
|
}
|
||||||
|
|
||||||
const struct pstream_class ptcp_pstream_class = {
|
const struct pstream_class ptcp_pstream_class = {
|
||||||
|
56
lib/stream.c
56
lib/stream.c
@@ -281,38 +281,6 @@ stream_get_name(const struct stream *stream)
|
|||||||
return stream ? stream->name : "(null)";
|
return stream ? stream->name : "(null)";
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Returns the IP address of the peer, or 0 if the peer is not connected over
|
|
||||||
* an IP-based protocol or if its IP address is not yet known. */
|
|
||||||
ovs_be32
|
|
||||||
stream_get_remote_ip(const struct stream *stream)
|
|
||||||
{
|
|
||||||
return stream->remote_ip;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Returns the transport port of the peer, or 0 if the connection does not
|
|
||||||
* contain a port or if the port is not yet known. */
|
|
||||||
ovs_be16
|
|
||||||
stream_get_remote_port(const struct stream *stream)
|
|
||||||
{
|
|
||||||
return stream->remote_port;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Returns the IP address used to connect to the peer, or 0 if the connection
|
|
||||||
* is not an IP-based protocol or if its IP address is not yet known. */
|
|
||||||
ovs_be32
|
|
||||||
stream_get_local_ip(const struct stream *stream)
|
|
||||||
{
|
|
||||||
return stream->local_ip;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Returns the transport port used to connect to the peer, or 0 if the
|
|
||||||
* connection does not contain a port or if the port is not yet known. */
|
|
||||||
ovs_be16
|
|
||||||
stream_get_local_port(const struct stream *stream)
|
|
||||||
{
|
|
||||||
return stream->local_port;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
scs_connecting(struct stream *stream)
|
scs_connecting(struct stream *stream)
|
||||||
{
|
{
|
||||||
@@ -662,30 +630,6 @@ stream_init(struct stream *stream, const struct stream_class *class,
|
|||||||
ovs_assert(stream->state != SCS_CONNECTING || class->connect);
|
ovs_assert(stream->state != SCS_CONNECTING || class->connect);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
|
||||||
stream_set_remote_ip(struct stream *stream, ovs_be32 ip)
|
|
||||||
{
|
|
||||||
stream->remote_ip = ip;
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
stream_set_remote_port(struct stream *stream, ovs_be16 port)
|
|
||||||
{
|
|
||||||
stream->remote_port = port;
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
stream_set_local_ip(struct stream *stream, ovs_be32 ip)
|
|
||||||
{
|
|
||||||
stream->local_ip = ip;
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
stream_set_local_port(struct stream *stream, ovs_be16 port)
|
|
||||||
{
|
|
||||||
stream->local_port = port;
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
void
|
||||||
pstream_init(struct pstream *pstream, const struct pstream_class *class,
|
pstream_init(struct pstream *pstream, const struct pstream_class *class,
|
||||||
const char *name)
|
const char *name)
|
||||||
|
@@ -40,21 +40,12 @@ struct vconn {
|
|||||||
enum ofp_version version; /* Negotiated version (or 0). */
|
enum ofp_version version; /* Negotiated version (or 0). */
|
||||||
bool recv_any_version; /* True to receive a message of any version. */
|
bool recv_any_version; /* True to receive a message of any version. */
|
||||||
|
|
||||||
ovs_be32 remote_ip;
|
|
||||||
ovs_be16 remote_port;
|
|
||||||
ovs_be32 local_ip;
|
|
||||||
ovs_be16 local_port;
|
|
||||||
|
|
||||||
char *name;
|
char *name;
|
||||||
};
|
};
|
||||||
|
|
||||||
void vconn_init(struct vconn *, const struct vconn_class *, int connect_status,
|
void vconn_init(struct vconn *, const struct vconn_class *, int connect_status,
|
||||||
const char *name, uint32_t allowed_versions);
|
const char *name, uint32_t allowed_versions);
|
||||||
void vconn_free_data(struct vconn *vconn);
|
void vconn_free_data(struct vconn *vconn);
|
||||||
void vconn_set_remote_ip(struct vconn *, ovs_be32 remote_ip);
|
|
||||||
void vconn_set_remote_port(struct vconn *, ovs_be16 remote_port);
|
|
||||||
void vconn_set_local_ip(struct vconn *, ovs_be32 local_ip);
|
|
||||||
void vconn_set_local_port(struct vconn *, ovs_be16 local_port);
|
|
||||||
static inline void vconn_assert_class(const struct vconn *vconn,
|
static inline void vconn_assert_class(const struct vconn *vconn,
|
||||||
const struct vconn_class *class)
|
const struct vconn_class *class)
|
||||||
{
|
{
|
||||||
|
@@ -64,10 +64,6 @@ vconn_stream_new(struct stream *stream, int connect_status,
|
|||||||
s->txbuf = NULL;
|
s->txbuf = NULL;
|
||||||
s->rxbuf = NULL;
|
s->rxbuf = NULL;
|
||||||
s->n_packets = 0;
|
s->n_packets = 0;
|
||||||
s->vconn.remote_ip = stream_get_remote_ip(stream);
|
|
||||||
s->vconn.remote_port = stream_get_remote_port(stream);
|
|
||||||
s->vconn.local_ip = stream_get_local_ip(stream);
|
|
||||||
s->vconn.local_port = stream_get_local_port(stream);
|
|
||||||
return &s->vconn;
|
return &s->vconn;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
57
lib/vconn.c
57
lib/vconn.c
@@ -350,39 +350,6 @@ vconn_set_allowed_versions(struct vconn *vconn, uint32_t allowed_versions)
|
|||||||
vconn->allowed_versions = allowed_versions;
|
vconn->allowed_versions = allowed_versions;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Returns the IP address of the peer, or 0 if the peer is not connected over
|
|
||||||
* an IP-based protocol or if its IP address is not yet known. */
|
|
||||||
ovs_be32
|
|
||||||
vconn_get_remote_ip(const struct vconn *vconn)
|
|
||||||
{
|
|
||||||
return vconn->remote_ip;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Returns the transport port of the peer, or 0 if the connection does not
|
|
||||||
* contain a port or if the port is not yet known. */
|
|
||||||
ovs_be16
|
|
||||||
vconn_get_remote_port(const struct vconn *vconn)
|
|
||||||
{
|
|
||||||
return vconn->remote_port;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Returns the IP address used to connect to the peer, or 0 if the
|
|
||||||
* connection is not an IP-based protocol or if its IP address is not
|
|
||||||
* yet known. */
|
|
||||||
ovs_be32
|
|
||||||
vconn_get_local_ip(const struct vconn *vconn)
|
|
||||||
{
|
|
||||||
return vconn->local_ip;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Returns the transport port used to connect to the peer, or 0 if the
|
|
||||||
* connection does not contain a port or if the port is not yet known. */
|
|
||||||
ovs_be16
|
|
||||||
vconn_get_local_port(const struct vconn *vconn)
|
|
||||||
{
|
|
||||||
return vconn->local_port;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Returns the OpenFlow version negotiated with the peer, or -1 if version
|
/* Returns the OpenFlow version negotiated with the peer, or -1 if version
|
||||||
* negotiation is not yet complete.
|
* negotiation is not yet complete.
|
||||||
*
|
*
|
||||||
@@ -1137,30 +1104,6 @@ vconn_init(struct vconn *vconn, const struct vconn_class *class,
|
|||||||
ovs_assert(vconn->state != VCS_CONNECTING || class->connect);
|
ovs_assert(vconn->state != VCS_CONNECTING || class->connect);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
|
||||||
vconn_set_remote_ip(struct vconn *vconn, ovs_be32 ip)
|
|
||||||
{
|
|
||||||
vconn->remote_ip = ip;
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
vconn_set_remote_port(struct vconn *vconn, ovs_be16 port)
|
|
||||||
{
|
|
||||||
vconn->remote_port = port;
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
vconn_set_local_ip(struct vconn *vconn, ovs_be32 ip)
|
|
||||||
{
|
|
||||||
vconn->local_ip = ip;
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
vconn_set_local_port(struct vconn *vconn, ovs_be16 port)
|
|
||||||
{
|
|
||||||
vconn->local_port = port;
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
void
|
||||||
pvconn_init(struct pvconn *pvconn, const struct pvconn_class *class,
|
pvconn_init(struct pvconn *pvconn, const struct pvconn_class *class,
|
||||||
const char *name, uint32_t allowed_versions)
|
const char *name, uint32_t allowed_versions)
|
||||||
|
@@ -45,11 +45,6 @@ void vconn_set_allowed_versions(struct vconn *vconn,
|
|||||||
int vconn_get_version(const struct vconn *);
|
int vconn_get_version(const struct vconn *);
|
||||||
void vconn_set_recv_any_version(struct vconn *);
|
void vconn_set_recv_any_version(struct vconn *);
|
||||||
|
|
||||||
ovs_be32 vconn_get_remote_ip(const struct vconn *);
|
|
||||||
ovs_be16 vconn_get_remote_port(const struct vconn *);
|
|
||||||
ovs_be32 vconn_get_local_ip(const struct vconn *);
|
|
||||||
ovs_be16 vconn_get_local_port(const struct vconn *);
|
|
||||||
|
|
||||||
int vconn_connect(struct vconn *);
|
int vconn_connect(struct vconn *);
|
||||||
int vconn_recv(struct vconn *, struct ofpbuf **);
|
int vconn_recv(struct vconn *, struct ofpbuf **);
|
||||||
int vconn_send(struct vconn *, struct ofpbuf *);
|
int vconn_send(struct vconn *, struct ofpbuf *);
|
||||||
|
Reference in New Issue
Block a user