Skip to content
  • Maor Gottlieb's avatar
    net/mlx5e: Split the main flow steering table · 33cfaaa8
    Maor Gottlieb authored
    
    
    Currently, the main flow table is used for two purposes:
    One is to do mac filtering and the other is to classify
    the packet l3-l4 header in order to steer the packet to
    the right RSS TIR.
    
    This design is very complex, for each configured mac address we
    have to add eleven rules (rule for each traffic type), the same if the
    device is put to promiscuous/allmulti mode.
    This scheme isn't scalable for future features like aRFS.
    
    In order to simplify it, the main flow table is split to two flow
    tables:
    1. l2 table - filter the packet dmac address, if there is a match
    we forward to the ttc flow table.
    
    2. TTC (Traffic Type Classifier) table - classify the traffic
    type of the packet and steer the packet to the right TIR.
    
    In this new design, when new mac address is added, the driver adds
    only one flow rule instead of eleven.
    
    Signed-off-by: default avatarMaor Gottlieb <maorg@mellanox.com>
    Signed-off-by: default avatarSaeed Mahameed <saeedm@mellanox.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    33cfaaa8