projects
/
openvswitch
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
netdev-linux: Fix strict aliasing warnings.
[openvswitch]
/
ofproto
/
status.c
diff --git
a/ofproto/status.c
b/ofproto/status.c
index a8f522d61097b558866755fce81acd81cd823740..67cb27814f5b0efb2535f64d0ef00ed4c632e5c0 100644
(file)
--- a/
ofproto/status.c
+++ b/
ofproto/status.c
@@
-35,7
+35,7
@@
#include "vconn.h"
#include "vlog.h"
#include "vconn.h"
#include "vlog.h"
-VLOG_DEFINE_THIS_MODULE(status)
+VLOG_DEFINE_THIS_MODULE(status)
;
struct status_category {
struct list node;
struct status_category {
struct list node;
@@
-59,8
+59,9
@@
struct status_reply {
int
switch_status_handle_request(struct switch_status *ss, struct rconn *rconn,
int
switch_status_handle_request(struct switch_status *ss, struct rconn *rconn,
-
struct nicira_header *request
)
+
const struct ofp_header *oh
)
{
{
+ const struct nicira_header *request = (const struct nicira_header *) oh;
struct status_category *c;
struct nicira_header *reply;
struct status_reply sr;
struct status_category *c;
struct nicira_header *reply;
struct status_reply sr;
@@
-70,17
+71,15
@@
switch_status_handle_request(struct switch_status *ss, struct rconn *rconn,
sr.request.string = (void *) (request + 1);
sr.request.length = ntohs(request->header.length) - sizeof *request;
ds_init(&sr.output);
sr.request.string = (void *) (request + 1);
sr.request.length = ntohs(request->header.length) - sizeof *request;
ds_init(&sr.output);
- LIST_FOR_EACH (c,
struct status_category,
node, &ss->categories) {
+ LIST_FOR_EACH (c, node, &ss->categories) {
if (!memcmp(c->name, sr.request.string,
MIN(strlen(c->name), sr.request.length))) {
sr.category = c;
c->cb(&sr, c->aux);
}
}
if (!memcmp(c->name, sr.request.string,
MIN(strlen(c->name), sr.request.length))) {
sr.category = c;
c->cb(&sr, c->aux);
}
}
- reply = make_openflow_xid(sizeof *reply + sr.output.length,
- OFPT_VENDOR, request->header.xid, &b);
- reply->vendor = htonl(NX_VENDOR_ID);
- reply->subtype = htonl(NXT_STATUS_REPLY);
+ reply = make_nxmsg_xid(sizeof *reply + sr.output.length,
+ NXT_STATUS_REPLY, request->header.xid, &b);
memcpy(reply + 1, sr.output.string, sr.output.length);
retval = rconn_send(rconn, b, NULL);
if (retval && retval != EAGAIN) {
memcpy(reply + 1, sr.output.string, sr.output.length);
retval = rconn_send(rconn, b, NULL);
if (retval && retval != EAGAIN) {
@@
-101,10
+100,10
@@
rconn_status_cb(struct status_reply *sr, void *rconn_)
status_reply_put(sr, "name=%s", rconn_get_target(rconn));
if (remote_ip) {
status_reply_put(sr, "remote-ip="IP_FMT, IP_ARGS(&remote_ip));
status_reply_put(sr, "name=%s", rconn_get_target(rconn));
if (remote_ip) {
status_reply_put(sr, "remote-ip="IP_FMT, IP_ARGS(&remote_ip));
- status_reply_put(sr, "remote-port=%d",
+ status_reply_put(sr, "remote-port=%d",
ntohs(rconn_get_remote_port(rconn)));
status_reply_put(sr, "local-ip="IP_FMT, IP_ARGS(&local_ip));
ntohs(rconn_get_remote_port(rconn)));
status_reply_put(sr, "local-ip="IP_FMT, IP_ARGS(&local_ip));
- status_reply_put(sr, "local-port=%d",
+ status_reply_put(sr, "local-port=%d",
ntohs(rconn_get_local_port(rconn)));
}
status_reply_put(sr, "state=%s", rconn_get_state(rconn));
ntohs(rconn_get_local_port(rconn)));
}
status_reply_put(sr, "state=%s", rconn_get_state(rconn));
@@
-132,20
+131,11
@@
config_status_cb(struct status_reply *sr, void *ofproto_)
{
const struct ofproto *ofproto = ofproto_;
uint64_t datapath_id;
{
const struct ofproto *ofproto = ofproto_;
uint64_t datapath_id;
- struct svec listeners;
- size_t i;
datapath_id = ofproto_get_datapath_id(ofproto);
if (datapath_id) {
status_reply_put(sr, "datapath-id=%016"PRIx64, datapath_id);
}
datapath_id = ofproto_get_datapath_id(ofproto);
if (datapath_id) {
status_reply_put(sr, "datapath-id=%016"PRIx64, datapath_id);
}
-
- svec_init(&listeners);
- ofproto_get_listeners(ofproto, &listeners);
- for (i = 0; i < listeners.n; i++) {
- status_reply_put(sr, "management%zu=%s", i, listeners.names[i]);
- }
- svec_destroy(&listeners);
}
static void
}
static void
@@
-179,8
+169,7
@@
switch_status_destroy(struct switch_status *ss)
/* Orphan any remaining categories, so that unregistering them later
* won't write to bad memory. */
struct status_category *c, *next;
/* Orphan any remaining categories, so that unregistering them later
* won't write to bad memory. */
struct status_category *c, *next;
- LIST_FOR_EACH_SAFE (c, next,
- struct status_category, node, &ss->categories) {
+ LIST_FOR_EACH_SAFE (c, next, node, &ss->categories) {
list_init(&c->node);
}
switch_status_unregister(ss->config_cat);
list_init(&c->node);
}
switch_status_unregister(ss->config_cat);