#include <string.h>
#include "buffer.h"
#include "chain.h"
-#include "controller.h"
#include "flow.h"
#include "netdev.h"
#include "packets.h"
#include "poll-loop.h"
+#include "rconn.h"
#include "table.h"
#include "xtoxll.h"
};
struct datapath {
- struct controller_connection *cc;
+ struct rconn *rconn;
time_t last_timeout;
}
int
-dp_new(struct datapath **dp_, uint64_t dpid, struct controller_connection *cc)
+dp_new(struct datapath **dp_, uint64_t dpid, struct rconn *rconn)
{
struct datapath *dp;
}
dp->last_timeout = time(0);
- dp->cc = cc;
+ dp->rconn = rconn;
dp->id = dpid <= UINT64_C(0xffffffffffff) ? dpid : gen_datapath_id();
dp->chain = chain_create();
if (!dp->chain) {
/* Process a number of commands from the controller, but cap it at a
* reasonable number so that other processing doesn't starve. */
for (i = 0; i < 50; i++) {
- struct buffer *buffer = controller_recv(dp->cc);
+ struct buffer *buffer = rconn_recv(dp->rconn);
if (!buffer) {
break;
}
buffer_delete(buffer);
}
- controller_run(dp->cc);
+ rconn_run(dp->rconn);
}
void
LIST_FOR_EACH (p, struct sw_port, node, &dp->port_list) {
netdev_recv_wait(p->netdev);
}
- controller_recv_wait(dp->cc);
+ rconn_recv_wait(dp->rconn);
}
/* Delete 'p' from switch. */
opi->in_port = htons(in_port);
opi->reason = reason;
opi->pad = 0;
- controller_send(dp->cc, buffer);
+ rconn_send(dp->rconn, buffer);
}
static void fill_port_desc(struct datapath *dp, struct sw_port *p,
}
odh = buffer_at_assert(buffer, 0, sizeof *odh);
odh->header.length = htons(buffer->size);
- controller_send(dp->cc, buffer);
+ rconn_send(dp->rconn, buffer);
}
void
ops->header.xid = htonl(0);
ops->reason = status;
fill_port_desc(p->dp, p, &ops->desc);
- controller_send(p->dp->cc, buffer);
+ rconn_send(p->dp->rconn, buffer);
}
void
ofe->duration = htonl(flow->timeout - flow->max_idle - flow->created);
ofe->packet_count = htonll(flow->packet_count);
ofe->byte_count = htonll(flow->byte_count);
- controller_send(dp->cc, buffer);
+ rconn_send(dp->rconn, buffer);
}
\f
/* 'buffer' was received on 'in_port', a physical switch port between 0 and