diff --git a/elements/standards/Classifier.cc b/elements/standards/Classifier.cc index 0a4cac8..27cfbc2 100644 --- a/elements/standards/Classifier.cc +++ b/elements/standards/Classifier.cc @@ -130,12 +130,14 @@ int Classifier::process(int input_port, Packet *pkt) cur_condition = cur_condition->next; } if (is_match) { - return output_port; + output(output_port).push(pkt); + return 0; } output_port++; } - return DROP; + pkt->kill(); + return 0; } // vim: ts=8 sts=4 sw=4 et diff --git a/elements/standards/None.cc b/elements/standards/None.cc index 7a0dc85..9ab3c00 100644 --- a/elements/standards/None.cc +++ b/elements/standards/None.cc @@ -16,6 +16,7 @@ int None::configure(comp_thread_context *ctx, std::vector &args) int None::process(int input_port, Packet *pkt) { + output(0).push(pkt); return 0; } diff --git a/elements/standards/PacketSizeClassifier.hh b/elements/standards/PacketSizeClassifier.hh index 93fde3d..4460d46 100644 --- a/elements/standards/PacketSizeClassifier.hh +++ b/elements/standards/PacketSizeClassifier.hh @@ -46,7 +46,8 @@ public: int process(int input_port, Packet *pkt) { unsigned pkt_len = pkt->length(); - return buckets[pkt_len >> 4]; + output(buckets[pkt_len >> 4]).push(pkt); + return 0; } private: