X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=secchan%2Fsecchan.c;h=8906eb03117b6a365635e80fd0fd066f93706f4b;hb=ab43666b205d968b4ce7428b9a730b70ff81042f;hp=f3396ff73d023814a33eaba86d0c4801cca6cefb;hpb=1a418893562d9ce5bed8141dcbc273e546b46706;p=openvswitch diff --git a/secchan/secchan.c b/secchan/secchan.c index f3396ff7..8906eb03 100644 --- a/secchan/secchan.c +++ b/secchan/secchan.c @@ -128,6 +128,8 @@ struct hook { void *aux; }; +static struct vlog_rate_limit vrl = VLOG_RATE_LIMIT_INIT(60, 60); + static void parse_options(int argc, char *argv[], struct settings *); static void usage(void) NO_RETURN; @@ -353,7 +355,7 @@ relay_accept(const struct settings *s, struct vconn *listen_vconn) retval = vconn_accept(listen_vconn, &new_remote); if (retval) { if (retval != EAGAIN) { - VLOG_WARN("accept failed (%s)", strerror(retval)); + VLOG_WARN_RL(&vrl, "accept failed (%s)", strerror(retval)); } return NULL; } @@ -367,8 +369,8 @@ relay_accept(const struct settings *s, struct vconn *listen_vconn) nl_name_without_subscription = xasprintf("%s:0", s->nl_name); retval = vconn_open(nl_name_without_subscription, &new_local); if (retval) { - VLOG_ERR("could not connect to %s (%s)", - nl_name_without_subscription, strerror(retval)); + VLOG_ERR_RL(&vrl, "could not connect to %s (%s)", + nl_name_without_subscription, strerror(retval)); vconn_close(new_remote); free(nl_name_without_subscription); return NULL; @@ -582,7 +584,8 @@ in_band_packet_cb(struct relay *r, int half, void *in_band_) return false; } if (msg->size < offsetof(struct ofp_packet_in, data)) { - VLOG_WARN("packet too short (%zu bytes) for packet_in", msg->size); + VLOG_WARN_RL(&vrl, "packet too short (%zu bytes) for packet_in", + msg->size); return false; } @@ -604,8 +607,8 @@ in_band_packet_cb(struct relay *r, int half, void *in_band_) /* Sent to secure channel. */ out_port = OFPP_LOCAL; if (mac_learning_learn(in_band->ml, flow.dl_src, in_port)) { - VLOG_DBG("learned that "ETH_ADDR_FMT" is on port %"PRIu16, - ETH_ADDR_ARGS(flow.dl_src), in_port); + VLOG_DBG_RL(&vrl, "learned that "ETH_ADDR_FMT" is on port %"PRIu16, + ETH_ADDR_ARGS(flow.dl_src), in_port); } } else if (flow.dl_type == htons(ETH_TYPE_ARP) && eth_addr_is_broadcast(flow.dl_dst) @@ -900,7 +903,8 @@ rate_limit_packet_cb(struct relay *r, int half, void *rl_) return false; } if (msg->size < offsetof(struct ofp_packet_in, data)) { - VLOG_WARN("packet too short (%zu bytes) for packet_in", msg->size); + VLOG_WARN_RL(&vrl, "packet too short (%zu bytes) for packet_in", + msg->size); return false; } @@ -1036,7 +1040,8 @@ switch_status_packet_cb(struct relay *r, int half, void *ss_) return false; } if (msg->size < sizeof(struct ofp_stats_request)) { - VLOG_WARN("packet too short (%zu bytes) for stats_request", msg->size); + VLOG_WARN_RL(&vrl, "packet too short (%zu bytes) for stats_request", + msg->size); return false; } @@ -1317,13 +1322,13 @@ validate_dhcp_offer(const struct dhcp_msg *msg, void *s_) vconn_name = dhcp_msg_get_string(msg, DHCP_CODE_OFP_CONTROLLER_VCONN); if (!vconn_name) { - VLOG_WARN("rejecting DHCP offer missing controller vconn"); + VLOG_WARN_RL(&vrl, "rejecting DHCP offer missing controller vconn"); return false; } accept = !regexec(&s->accept_controller_regex, vconn_name, 0, NULL, 0); if (!accept) { - VLOG_WARN("rejecting controller vconn that fails to match %s", - s->accept_controller_re); + VLOG_WARN_RL(&vrl, "rejecting controller vconn that fails to match %s", + s->accept_controller_re); } free(vconn_name); return accept;