• Tom Herbert's avatar
    tun: Add support for RFS on tun flows · 9bc88939
    Tom Herbert authored
    This patch adds support so that the rps_flow_tables (RFS) can be
    programmed using the tun flows which are already set up to track flows
    for the purposes of queue selection.
    
    On the receive path (corresponding to select_queue and tun_net_xmit) the
    rxhash is saved in the flow_entry.  The original code only does flow
    lookup in select_queue, so this patch adds a flow lookup in tun_net_xmit
    if num_queues == 1 (select_queue is not called from
    dev_queue_xmit->netdev_pick_tx in that case).
    
    The flow is recorded (processing CPU) in tun_flow_update (TX path), and
    reset when flow is deleted.
    Signed-off-by: default avatarTom Herbert <therbert@google.com>
    Signed-off-by: default avatarZhi Yong Wu <wuzhy@linux.vnet.ibm.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    9bc88939
tun.c 55.3 KB