• Ido Schimmel's avatar
    selftests: forwarding: Add test for custom multipath hash · 511e8db5
    Ido Schimmel authored
    Test that when the hash policy is set to custom, traffic is distributed
    only according to the outer fields set in the fib_multipath_hash_fields
    sysctl.
    
    Each time set a different field and make sure traffic is only
    distributed when the field is changed in the packet stream.
    
    The test only verifies the behavior with non-encapsulated IPv4 and IPv6
    packets. Subsequent patches will add tests for IPv4/IPv6 overlays on top
    of IPv4/IPv6 underlay networks.
    
    Example output:
    
     # ./custom_multipath_hash.sh
     TEST: ping                                                          [ OK ]
     TEST: ping6                                                         [ OK ]
     INFO: Running IPv4 custom multipath hash tests
     TEST: Multipath hash field: Source IP (balanced)                    [ OK ]
     INFO: Packets sent on path1 / path2: 6353 / 6254
     TEST: Multipath hash field: Source IP (unbalanced)                  [ OK ]
     INFO: Packets sent on path1 / path2: 0 / 12600
     TEST: Multipath hash field: Destination IP (balanced)               [ OK ]
     INFO: Packets sent on path1 / path2: 6102 / 6502
     TEST: Multipath hash field: Destination IP (unbalanced)             [ OK ]
     INFO: Packets sent on path1 / path2: 1 / 12601
     TEST: Multipath hash field: Source port (balanced)                  [ OK ]
     INFO: Packets sent on path1 / path2: 16428 / 16345
     TEST: Multipath hash field: Source port (unbalanced)                [ OK ]
     INFO: Packets sent on path1 / path2: 32770 / 2
     TEST: Multipath hash field: Destination port (balanced)             [ OK ]
     INFO: Packets sent on path1 / path2: 16428 / 16345
     TEST: Multipath hash field: Destination port (unbalanced)           [ OK ]
     INFO: Packets sent on path1 / path2: 32770 / 2
     INFO: Running IPv6 custom multipath hash tests
     TEST: Multipath hash field: Source IP (balanced)                    [ OK ]
     INFO: Packets sent on path1 / path2: 6704 / 5903
     TEST: Multipath hash field: Source IP (unbalanced)                  [ OK ]
     INFO: Packets sent on path1 / path2: 12600 / 0
     TEST: Multipath hash field: Destination IP (balanced)               [ OK ]
     INFO: Packets sent on path1 / path2: 5551 / 7052
     TEST: Multipath hash field: Destination IP (unbalanced)             [ OK ]
     INFO: Packets sent on path1 / path2: 12603 / 0
     TEST: Multipath hash field: Flowlabel (balanced)                    [ OK ]
     INFO: Packets sent on path1 / path2: 8378 / 8080
     TEST: Multipath hash field: Flowlabel (unbalanced)                  [ OK ]
     INFO: Packets sent on path1 / path2: 2 / 12603
     TEST: Multipath hash field: Source port (balanced)                  [ OK ]
     INFO: Packets sent on path1 / path2: 16385 / 16388
     TEST: Multipath hash field: Source port (unbalanced)                [ OK ]
     INFO: Packets sent on path1 / path2: 0 / 32774
     TEST: Multipath hash field: Destination port (balanced)             [ OK ]
     INFO: Packets sent on path1 / path2: 16386 / 16390
     TEST: Multipath hash field: Destination port (unbalanced)           [ OK ]
     INFO: Packets sent on path1 / path2: 32771 / 2
    Signed-off-by: default avatarIdo Schimmel <idosch@nvidia.com>
    Reviewed-by: default avatarDavid Ahern <dsahern@kernel.org>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    511e8db5
custom_multipath_hash.sh 9.59 KB