• Willem de Bruijn's avatar
    selftests/net: SO_TXTIME with ETF and FQ · af5136f9
    Willem de Bruijn authored
    The SO_TXTIME API enables packet tranmission with delayed delivery.
    This is currently supported by the ETF and FQ packet schedulers.
    
    Evaluate the interface with both schedulers. Install the scheduler
    and send a variety of packets streams: without delay, with one
    delayed packet, with multiple ordered delays and with reordering.
    Verify that packets are released by the scheduler in expected order.
    
    The ETF qdisc requires a timestamp in the future on every packet. It
    needs a delay on the qdisc else the packet is dropped on dequeue for
    having a delivery time in the past. The test value is experimentally
    derived. ETF requires clock_id CLOCK_TAI. It checks this base and
    drops for non-conformance.
    
    The FQ qdisc expects clock_id CLOCK_MONOTONIC, the base used by TCP
    as of commit fb420d5d ("tcp/fq: move back to CLOCK_MONOTONIC").
    Within a flow there is an expecation of ordered delivery, as shown by
    delivery times of test 4. The FQ qdisc does not require all packets to
    have timestamps and does not drop for non-conformance.
    
    The large (msec) delays are chosen to avoid flakiness.
    
    	Output:
    
    	SO_TXTIME ipv6 clock monotonic
    	payload:a delay:28 expected:0 (us)
    
    	SO_TXTIME ipv4 clock monotonic
    	payload:a delay:38 expected:0 (us)
    
    	SO_TXTIME ipv6 clock monotonic
    	payload:a delay:40 expected:0 (us)
    
    	SO_TXTIME ipv4 clock monotonic
    	payload:a delay:33 expected:0 (us)
    
    	SO_TXTIME ipv6 clock monotonic
    	payload:a delay:10120 expected:10000 (us)
    
    	SO_TXTIME ipv4 clock monotonic
    	payload:a delay:10102 expected:10000 (us)
    
    	[.. etc ..]
    
    	OK. All tests passed
    
    Changes v1->v2: update commit message output
    Signed-off-by: default avatarWillem de Bruijn <willemb@google.com>
    Acked-by: default avatarEric Dumazet <edumazet@google.com>
    Acked-by: default avatarVinicius Costa Gomes <vinicius.gomes@intel.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    af5136f9
so_txtime.c 6.42 KB