• Or Gerlitz's avatar
    net/mlx5e: Support header re-write of partial fields in TC pedit offload · 2b64beba
    Or Gerlitz authored
    Using a per field mask field, the TC pedit action supports modifying
    partial fields. E.g if using the TC tool, the following example would
    make the kernel to only re-write two bytes of the src ip address:
    
    tc filter add dev enp1s0 protocol ip parent ffff: prio 30
    	flower skip_sw ip_proto udp dst_port 8001
    	action pedit ex munge ip src set 10.1.0.0 retain 0xffff0000
    
    We add driver support for offload these partial re-writes, by setting
    the per FW action offset-in-field and length-from-offset attributes.
    
    The 1st bit set in the mask specifies both the offset and the right
    shift to apply on the value such that the 1st bit which needs to be
    set will reside in bit 0 of the FW data field.
    Signed-off-by: default avatarOr Gerlitz <ogerlitz@mellanox.com>
    Reviewed-by: default avatarPaul Blakey <paulb@mellanox.com>
    Signed-off-by: default avatarSaeed Mahameed <saeedm@mellanox.com>
    2b64beba
en_tc.c 58.6 KB