A technique for managing the utilization of processing resources involves
filtering packets that are sent to a CPU for learning before allowing the
packets to reach the CPU. The filtering involves determining if related
packets have already been allowed to reach the CPU for learning and using
the knowledge about related packets to determine if a current packet
should be allowed to reach the CPU. In one embodiment, the processing
resources of the CPU are conserved by allowing only one packet per flow
to reach the CPU for learning. The one packet is used by the CPU to
generate the necessary forwarding information and to initiate programming
of the hardware-based forwarding table so that subsequent packets of the
same flow can be forwarded directly from the hardware-based forwarding
engine.