X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=extras%2Fezio%2Fovs-switchui.c;h=af74af56d5705f8006874f288c1b34e157c2342c;hb=4f484bb2245f077b195da1c560d75f0993491bab;hp=6fbf252381efe4aa6ac4acb82a9605ba8542691d;hpb=064af42167bf4fc9aaea2702d80ce08074b889c0;p=openvswitch diff --git a/extras/ezio/ovs-switchui.c b/extras/ezio/ovs-switchui.c index 6fbf2523..af74af56 100644 --- a/extras/ezio/ovs-switchui.c +++ b/extras/ezio/ovs-switchui.c @@ -1,28 +1,16 @@ -/* Copyright (c) 2008, 2009 Nicira Networks, Inc. +/* Copyright (c) 2008, 2009, 2010 Nicira Networks, Inc. * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at: * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - * - * In addition, as a special exception, Nicira Networks gives permission - * to link the code of its release of vswitchd with the OpenSSL project's - * "OpenSSL" library (or with modified versions of it that use the same - * license as the "OpenSSL" library), and distribute the linked - * executables. You must obey the GNU General Public License in all - * respects for all of the code used other than "OpenSSL". If you modify - * this file, you may extend this exception to your version of the file, - * but you are not obligated to do so. If you do not wish to do so, - * delete this exception statement from your version. + * http://www.apache.org/licenses/LICENSE-2.0 * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. */ #include @@ -126,7 +114,7 @@ static void compose_messages(const struct dict *, struct rconn *rconn); static void show_flows(struct rconn *); static void show_dpid_ip(struct rconn *, const struct dict *); -static void show_secchan_state(const struct dict *); +static void show_ofproto_state(const struct dict *); static void show_fail_open_state(const struct dict *); static void show_discovery_state(const struct dict *); static void show_remote_state(const struct dict *); @@ -156,6 +144,7 @@ main(int argc, char *argv[]) long long int last_key_time = 0; int repeat_count = 0; + proctitle_init(argc, argv); set_program_name(argv[0]); time_init(); vlog_init(); @@ -171,13 +160,14 @@ main(int argc, char *argv[]) "use --help for help"); } - rconn = rconn_new(argv[0], 5, 5); + rconn = rconn_create(5, 5); + rconn_connect(rconn, argv[0], NULL); die_if_already_running(); daemonize(); initialize_terminal(); - fatal_signal_add_hook(restore_terminal, NULL, true); + fatal_signal_add_hook(restore_terminal, NULL, NULL, true); msg = NULL; countdown = 0; @@ -253,7 +243,7 @@ main(int argc, char *argv[]) refresh(); poll_fd_wait(STDIN_FILENO, POLLIN); - poll_timer_wait(timeout - time_msec()); + poll_timer_wait_until(timeout); poll_block(); } while (time_msec() < timeout); age_messages(); @@ -269,7 +259,7 @@ compose_messages(const struct dict *dict, struct rconn *rconn) if (!show_reboot_state()) { show_flows(rconn); show_dpid_ip(rconn, dict); - show_secchan_state(dict); + show_ofproto_state(dict); show_fail_open_state(dict); show_discovery_state(dict); show_remote_state(dict); @@ -561,7 +551,7 @@ show_dpid_ip(struct rconn *rconn, const struct dict *dict) const char *is_connected, *local_ip; dict_lookup(dict, "local.is-connected", &is_connected); - dict_lookup(dict, "in-band.local-ip", &local_ip); + dict_lookup(dict, "remote.local-ip", &local_ip); if (!is_connected && !local_ip) { /* If we're not connected to the datapath and don't have a local IP, * then we won't have anything useful to show anyhow. */ @@ -660,7 +650,7 @@ addf(const char *format, ...) } static void -show_secchan_state(const struct dict *dict) +show_ofproto_state(const struct dict *dict) { static struct message *msg; const char *is_connected; @@ -879,7 +869,7 @@ fetch_status(struct rconn *rconn, struct dict *dict, long long timeout) rconn_run_wait(rconn); rconn_recv_wait(rconn); - poll_timer_wait(timeout - time_msec()); + poll_timer_wait_until(timeout); poll_block(); } } @@ -1007,7 +997,7 @@ initialize_terminal(void) } static void -restore_terminal(void *aux UNUSED) +restore_terminal(void *aux OVS_UNUSED) { endwin(); } @@ -1116,6 +1106,7 @@ do_show_data_rates(void *rates_) } if (!rates->xid) { struct ofp_stats_request *rq; + struct ofp_port_stats_request *psr; struct ofpbuf *b; rates->xid = random_uint32(); @@ -1123,6 +1114,10 @@ do_show_data_rates(void *rates_) rates->xid, &b); rq->type = htons(OFPST_PORT); rq->flags = htons(0); + psr = ofpbuf_put_uninit(b, sizeof *psr); + memset(psr, 0, sizeof *psr); + psr->port_no = htons(OFPP_NONE); + update_openflow_length(b); rconn_send_with_limit(rates->rconn, b, counter, 10); } @@ -1221,7 +1216,7 @@ show_data_rates(struct rconn *rconn, const struct dict *dict) static bool inited = false; dict_lookup(dict, "local.is-connected", &is_connected); - dict_lookup(dict, "in-band.local-ip", &local_ip); + dict_lookup(dict, "remote.local-ip", &local_ip); if (!is_connected && !local_ip) { /* If we're not connected to the datapath and don't have a local IP, * then we won't have anything useful to show anyhow. */ @@ -1259,7 +1254,7 @@ allocate_message(struct message **msgp) { if (!*msgp) { /* Allocate and initialize message. */ - *msgp = xcalloc(1, sizeof **msgp); + *msgp = xzalloc(sizeof **msgp); (*msgp)->index = n_messages; /* Add to list of messages. */ @@ -1456,7 +1451,7 @@ init_reboot_notifier(void) } static void -sigusr1_handler(int signr UNUSED) +sigusr1_handler(int signr OVS_UNUSED) { sigusr1_triggered = true; } @@ -1498,7 +1493,7 @@ static int menu_show(const struct menu *, int start, bool select); static void cmd_shell(const struct dict *); static void cmd_show_version(const struct dict *); static void cmd_configure(const struct dict *); -static void cmd_setup_pki(const struct dict *); +static void cmd_set_up_pki(const struct dict *); static void cmd_browse_status(const struct dict *); static void cmd_show_motto(const struct dict *); @@ -1554,7 +1549,7 @@ menu(const struct dict *dict) menu_add_item(&menu, "Exit"); menu_add_item(&menu, "Show Version")->f = cmd_show_version; menu_add_item(&menu, "Configure")->f = cmd_configure; - menu_add_item(&menu, "Setup PKI")->f = cmd_setup_pki; + menu_add_item(&menu, "Set up PKI")->f = cmd_set_up_pki; if (debug_mode) { menu_add_item(&menu, "Browse Status")->f = cmd_browse_status; menu_add_item(&menu, "Shell")->f = cmd_shell; @@ -1720,7 +1715,7 @@ menu_show(const struct menu *menu, int start, bool select) refresh(); if (pos < min || pos > max) { - poll_timer_wait(adjust - time_msec()); + poll_timer_wait_until(adjust); } poll_fd_wait(STDIN_FILENO, POLLIN); poll_block(); @@ -1886,7 +1881,7 @@ yesno(const char *title, bool def) } static void -cmd_show_version(const struct dict *dict UNUSED) +cmd_show_version(const struct dict *dict OVS_UNUSED) { show_string(VERSION BUILDNR); } @@ -1907,7 +1902,7 @@ cmd_browse_status(const struct dict *dict) } static void -cmd_shell(const struct dict *dict UNUSED) +cmd_shell(const struct dict *dict OVS_UNUSED) { const char *home; @@ -1931,7 +1926,7 @@ cmd_shell(const struct dict *dict UNUSED) } static void -cmd_show_motto(const struct dict *dict UNUSED) +cmd_show_motto(const struct dict *dict OVS_UNUSED) { show_string("\"Just Add Ice\""); } @@ -1952,7 +1947,7 @@ static void block_until(long long timeout) { while (timeout > time_msec()) { - poll_timer_wait(timeout - time_msec()); + poll_timer_wait_until(timeout); poll_block(); } drain_keyboard_buffer(); @@ -2091,7 +2086,7 @@ save_config(const struct svec *settings) } svec_init(&argv); - svec_add(&argv, "/usr/share/openvswitch/commands/reconfigure"); + svec_add(&argv, "/usr/share/openvswitch-switchui/reconfigure"); svec_append(&argv, settings); svec_terminate(&argv); ok = run_and_report_failure(argv.names, "Save failed"); @@ -2469,7 +2464,7 @@ abbreviate_netdevs(const struct svec *netdevs, struct ds *abbrev) static void choose_netdevs(struct svec *choices) { - struct svec netdevs; + struct svec netdevs = SVEC_EMPTY_INITIALIZER; struct menu menu; size_t i; @@ -2490,9 +2485,9 @@ choose_netdevs(struct svec *choices) continue; } - retval = netdev_open(name, NETDEV_ETH_TYPE_NONE, &netdev); + retval = netdev_open_default(name, &netdev); if (!retval) { - bool exclude = netdev_get_in4(netdev, NULL); + bool exclude = netdev_get_in4(netdev, NULL, NULL) == 0; netdev_close(netdev); if (exclude) { continue; @@ -2559,7 +2554,7 @@ disconnected_string(int value) } static void -cmd_configure(const struct dict *dict UNUSED) +cmd_configure(const struct dict *dict OVS_UNUSED) { bool debug_mode = dict_get_bool(dict, "debug", false); struct dict config_dict; @@ -2813,7 +2808,8 @@ cmd_configure(const struct dict *dict UNUSED) out = prompt("Ctlr rate limit:", in, "^(Disabled|("NUM100_TO_99999_RE")/s)$"); free(in); - config.rate_limit = isdigit(out[0]) ? atoi(out) : -1; + config.rate_limit + = isdigit((unsigned char)out[0]) ? atoi(out) : -1; free(out); break; @@ -2824,7 +2820,8 @@ cmd_configure(const struct dict *dict UNUSED) out = prompt("Activity probe:", in, "^(Default|("NUM5_TO_99999_RE") s)$"); free(in); - config.inactivity_probe = isdigit(out[0]) ? atoi(out) : -1; + config.inactivity_probe + = isdigit((unsigned char)out[0]) ? atoi(out) : -1; free(out); break; @@ -2835,7 +2832,8 @@ cmd_configure(const struct dict *dict UNUSED) out = prompt("Max backoff:", in, "^(Default|("NUM1_TO_99999_RE") s)$"); free(in); - config.max_backoff = isdigit(out[0]) ? atoi(out) : -1; + config.max_backoff + = isdigit((unsigned char)out[0]) ? atoi(out) : -1; free(out); break; } @@ -2898,7 +2896,7 @@ cmd_configure(const struct dict *dict UNUSED) } static void -cmd_setup_pki(const struct dict *dict UNUSED) +cmd_set_up_pki(const struct dict *dict OVS_UNUSED) { static const char def_privkey_file[] = "/etc/openflow-switch/of0-privkey.pem";