diff --git a/elements/analysis/replay.hh b/elements/analysis/replay.hh
index 14242025b5e70a211fa6c05951b8a66eb9cebe71..c83b3f179ce114e0df3d8d37b035708349df8881 100644
--- a/elements/analysis/replay.hh
+++ b/elements/analysis/replay.hh
@@ -71,15 +71,52 @@ replay an input of packets at a given speed
 
 =d
 
+Preload packets in RAM, then replays them a certain number of time. This is a pull elements, see ReplayUnqueue for a pull-to-push version.
 
 Keyword arguments are:
 
 =over 8
 
 =item STOP
-
 Integer.  Number of loop to replay.
 
+=item STOP_TIME
+Integer. If > 0, also bound the number of replay loops using a time limit, in seconds.
+
+=item QUICK_CLONE
+Boolean. If true, the packets will be cloned using an internal DPDK reference counter, so this will avoid
+the packets being duplicated by Click if they are modified and replayed more than once.
+The downside is if the replay loop is too fast, the NIC might send corrupted packets.
+
+=item BURST
+Integer. Number of packets to send at once.
+
+=item VERBOSE
+Integer. Verbosity level.
+
+=item FREEONTERMINATE
+Boolean. Free packets on the last run.
+
+=item LIMIT
+Integer. Max number of packets to preload.
+
+=item ACTIVE
+Boolean. Wether this element should start in active mode. To be used with the active handler.
+
+=item USE_SIGNAL
+Boolean. If true, use an upstream empty signal to know wether the element should stop polling for packets when
+preloading. Else, stops preloading packets when the pulling returns no packets. Default true.
+
+=back
+
+=e
+
+  FromDump(file.pcap, ) -> ReplayUnqueue(3, QUEUE 1) -> ...
+  
+=h device read-only
+
+=a ReplayUnqueue, MultiReplayUnqueue
+
 */
 class Replay : public ReplayBase { public:
 
@@ -117,6 +154,39 @@ class Replay : public ReplayBase { public:
     struct s_output _output;
 };
 
+/*
+=c
+
+ReplayUnqueue([, I<KEYWORDS>])
+
+=s traces
+
+replay an input of packets at a given speed, pull to push
+
+=d
+
+Technically equivalent to Replay->Unqueue-> it is more efficient.
+
+Keyword arguments are the same than @Replay, with the addition of:
+
+=over 8
+
+=item TIMING
+Integer. If 0, replays packets as fast as possible. If >0, give an acceleration speed of the
+original timing of the packet.
+
+=item TIMING_FNT
+String.  A function that can be used to change the TIMING according to 
+the current time. The parsing uses TinyFNT and therefore follows the format.
+The variable containing the time is x. E.g. "10 + min(90,10*x)" will have an
+acceleration from 10 to 100% in 9 seconds. Note that if the function goes to 0, the element stops.
+See the Metron (NSDI'18) paper for examples. Supports @1 and @2 for the predifined functions for that paper. 
+@1 is equivalent to "100 * ((sin(-pi/2 + (x/10)^2.5) * (-x/"+time+" + 1) + 1) * (("+max+" - 1) / 2) + 1)"
+where TIME is STOP_TIME argument and MAX is the value of TIMING given above.
+@2 is equivalent to "100 * ((-squarewave(((x + 40) * 1/50) ^ 5) * (-x / "+time+" + 1) + 1) * (("+max+" - 1) / 2) + 1)"
+Ineffective if TIMING is not true. Defaults to an empty string (inactive).
+
+*/
 class ReplayUnqueue : public ReplayBase { public:
 	ReplayUnqueue() CLICK_COLD;
     ~ReplayUnqueue() CLICK_COLD;