X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=lib%2Fofp-print.c;h=af534386545283410461c30966fc05ddee4747ee;hb=6ce6d3c928f26bacca60baf716b4b99a05a45ba7;hp=0c7980e84f7b5f43e1e0b4f410a876883c22d40b;hpb=064af42167bf4fc9aaea2702d80ce08074b889c0;p=openvswitch diff --git a/lib/ofp-print.c b/lib/ofp-print.c index 0c7980e8..af534386 100644 --- a/lib/ofp-print.c +++ b/lib/ofp-print.c @@ -1,25 +1,25 @@ /* - * Copyright (c) 2008, 2009 Nicira Networks. + * Copyright (c) 2008, 2009, 2010 Nicira Networks. * - * Permission to use, copy, modify, and/or distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. + * 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: * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + * 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 #include "ofp-print.h" -#include "xtoxll.h" #include #include +#include #include #include #include @@ -35,10 +35,9 @@ #include "packets.h" #include "pcap.h" #include "util.h" +#include "xtoxll.h" static void ofp_print_port_name(struct ds *string, uint16_t port); -static void ofp_print_match(struct ds *, const struct ofp_match *, - int verbosity); /* Returns a string that represents the contents of the Ethernet frame in the * 'len' bytes starting at 'data' to 'stream' as output by tcpdump. @@ -49,7 +48,7 @@ static void ofp_print_match(struct ds *, const struct ofp_match *, * * This starts and kills a tcpdump subprocess so it's quite expensive. */ char * -ofp_packet_to_string(const void *data, size_t len, size_t total_len UNUSED) +ofp_packet_to_string(const void *data, size_t len, size_t total_len OVS_UNUSED) { struct ds ds = DS_EMPTY_INITIALIZER; struct ofpbuf buf; @@ -380,7 +379,7 @@ ofp_print_action(struct ds *string, const struct ofp_action_header *ah, return len; } -static void +void ofp_print_actions(struct ds *string, const struct ofp_action_header *action, size_t actions_len) { @@ -537,7 +536,7 @@ ofp_print_phy_port(struct ds *string, const struct ofp_phy_port *port) * 'string' at the given 'verbosity' level. */ static void ofp_print_switch_features(struct ds *string, const void *oh, size_t len, - int verbosity UNUSED) + int verbosity OVS_UNUSED) { const struct ofp_switch_features *osf = oh; struct ofp_phy_port *port_list; @@ -567,8 +566,8 @@ ofp_print_switch_features(struct ds *string, const void *oh, size_t len, /* Pretty-print the struct ofp_switch_config of 'len' bytes at 'oh' to 'string' * at the given 'verbosity' level. */ static void -ofp_print_switch_config(struct ds *string, const void *oh, size_t len UNUSED, - int verbosity UNUSED) +ofp_print_switch_config(struct ds *string, const void *oh, + size_t len OVS_UNUSED, int verbosity OVS_UNUSED) { const struct ofp_switch_config *osc = oh; uint16_t flags; @@ -627,7 +626,7 @@ print_ip_netmask(struct ds *string, const char *leader, uint32_t ip, ds_put_char(string, ','); } -static void +void ofp_print_match(struct ds *f, const struct ofp_match *om, int verbosity) { char *s = ofp_match_to_string(om, verbosity); @@ -741,8 +740,8 @@ ofp_print_flow_mod(struct ds *string, const void *oh, size_t len, /* Pretty-print the OFPT_FLOW_EXPIRED packet of 'len' bytes at 'oh' to 'string' * at the given 'verbosity' level. */ static void -ofp_print_flow_expired(struct ds *string, const void *oh, size_t len UNUSED, - int verbosity) +ofp_print_flow_expired(struct ds *string, const void *oh, + size_t len OVS_UNUSED, int verbosity) { const struct ofp_flow_expired *ofe = oh; @@ -767,8 +766,8 @@ ofp_print_flow_expired(struct ds *string, const void *oh, size_t len UNUSED, } static void -ofp_print_port_mod(struct ds *string, const void *oh, size_t len UNUSED, - int verbosity UNUSED) +ofp_print_port_mod(struct ds *string, const void *oh, size_t len OVS_UNUSED, + int verbosity OVS_UNUSED) { const struct ofp_port_mod *opm = oh; @@ -799,7 +798,11 @@ static const struct error_type error_types[] = { ERROR_CODE(OFPET_BAD_REQUEST, OFPBRC_BAD_VERSION), ERROR_CODE(OFPET_BAD_REQUEST, OFPBRC_BAD_TYPE), ERROR_CODE(OFPET_BAD_REQUEST, OFPBRC_BAD_STAT), - ERROR_CODE(OFPET_BAD_REQUEST, OFPBRC_BAD_VERSION), + ERROR_CODE(OFPET_BAD_REQUEST, OFPBRC_BAD_VENDOR), + ERROR_CODE(OFPET_BAD_REQUEST, OFPBRC_BAD_SUBTYPE), + ERROR_CODE(OFPET_BAD_REQUEST, OFPBRC_BAD_LENGTH), + ERROR_CODE(OFPET_BAD_REQUEST, OFPBRC_BUFFER_EMPTY), + ERROR_CODE(OFPET_BAD_REQUEST, OFPBRC_BAD_COOKIE), ERROR_TYPE(OFPET_BAD_ACTION), ERROR_CODE(OFPET_BAD_ACTION, OFPBAC_BAD_TYPE), @@ -807,9 +810,16 @@ static const struct error_type error_types[] = { ERROR_CODE(OFPET_BAD_ACTION, OFPBAC_BAD_VENDOR), ERROR_CODE(OFPET_BAD_ACTION, OFPBAC_BAD_VENDOR_TYPE), ERROR_CODE(OFPET_BAD_ACTION, OFPBAC_BAD_OUT_PORT), + ERROR_CODE(OFPET_BAD_ACTION, OFPBAC_BAD_ARGUMENT), + ERROR_CODE(OFPET_BAD_ACTION, OFPBAC_TOO_MANY), ERROR_TYPE(OFPET_FLOW_MOD_FAILED), - ERROR_CODE(OFPET_FLOW_MOD_FAILED, OFPFMFC_ALL_TABLES_FULL) + ERROR_CODE(OFPET_FLOW_MOD_FAILED, OFPFMFC_ALL_TABLES_FULL), + ERROR_CODE(OFPET_FLOW_MOD_FAILED, OFPFMFC_BAD_COMMAND), + + ERROR_TYPE(OFPET_PORT_MOD_FAILED), + ERROR_CODE(OFPET_PORT_MOD_FAILED, OFPPMFC_BAD_PORT), + ERROR_CODE(OFPET_PORT_MOD_FAILED, OFPPMFC_BAD_HW_ADDR) }; #define N_ERROR_TYPES ARRAY_SIZE(error_types) @@ -843,7 +853,7 @@ lookup_error_code(int type, int code) * at the given 'verbosity' level. */ static void ofp_print_error_msg(struct ds *string, const void *oh, size_t len, - int verbosity UNUSED) + int verbosity OVS_UNUSED) { const struct ofp_error_msg *oem = oh; int type = ntohs(oem->type); @@ -874,8 +884,8 @@ ofp_print_error_msg(struct ds *string, const void *oh, size_t len, /* Pretty-print the OFPT_PORT_STATUS packet of 'len' bytes at 'oh' to 'string' * at the given 'verbosity' level. */ static void -ofp_print_port_status(struct ds *string, const void *oh, size_t len UNUSED, - int verbosity UNUSED) +ofp_print_port_status(struct ds *string, const void *oh, size_t len OVS_UNUSED, + int verbosity OVS_UNUSED) { const struct ofp_port_status *ops = oh; @@ -891,8 +901,8 @@ ofp_print_port_status(struct ds *string, const void *oh, size_t len UNUSED, } static void -ofp_desc_stats_reply(struct ds *string, const void *body, size_t len UNUSED, - int verbosity UNUSED) +ofp_desc_stats_reply(struct ds *string, const void *body, + size_t len OVS_UNUSED, int verbosity OVS_UNUSED) { const struct ofp_desc_stats *ods = body; @@ -903,8 +913,8 @@ ofp_desc_stats_reply(struct ds *string, const void *body, size_t len UNUSED, } static void -ofp_flow_stats_request(struct ds *string, const void *oh, size_t len UNUSED, - int verbosity) +ofp_flow_stats_request(struct ds *string, const void *oh, + size_t len OVS_UNUSED, int verbosity) { const struct ofp_flow_stats_request *fsr = oh; @@ -981,7 +991,7 @@ ofp_flow_stats_reply(struct ds *string, const void *body_, size_t len, static void ofp_aggregate_stats_request(struct ds *string, const void *oh, - size_t len UNUSED, int verbosity) + size_t len OVS_UNUSED, int verbosity) { const struct ofp_aggregate_stats_request *asr = oh; @@ -996,7 +1006,7 @@ ofp_aggregate_stats_request(struct ds *string, const void *oh, static void ofp_aggregate_stats_reply(struct ds *string, const void *body_, - size_t len UNUSED, int verbosity UNUSED) + size_t len OVS_UNUSED, int verbosity OVS_UNUSED) { const struct ofp_aggregate_stats_reply *asr = body_; @@ -1083,7 +1093,7 @@ ofp_table_stats_reply(struct ds *string, const void *body, size_t len, static void vendor_stat(struct ds *string, const void *body, size_t len, - int verbosity UNUSED) + int verbosity OVS_UNUSED) { ds_put_format(string, " vendor=%08"PRIx32, ntohl(*(uint32_t *) body)); ds_put_format(string, " %zu bytes additional data",