X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=ofproto%2Fconnmgr.c;h=b7c16d2b50d2e60d7554c61ec4056940c31bd3ec;hb=08d74a962e302b752f53a9c367053a39068104ed;hp=a06277262f46f7c879d5a569521c831806c07cce;hpb=c7be3f559349882c0e835a37834cfe257138e8c3;p=sliver-openvswitch.git diff --git a/ofproto/connmgr.c b/ofproto/connmgr.c index a06277262..b7c16d2b5 100644 --- a/ofproto/connmgr.c +++ b/ofproto/connmgr.c @@ -454,7 +454,7 @@ static void add_controller(struct connmgr *, const char *target, uint8_t dscp, OVS_REQUIRES(ofproto_mutex); static struct ofconn *find_controller_by_target(struct connmgr *, const char *target); -static void update_fail_open(struct connmgr *); +static void update_fail_open(struct connmgr *) OVS_EXCLUDED(ofproto_mutex); static int set_pvconns(struct pvconn ***pvconnsp, size_t *n_pvconnsp, const struct sset *); @@ -771,6 +771,7 @@ update_in_band_remotes(struct connmgr *mgr) static void update_fail_open(struct connmgr *mgr) + OVS_EXCLUDED(ofproto_mutex) { if (connmgr_has_controllers(mgr) && mgr->fail_mode == OFPROTO_FAIL_STANDALONE) { @@ -1550,8 +1551,13 @@ do_send_packet_ins(struct ofconn *ofconn, struct list *txq) LIST_FOR_EACH_SAFE (pin, next_pin, list_node, txq) { list_remove(&pin->list_node); - rconn_send_with_limit(ofconn->rconn, pin, - ofconn->packet_in_counter, 100); + if (rconn_send_with_limit(ofconn->rconn, pin, + ofconn->packet_in_counter, 100) == EAGAIN) { + static struct vlog_rate_limit rl = VLOG_RATE_LIMIT_INIT(5, 5); + + VLOG_INFO_RL(&rl, "%s: dropping packet-in due to queue overflow", + rconn_get_name(ofconn->rconn)); + } } } @@ -1966,7 +1972,7 @@ ofmonitor_report(struct connmgr *mgr, struct rule *rule, default: case NXFME_ABBREV: - NOT_REACHED(); + OVS_NOT_REACHED(); } LIST_FOR_EACH (ofconn, node, &mgr->all_conns) {