• Ioana Ciocoi Radulescu's avatar
    dpaa2-eth: Add flow steering support without masking · 2d680237
    Ioana Ciocoi Radulescu authored
    
    
    On platforms that lack a TCAM (like LS1088A), masking of
    flow steering keys is not supported. Until now we didn't
    offer flow steering capabilities at all on these platforms,
    since our driver implementation configured a "comprehensive"
    FS key (containing all supported header fields), with masks
    used to ignore the fields not present in the rules provided
    by the user.
    
    We now allow ethtool rules that share a common key (i.e. have
    the same header fields). The FS key is now kept in the driver
    private data and initialized when the first rule is added to
    an empty table, rather than at probe time. If a rule with a new
    composition key is wanted, the user must first manually delete
    all previous rules.
    
    When building a FS table entry to pass to firmware, we still use
    the old building algorithm, which assumes an all-supported-fields
    key, and later collapse the fields which aren't actually needed.
    
    Masked rules are not supported; if provided, the mask value
    will be ignored. For firmware versions older than MC10.7.0
    (that only offer the legacy ABIs for configuring distribution
    keys) flow steering without masking support remains unavailable.
    
    Signed-off-by: default avatarIoana Radulescu <ruxandra.radulescu@nxp.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    2d680237