X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=ofproto%2Fstatus.c;h=0df9ce3d9d717f002c22dbe338a5fe075ec079c7;hb=2ed7d6e227c009f0f6bdabbb85262d8aac896e00;hp=c7598f37ba6a3564abdbaeab47b5557ba2fe33b9;hpb=8cd4882fd5c3080816a070ad582ef06842f7c482;p=openvswitch diff --git a/ofproto/status.c b/ofproto/status.c index c7598f37..0df9ce3d 100644 --- a/ofproto/status.c +++ b/ofproto/status.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2008, 2009 Nicira Networks. + * Copyright (c) 2008, 2009, 2010 Nicira Networks. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -19,21 +19,24 @@ #include #include #include +#include #include #include #include "dynamic-string.h" #include "list.h" +#include "ofp-util.h" #include "ofpbuf.h" #include "ofproto.h" #include "openflow/nicira-ext.h" +#include "packets.h" #include "rconn.h" #include "svec.h" #include "timeval.h" #include "vconn.h" - -#define THIS_MODULE VLM_status #include "vlog.h" +VLOG_DEFINE_THIS_MODULE(status) + struct status_category { struct list node; char *name; @@ -92,8 +95,18 @@ rconn_status_cb(struct status_reply *sr, void *rconn_) { struct rconn *rconn = rconn_; time_t now = time_now(); - - status_reply_put(sr, "name=%s", rconn_get_name(rconn)); + uint32_t remote_ip = rconn_get_remote_ip(rconn); + uint32_t local_ip = rconn_get_local_ip(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, "remote-port=%d", + 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", + ntohs(rconn_get_local_port(rconn))); + } status_reply_put(sr, "state=%s", rconn_get_state(rconn)); status_reply_put(sr, "backoff=%d", rconn_get_backoff(rconn)); status_reply_put(sr, "probe-interval=%d", rconn_get_probe_interval(rconn)); @@ -118,25 +131,11 @@ static void config_status_cb(struct status_reply *sr, void *ofproto_) { const struct ofproto *ofproto = ofproto_; - struct svec listeners; - int probe_interval, max_backoff; - size_t i; - - 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); - - probe_interval = ofproto_get_probe_interval(ofproto); - if (probe_interval) { - status_reply_put(sr, "probe-interval=%d", probe_interval); - } + uint64_t datapath_id; - max_backoff = ofproto_get_max_backoff(ofproto); - if (max_backoff) { - status_reply_put(sr, "max-backoff=%d", max_backoff); + datapath_id = ofproto_get_datapath_id(ofproto); + if (datapath_id) { + status_reply_put(sr, "datapath-id=%016"PRIx64, datapath_id); } } @@ -154,7 +153,7 @@ switch_status_cb(struct status_reply *sr, void *ss_) struct switch_status * switch_status_create(const struct ofproto *ofproto) { - struct switch_status *ss = xcalloc(1, sizeof *ss); + struct switch_status *ss = xzalloc(sizeof *ss); ss->booted = time_now(); list_init(&ss->categories); ss->config_cat = switch_status_register(ss, "config", config_status_cb,