X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=lib%2Flearning-switch.c;h=76636a7bf08fa6184da15242322ecc61ad00d91d;hb=62093bae13aa604a6e542ce327a3954d45760883;hp=44d655d80b3117c57f75408ee962f1a9caa03a36;hpb=bda52fd0e07103924b0cf402a2bab3ee498089f6;p=sliver-openvswitch.git diff --git a/lib/learning-switch.c b/lib/learning-switch.c index 44d655d80..76636a7bf 100644 --- a/lib/learning-switch.c +++ b/lib/learning-switch.c @@ -457,11 +457,14 @@ process_packet_in(struct lswitch *sw, struct rconn *rconn, void *opi_) return; drop_it: - /* Set up a flow to drop packets, or just drop the packet if we don't set - * up flows at all. */ if (sw->max_idle >= 0) { + /* Set up a flow to drop packets. */ queue_tx(sw, rconn, make_add_flow(&flow, ntohl(opi->buffer_id), sw->max_idle, 0)); + } else { + /* Just drop the packet, since we don't set up flows at all. + * XXX we should send a packet_out with no actions if buffer_id != + * UINT32_MAX, to avoid clogging the kernel buffers. */ } return; }