Skip to content
  • Huy Nguyen's avatar
    net/mlx5: E-Switch, Add support for VEPA in legacy mode. · 8da202b2
    Huy Nguyen authored
    
    
    In Virtual Ethernet Port Aggregator (VEPA) mode, the packet skips
    the system internal virtual switch and forwards to external network
    switch. In Mellanox HCA case, the virtual switch is the HCA's Eswitch.
    
    To support this, an new FDB flow table are created with level 0 and
    linked to the existing FDB flow table in legacy mode. By default,
    VEPA is turned off and this FDB flow table is empty. When VEPA is
    turned on, two rules are created. One rule to forward on uplink vport
    traffic to the legacy FDB. The other rule forward all other traffic
    to uplink vport.
    
    Other design alternatives were not chosen as explained below:
    1. Create a forward rule in ACL flow table (most efficient design).
    This approach is the not chosen because firmware does not support
    forward rule to uplink vport (0xffff) for ACL flow table.
    2. Add additional source port criteria in all the FDB rules to make the
    FDB rules to be received rules only. This approach is not chosen because
    it is not efficient as there can many rules in the FDB and VEPA mode
    cannot be controlled per vport.
    3. Add a highest prioirty flow group in the existing legacy FDB Flow
    Table instead of a new flow table. This approoach does not work because the
    new flow group has the same match criteria as the promiscuous flow group
    and mlx5_add_flow_rules does not allow specifying flow group.
    
    Signed-off-by: default avatarHuy Nguyen <huyn@mellanox.com>
    Signed-off-by: default avatarSaeed Mahameed <saeedm@mellanox.com>
    8da202b2