I'm trying to learn from the forwarding.l3_learning example in POX controller.
In the expiration handler, if the time of a packet in buffer is expired it's
removed from the controller.
Later the controller instructs the switch to drop the packet in these lines:
po = of.ofp_packet_out(buffer_id = buffer_id, in_port = in_port)
core.openflow.sendToDPID(dpid, po)
I don't see such specific instruction in the created message to switch. I don't understand how the switch knows it should drop the packet.