< TEST_PROGS=toeplitz.py TEST_GEN_PROGS="" run_tests make: Entering directory '/srv/vmksft/testing/wt-24/tools/testing/selftests' make[1]: Entering directory '/srv/vmksft/testing/wt-24/tools/testing/selftests/drivers/net/hw' make[1]: Nothing to be done for 'all'. make[1]: Leaving directory '/srv/vmksft/testing/wt-24/tools/testing/selftests/drivers/net/hw' make[1]: Nothing to be done for 'all'. make[1]: Entering directory '/srv/vmksft/testing/wt-24/tools/testing/selftests/drivers/net/hw' # overriding timeout to 720 # selftests: drivers/net/hw: toeplitz.py # TAP version 13 # 1..12 # # Exception| Traceback (most recent call last): # # Exception| File "/srv/vmksft/testing/wt-24/tools/testing/selftests/net/lib/py/ksft.py", line 420, in ksft_run # # Exception| func(*args) # # Exception| ~~~~^^^^^^^ # # Exception| File "/srv/vmksft/testing/wt-24/tools/testing/selftests/drivers/net/hw/./toeplitz.py", line 194, in test # # Exception| with bkg(" ".join(rx_cmd), ksft_ready=True, exit_wait=True) as rx_proc: # # Exception| ~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ # # Exception| File "/srv/vmksft/testing/wt-24/tools/testing/selftests/net/lib/py/utils.py", line 182, in __exit__ # # Exception| return self.process(terminate=terminate, fail=self.check_fail) # # Exception| ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ # # Exception| File "/srv/vmksft/testing/wt-24/tools/testing/selftests/net/lib/py/utils.py", line 117, in process # # Exception| raise CmdExitFailure("Command failed", self) # # Exception| net.lib.py.utils.CmdExitFailure: Command failed # # Exception| CMD: /srv/vmksft/testing/wt-24/tools/testing/selftests/drivers/net/hw/toeplitz -4 -t -d 60320 -i enp1s0 -T 4000 -s -v # # Exception| EXIT: 43 # # Exception| STDERR: RSS indirection table size: 256 # # Exception| cpu 0: rx_hash 0x53b7d79e [saddr 192.0.3.2 daddr 192.0.3.1 sport 60644 dport 60320] != expected 0xcf8d5a21 # # Exception| cpu 0: rx_hash 0x3ebf798f [saddr 192.0.3.2 daddr 192.0.3.1 sport 60678 dport 60320] != expected 0x65f97d50 # # Exception| cpu 4: rx_hash 0x984e8aa8 [saddr 192.0.3.2 daddr 192.0.3.1 sport 60660 dport 60320] != expected 0x2304343a # # Exception| cpu 4: rx_hash 0x4e90e4e4 [saddr 192.0.3.2 daddr 192.0.3.1 sport 60672 dport 60320] != expected 0xb397b5e4 # # Exception| cpu 4: rx_hash 0xf6872a51 [saddr 192.0.3.2 daddr 192.0.3.1 sport 60684 dport 60320] != expected 0xd8a0d1be # # Exception| cpu 4: rx_hash 0xdaa35060 [saddr 192.0.3.2 daddr 192.0.3.1 sport 60690 dport 60320] != expected 0x3b55ab27 # # Exception| cpu 4: rx_hash 0x62b49ed5 [saddr 192.0.3.2 daddr 192.0.3.1 sport 60702 dport 60320] != expected 0x5062cf7d # # Exception| cpu 4: rx_hash 0xf797ee9f [saddr 192.0.3.2 daddr 192.0.3.1 sport 60752 dport 60320] != expected 0xa43c8079 # # Exception| cpu 5: rx_hash 0xeba0192b [saddr 192.0.3.2 daddr 192.0.3.1 sport 60648 dport 60320] != expected 0xa4ba3e7b # # Exception| cpu 5: rx_hash 0x84893ea6 [saddr 192.0.3.2 daddr 192.0.3.1 sport 60708 dport 60320] != expected 0xf7f6ba85 # # Exception| cpu 5: rx_hash 0x3c9ef013 [saddr 192.0.3.2 daddr 192.0.3.1 sport 60712 dport 60320] != expected 0x9cc1dedf # # Exception| cpu 5: rx_hash 0x10ba8a22 [saddr 192.0.3.2 daddr 192.0.3.1 sport 60726 dport 60320] != expected 0x7f34a446 # # Exception| cpu 5: rx_hash 0xa8ad4497 [saddr 192.0.3.2 daddr 192.0.3.1 sport 60730 dport 60320] != expected 0x1403c01c # # Exception| cpu 5: rx_hash 0x138bc770 [saddr 192.0.3.2 daddr 192.0.3.1 sport 60740 dport 60320] != expected 0xfa90560e # # Exception| cpu 0: rx_hash 0x104ac998 [saddr 192.0.3.2 daddr 192.0.3.1 sport 60766 dport 60320] != expected 0xab4094fb # # Exception| cpu 0: rx_hash 0x8599fa68 [saddr 192.0.3.2 daddr 192.0.3.1 sport 60792 dport 60320] != expected 0x8b6aeb42 # # Exception| cpu 0: rx_hash 0x59ea3cef [saddr 192.0.3.2 daddr 192.0.3.1 sport 60848 dport 60320] != expected 0xd4cb4131 # # Exception| cpu 4: rx_hash 0x606554f3 [saddr 192.0.3.2 daddr 192.0.3.1 sport 60760 dport 60320] != expected 0x7d2e5c4f # # Exception| cpu 4: rx_hash 0x6185d387 [saddr 192.0.3.2 daddr 192.0.3.1 sport 60780 dport 60320] != expected 0xd5c63d35 # # Exception| cpu 4: rx_hash 0xaa7c8eb1 [saddr 192.0.3.2 daddr 192.0.3.1 sport 60796 dport 60320] != expected 0x394f532e # # Exception| cpu 4: rx_hash 0xe3dc7bc6 [saddr 192.0.3.2 daddr 192.0.3.1 sport 60818 dport 60320] != expected 0x46c486e4 # # Exception| cpu 4: rx_hash 0x2be42818 [saddr 192.0.3.2 daddr 192.0.3.1 sport 60824 dport 60320] != expected 0xfb9d2a0a # # Exception| cpu 4: rx_hash 0xbdf61500 [saddr 192.0.3.2 daddr 192.0.3.1 sport 60836 dport 60320] != expected 0x8a679746 # # Exception| cpu 4: rx_hash 0x0620d55d [saddr 192.0.3.2 daddr 192.0.3.1 sport 60850 dport 60320] != expected 0xb08031e9 # # Exception| cpu 5: rx_hash 0x4e60a75e [saddr 192.0.3.2 daddr 192.0.3.1 sport 60776 dport 60320] != expected 0x67e38559 # # Exception| cpu 5: rx_hash 0xe01d752e [saddr 192.0.3.2 daddr 192.0.3.1 sport 60808 dport 60320] != expected 0x17144411 # # Exception| cpu 5: rx_hash 0x921361d9 [saddr 192.0.3.2 daddr 192.0.3.1 sport 60832 dport 60320] != expected 0x38422f2a # # Exception| cpu 0: rx_hash 0xce188683 [saddr 192.0.3.2 daddr 192.0.3.1 sport 60856 dport 60320] != expected 0xdd99d07 # # Exception| cpu 0: rx_hash 0x2935e23e [saddr 192.0.3.2 daddr 192.0.3.1 sport 60894 dport 60320] != expected 0xd6d1b938 # # Exception| cpu 0: rx_hash 0xa7a67b83 [saddr 192.0.3.2 daddr 192.0.3.1 sport 60950 dport 60320] != expected 0xe8dcceda # # Exception| cpu 0: rx_hash 0x31b4469b [saddr 192.0.3.2 daddr 192.0.3.1 sport 60970 dport 60320] != expected 0x99267396 # # Exception| cpu 4: rx_hash 0x92e32263 [saddr 192.0.3.2 daddr 192.0.3.1 sport 60872 dport 60320] != expected 0xec361f97 # # Exception| cpu 4: rx_hash 0x58faf821 [saddr 192.0.3.2 daddr 192.0.3.1 sport 60908 dport 60320] != expected 0xa85710f6 # # Exception| cpu 4: rx_hash 0x2b146ba2 [saddr 192.0.3.2 daddr 192.0.3.1 sport 60912 dport 60320] != expected 0x2fe91ab7 # # Exception| cpu 4: rx_hash 0xf98c1545 [saddr 192.0.3.2 daddr 192.0.3.1 sport 60960 dport 60320] != expected 0x247fdf78 # # Exception| cpu 4: rx_hash 0xd669619c [saddr 192.0.3.2 daddr 192.0.3.1 sport 60964 dport 60320] != expected 0x965a6714 # # Exception| cpu 4: rx_hash 0x419bdbf0 [saddr 192.0.3.2 daddr 192.0.3.1 sport 60972 dport 60320] != expected 0x4f48bb22 # # Exception| cpu 5: rx_hash 0xbe371be8 [saddr 192.0.3.2 daddr 192.0.3.1 sport 60862 dport 60320] != expected 0xdbb755b3 # # Exception| cpu 5: rx_hash 0xbec75852 [saddr 192.0.3.2 daddr 192.0.3.1 sport 60886 dport 60320] != expected 0xfc3650e # # Exception| cpu 5: rx_hash 0xe32c387c [saddr 192.0.3.2 daddr 192.0.3.1 sport 60922 dport 60320] != expected 0x92b0b659 # # Exception| cpu 5: rx_hash 0x6c5f26b5 [saddr 192.0.3.2 daddr 192.0.3.1 sport 60934 dport 60320] != expected 0x455a0c1 # # Exception| cpu 5: rx_hash 0xd789e6e8 [saddr 192.0.3.2 daddr 192.0.3.1 sport 60944 dport 60320] != expected 0x3eb2066e # # Exception| cpu 5: rx_hash 0x32754873 [saddr 192.0.3.2 daddr 192.0.3.1 sport 60976 dport 60320] != expected 0xc8f6b163 # # Exception| count: pass=0 nohash=0 fail=43 # # Exception| # not ok 1 toeplitz.test.tcp_ipv4 # # Receiver output: # # # # RSS indirection table size: 256 # # # cpu 4: rx_hash 0xa62d62c9 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 48998 dport 49523] OK # # # cpu 4: rx_hash 0xb266f790 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 49060 dport 49523] OK # # # cpu 0: rx_hash 0x321ed64d [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 49012 dport 49523] OK # # # cpu 0: rx_hash 0x8a0918f8 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 49016 dport 49523] OK # # # cpu 0: rx_hash 0x0850b0b9 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 49030 dport 49523] OK # # # cpu 0: rx_hash 0xec4c9956 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 49042 dport 49523] OK # # # cpu 0: rx_hash 0x545b57e3 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 49054 dport 49523] OK # # # cpu 5: rx_hash 0x43218fe8 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 48942 dport 49523] OK # # # cpu 5: rx_hash 0xa73da607 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 48954 dport 49523] OK # # # cpu 5: rx_hash 0x43d1cc52 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 48966 dport 49523] OK # # # cpu 5: rx_hash 0xd7e278d6 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 48980 dport 49523] OK # # # cpu 5: rx_hash 0x89c81610 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 48994 dport 49523] OK # # # cpu 5: rx_hash 0xc068e367 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 49036 dport 49523] OK # # # cpu 5: rx_hash 0x567ade7f [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 49072 dport 49523] OK # # # cpu 4: rx_hash 0x9d73c0f3 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 49096 dport 49523] OK # # # cpu 4: rx_hash 0x26a500ae [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 49118 dport 49523] OK # # # cpu 4: rx_hash 0x9c934787 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 49148 dport 49523] OK # # # cpu 0: rx_hash 0x9e428da1 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 49082 dport 49523] OK # # # cpu 0: rx_hash 0xed5c5d98 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 49102 dport 49523] OK # # # cpu 0: rx_hash 0x274587da [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 49130 dport 49523] OK # # # cpu 0: rx_hash 0xa1f81bbf [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 49184 dport 49523] OK # # # cpu 0: rx_hash 0x6a014689 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 49200 dport 49523] OK # # # cpu 0: rx_hash 0x35cbaf3b [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 49202 dport 49523] OK # # # cpu 5: rx_hash 0xc17827a9 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 49104 dport 49523] OK # # # cpu 5: rx_hash 0x0b61fdeb [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 49140 dport 49523] OK # # # cpu 5: rx_hash 0x6be1c1fd [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 49156 dport 49523] OK # # # cpu 5: rx_hash 0xd03701a0 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 49170 dport 49523] OK # # # cpu 5: rx_hash 0x46253cb8 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 49198 dport 49523] OK # # # cpu 4: rx_hash 0xd216883c [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 49212 dport 49523] OK # # # cpu 4: rx_hash 0x353bec81 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 49242 dport 49523] OK # # # cpu 4: rx_hash 0x451471ea [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 49244 dport 49523] OK # # # cpu 4: rx_hash 0x22b17730 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 49282 dport 49523] OK # # # cpu 4: rx_hash 0xe9482a06 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 49298 dport 49523] OK # # # cpu 4: rx_hash 0xb76244c0 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 49316 dport 49523] OK # # # cpu 0: rx_hash 0x44f4f69e [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 49256 dport 49523] OK # # # cpu 5: rx_hash 0x1a2edbe2 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 49206 dport 49523] OK # # # cpu 5: rx_hash 0x8eed2cdc [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 49228 dport 49523] OK # # # cpu 5: rx_hash 0x4735f876 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 49266 dport 49523] OK # # # cpu 5: rx_hash 0x68d08caf [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 49270 dport 49523] OK # # # cpu 5: rx_hash 0x7eba906a [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 49306 dport 49523] OK # # # cpu 5: rx_hash 0x50bf63c7 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 49322 dport 49523] OK # # # count: pass=41 nohash=0 fail=0 # ok 2 toeplitz.test.tcp_ipv6 # # Exception| Traceback (most recent call last): # # Exception| File "/srv/vmksft/testing/wt-24/tools/testing/selftests/net/lib/py/ksft.py", line 420, in ksft_run # # Exception| func(*args) # # Exception| ~~~~^^^^^^^ # # Exception| File "/srv/vmksft/testing/wt-24/tools/testing/selftests/drivers/net/hw/./toeplitz.py", line 194, in test # # Exception| with bkg(" ".join(rx_cmd), ksft_ready=True, exit_wait=True) as rx_proc: # # Exception| ~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ # # Exception| File "/srv/vmksft/testing/wt-24/tools/testing/selftests/net/lib/py/utils.py", line 182, in __exit__ # # Exception| return self.process(terminate=terminate, fail=self.check_fail) # # Exception| ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ # # Exception| File "/srv/vmksft/testing/wt-24/tools/testing/selftests/net/lib/py/utils.py", line 117, in process # # Exception| raise CmdExitFailure("Command failed", self) # # Exception| net.lib.py.utils.CmdExitFailure: Command failed # # Exception| CMD: /srv/vmksft/testing/wt-24/tools/testing/selftests/drivers/net/hw/toeplitz -4 -u -d 46685 -i enp1s0 -T 4000 -s -v # # Exception| EXIT: 44 # # Exception| STDERR: RSS indirection table size: 256 # # Exception| cpu 4: rx_hash 0x12563dbd [saddr 192.0.3.2 daddr 192.0.3.1 sport 51961 dport 46685] != expected 0x5d8d0509 # # Exception| cpu 4: rx_hash 0x12563dbd [saddr 192.0.3.2 daddr 192.0.3.1 sport 51961 dport 46685] != expected 0x5d8d0509 # # Exception| cpu 4: rx_hash 0x12563dbd [saddr 192.0.3.2 daddr 192.0.3.1 sport 45693 dport 46685] != expected 0xd5016df8 # # Exception| cpu 4: rx_hash 0x12563dbd [saddr 192.0.3.2 daddr 192.0.3.1 sport 45693 dport 46685] != expected 0xd5016df8 # # Exception| cpu 4: rx_hash 0x12563dbd [saddr 192.0.3.2 daddr 192.0.3.1 sport 39849 dport 46685] != expected 0xc9f90d40 # # Exception| cpu 4: rx_hash 0x12563dbd [saddr 192.0.3.2 daddr 192.0.3.1 sport 39849 dport 46685] != expected 0xc9f90d40 # # Exception| cpu 4: rx_hash 0x12563dbd [saddr 192.0.3.2 daddr 192.0.3.1 sport 41163 dport 46685] != expected 0x20bb9387 # # Exception| cpu 4: rx_hash 0x12563dbd [saddr 192.0.3.2 daddr 192.0.3.1 sport 41163 dport 46685] != expected 0x20bb9387 # # Exception| cpu 4: rx_hash 0x12563dbd [saddr 192.0.3.2 daddr 192.0.3.1 sport 58930 dport 46685] != expected 0xbb6c4dc0 # # Exception| cpu 4: rx_hash 0x12563dbd [saddr 192.0.3.2 daddr 192.0.3.1 sport 58930 dport 46685] != expected 0xbb6c4dc0 # # Exception| cpu 4: rx_hash 0x12563dbd [saddr 192.0.3.2 daddr 192.0.3.1 sport 44720 dport 46685] != expected 0x3394205c # # Exception| cpu 4: rx_hash 0x12563dbd [saddr 192.0.3.2 daddr 192.0.3.1 sport 44720 dport 46685] != expected 0x3394205c # # Exception| cpu 4: rx_hash 0x12563dbd [saddr 192.0.3.2 daddr 192.0.3.1 sport 44062 dport 46685] != expected 0x6859e560 # # Exception| cpu 4: rx_hash 0x12563dbd [saddr 192.0.3.2 daddr 192.0.3.1 sport 44062 dport 46685] != expected 0x6859e560 # # Exception| cpu 4: rx_hash 0x12563dbd [saddr 192.0.3.2 daddr 192.0.3.1 sport 47075 dport 46685] != expected 0x9a1f89fb # # Exception| cpu 4: rx_hash 0x12563dbd [saddr 192.0.3.2 daddr 192.0.3.1 sport 47075 dport 46685] != expected 0x9a1f89fb # # Exception| cpu 4: rx_hash 0x12563dbd [saddr 192.0.3.2 daddr 192.0.3.1 sport 54927 dport 46685] != expected 0xa98bf127 # # Exception| cpu 4: rx_hash 0x12563dbd [saddr 192.0.3.2 daddr 192.0.3.1 sport 54927 dport 46685] != expected 0xa98bf127 # # Exception| cpu 4: rx_hash 0x12563dbd [saddr 192.0.3.2 daddr 192.0.3.1 sport 42705 dport 46685] != expected 0xc1bd3fba # # Exception| cpu 4: rx_hash 0x12563dbd [saddr 192.0.3.2 daddr 192.0.3.1 sport 42705 dport 46685] != expected 0xc1bd3fba # # Exception| cpu 4: rx_hash 0x12563dbd [saddr 192.0.3.2 daddr 192.0.3.1 sport 52167 dport 46685] != expected 0xf6f45e7c # # Exception| cpu 4: rx_hash 0x12563dbd [saddr 192.0.3.2 daddr 192.0.3.1 sport 52167 dport 46685] != expected 0xf6f45e7c # # Exception| cpu 4: rx_hash 0x12563dbd [saddr 192.0.3.2 daddr 192.0.3.1 sport 40081 dport 46685] != expected 0x438f049 # # Exception| cpu 4: rx_hash 0x12563dbd [saddr 192.0.3.2 daddr 192.0.3.1 sport 40081 dport 46685] != expected 0x438f049 # # Exception| cpu 4: rx_hash 0x12563dbd [saddr 192.0.3.2 daddr 192.0.3.1 sport 39517 dport 46685] != expected 0x596a8c9e # # Exception| cpu 4: rx_hash 0x12563dbd [saddr 192.0.3.2 daddr 192.0.3.1 sport 39517 dport 46685] != expected 0x596a8c9e # # Exception| cpu 4: rx_hash 0x12563dbd [saddr 192.0.3.2 daddr 192.0.3.1 sport 50850 dport 46685] != expected 0x67824aaf # # Exception| cpu 4: rx_hash 0x12563dbd [saddr 192.0.3.2 daddr 192.0.3.1 sport 50850 dport 46685] != expected 0x67824aaf # # Exception| cpu 4: rx_hash 0x12563dbd [saddr 192.0.3.2 daddr 192.0.3.1 sport 57241 dport 46685] != expected 0x1a7dd3b5 # # Exception| cpu 4: rx_hash 0x12563dbd [saddr 192.0.3.2 daddr 192.0.3.1 sport 57241 dport 46685] != expected 0x1a7dd3b5 # # Exception| cpu 4: rx_hash 0x12563dbd [saddr 192.0.3.2 daddr 192.0.3.1 sport 37887 dport 46685] != expected 0x3fe5e2b5 # # Exception| cpu 4: rx_hash 0x12563dbd [saddr 192.0.3.2 daddr 192.0.3.1 sport 37887 dport 46685] != expected 0x3fe5e2b5 # # Exception| cpu 4: rx_hash 0x12563dbd [saddr 192.0.3.2 daddr 192.0.3.1 sport 58459 dport 46685] != expected 0x78ead7bc # # Exception| cpu 4: rx_hash 0x12563dbd [saddr 192.0.3.2 daddr 192.0.3.1 sport 58459 dport 46685] != expected 0x78ead7bc # # Exception| cpu 4: rx_hash 0x12563dbd [saddr 192.0.3.2 daddr 192.0.3.1 sport 55934 dport 46685] != expected 0xa50888a1 # # Exception| cpu 4: rx_hash 0x12563dbd [saddr 192.0.3.2 daddr 192.0.3.1 sport 55934 dport 46685] != expected 0xa50888a1 # # Exception| cpu 4: rx_hash 0x12563dbd [saddr 192.0.3.2 daddr 192.0.3.1 sport 52100 dport 46685] != expected 0xa10b9493 # # Exception| cpu 4: rx_hash 0x12563dbd [saddr 192.0.3.2 daddr 192.0.3.1 sport 52100 dport 46685] != expected 0xa10b9493 # # Exception| cpu 4: rx_hash 0x12563dbd [saddr 192.0.3.2 daddr 192.0.3.1 sport 48976 dport 46685] != expected 0x6647fe9b # # Exception| cpu 4: rx_hash 0x12563dbd [saddr 192.0.3.2 daddr 192.0.3.1 sport 48976 dport 46685] != expected 0x6647fe9b # # Exception| cpu 4: rx_hash 0x12563dbd [saddr 192.0.3.2 daddr 192.0.3.1 sport 54027 dport 46685] != expected 0xb745d7d1 # # Exception| cpu 4: rx_hash 0x12563dbd [saddr 192.0.3.2 daddr 192.0.3.1 sport 54027 dport 46685] != expected 0xb745d7d1 # # Exception| cpu 4: rx_hash 0x12563dbd [saddr 192.0.3.2 daddr 192.0.3.1 sport 38741 dport 46685] != expected 0x66dbf12d # # Exception| cpu 4: rx_hash 0x12563dbd [saddr 192.0.3.2 daddr 192.0.3.1 sport 38741 dport 46685] != expected 0x66dbf12d # # Exception| count: pass=0 nohash=0 fail=44 # # Exception| # not ok 3 toeplitz.test.udp_ipv4 # # Exception| Traceback (most recent call last): # # Exception| File "/srv/vmksft/testing/wt-24/tools/testing/selftests/net/lib/py/ksft.py", line 420, in ksft_run # # Exception| func(*args) # # Exception| ~~~~^^^^^^^ # # Exception| File "/srv/vmksft/testing/wt-24/tools/testing/selftests/drivers/net/hw/./toeplitz.py", line 194, in test # # Exception| with bkg(" ".join(rx_cmd), ksft_ready=True, exit_wait=True) as rx_proc: # # Exception| ~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ # # Exception| File "/srv/vmksft/testing/wt-24/tools/testing/selftests/net/lib/py/utils.py", line 182, in __exit__ # # Exception| return self.process(terminate=terminate, fail=self.check_fail) # # Exception| ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ # # Exception| File "/srv/vmksft/testing/wt-24/tools/testing/selftests/net/lib/py/utils.py", line 117, in process # # Exception| raise CmdExitFailure("Command failed", self) # # Exception| net.lib.py.utils.CmdExitFailure: Command failed # # Exception| CMD: /srv/vmksft/testing/wt-24/tools/testing/selftests/drivers/net/hw/toeplitz -6 -u -d 44824 -i enp1s0 -T 4000 -s -v # # Exception| EXIT: 42 # # Exception| STDERR: RSS indirection table size: 256 # # Exception| cpu 5: rx_hash 0xe3d6a5a3 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 40340 dport 44824] != expected 0x986b216f # # Exception| cpu 5: rx_hash 0xe3d6a5a3 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 40340 dport 44824] != expected 0x986b216f # # Exception| cpu 5: rx_hash 0xe3d6a5a3 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 50268 dport 44824] != expected 0x8489878b # # Exception| cpu 5: rx_hash 0xe3d6a5a3 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 50268 dport 44824] != expected 0x8489878b # # Exception| cpu 5: rx_hash 0xe3d6a5a3 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 47855 dport 44824] != expected 0xea1743d5 # # Exception| cpu 5: rx_hash 0xe3d6a5a3 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 47855 dport 44824] != expected 0xea1743d5 # # Exception| cpu 5: rx_hash 0xe3d6a5a3 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 49626 dport 44824] != expected 0x364941e1 # # Exception| cpu 5: rx_hash 0xe3d6a5a3 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 49626 dport 44824] != expected 0x364941e1 # # Exception| cpu 5: rx_hash 0xe3d6a5a3 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 36879 dport 44824] != expected 0x55475558 # # Exception| cpu 5: rx_hash 0xe3d6a5a3 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 36879 dport 44824] != expected 0x55475558 # # Exception| cpu 5: rx_hash 0xe3d6a5a3 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 32792 dport 44824] != expected 0x88cfbf3c # # Exception| cpu 5: rx_hash 0xe3d6a5a3 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 32792 dport 44824] != expected 0x88cfbf3c # # Exception| cpu 5: rx_hash 0xe3d6a5a3 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 44231 dport 44824] != expected 0xe8a281e2 # # Exception| cpu 5: rx_hash 0xe3d6a5a3 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 44231 dport 44824] != expected 0xe8a281e2 # # Exception| cpu 5: rx_hash 0xe3d6a5a3 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 51792 dport 44824] != expected 0x26799419 # # Exception| cpu 5: rx_hash 0xe3d6a5a3 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 51792 dport 44824] != expected 0x26799419 # # Exception| cpu 5: rx_hash 0xe3d6a5a3 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 49827 dport 44824] != expected 0x1035d333 # # Exception| cpu 5: rx_hash 0xe3d6a5a3 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 49827 dport 44824] != expected 0x1035d333 # # Exception| cpu 5: rx_hash 0xe3d6a5a3 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 38103 dport 44824] != expected 0x25e22b9d # # Exception| cpu 5: rx_hash 0xe3d6a5a3 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 38103 dport 44824] != expected 0x25e22b9d # # Exception| cpu 5: rx_hash 0xe3d6a5a3 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 50828 dport 44824] != expected 0xcaae6cbf # # Exception| cpu 5: rx_hash 0xe3d6a5a3 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 50828 dport 44824] != expected 0xcaae6cbf # # Exception| cpu 5: rx_hash 0xe3d6a5a3 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 38088 dport 44824] != expected 0xb65382c8 # # Exception| cpu 5: rx_hash 0xe3d6a5a3 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 38088 dport 44824] != expected 0xb65382c8 # # Exception| cpu 5: rx_hash 0xe3d6a5a3 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 53419 dport 44824] != expected 0x90535aeb # # Exception| cpu 5: rx_hash 0xe3d6a5a3 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 53419 dport 44824] != expected 0x90535aeb # # Exception| cpu 5: rx_hash 0xe3d6a5a3 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 59330 dport 44824] != expected 0xafd77588 # # Exception| cpu 5: rx_hash 0xe3d6a5a3 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 59330 dport 44824] != expected 0xafd77588 # # Exception| cpu 5: rx_hash 0xe3d6a5a3 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 37431 dport 44824] != expected 0x22efd670 # # Exception| cpu 5: rx_hash 0xe3d6a5a3 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 37431 dport 44824] != expected 0x22efd670 # # Exception| cpu 5: rx_hash 0xe3d6a5a3 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 35026 dport 44824] != expected 0xb8e162b3 # # Exception| cpu 5: rx_hash 0xe3d6a5a3 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 35026 dport 44824] != expected 0xb8e162b3 # # Exception| cpu 5: rx_hash 0xe3d6a5a3 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 51497 dport 44824] != expected 0x506cb # # Exception| cpu 5: rx_hash 0xe3d6a5a3 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 51497 dport 44824] != expected 0x506cb # # Exception| cpu 5: rx_hash 0xe3d6a5a3 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 56477 dport 44824] != expected 0x1ac123e3 # # Exception| cpu 5: rx_hash 0xe3d6a5a3 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 56477 dport 44824] != expected 0x1ac123e3 # # Exception| cpu 5: rx_hash 0xe3d6a5a3 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 53285 dport 44824] != expected 0x4ef1564a # # Exception| cpu 5: rx_hash 0xe3d6a5a3 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 53285 dport 44824] != expected 0x4ef1564a # # Exception| cpu 5: rx_hash 0xe3d6a5a3 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 33276 dport 44824] != expected 0x95e88c46 # # Exception| cpu 5: rx_hash 0xe3d6a5a3 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 33276 dport 44824] != expected 0x95e88c46 # # Exception| cpu 5: rx_hash 0xe3d6a5a3 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 38980 dport 44824] != expected 0xe3837015 # # Exception| cpu 5: rx_hash 0xe3d6a5a3 [saddr 2001:db8:1::2 daddr 2001:db8:1::1 sport 38980 dport 44824] != expected 0xe3837015 # # Exception| count: pass=0 nohash=0 fail=42 # # Exception| # not ok 4 toeplitz.test.udp_ipv6 # # Exception| Traceback (most recent call last): # # Exception| File "/srv/vmksft/testing/wt-24/tools/testing/selftests/net/lib/py/ksft.py", line 420, in ksft_run # # Exception| func(*args) # # Exception| ~~~~^^^^^^^ # # Exception| File "/srv/vmksft/testing/wt-24/tools/testing/selftests/drivers/net/hw/./toeplitz.py", line 182, in test # # Exception| irq_cpus = ",".join([str(x) for x in _get_irq_cpus(cfg)]) # # Exception| ~~~~~~~~~~~~~^^^^^ # # Exception| File "/srv/vmksft/testing/wt-24/tools/testing/selftests/drivers/net/hw/./toeplitz.py", line 67, in _get_irq_cpus # # Exception| cpus.append(_get_cpu_for_irq(napis[queues[name]["napi-id"]]["irq"])) # # Exception| ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ # # Exception| File "/srv/vmksft/testing/wt-24/tools/testing/selftests/drivers/net/hw/./toeplitz.py", line 47, in _get_cpu_for_irq # # Exception| raise KsftFailEx(f"IRQ{irq} is not mapped to a single core: {data}") # # Exception| net.lib.py.ksft.KsftFailEx: IRQ36 is not mapped to a single core: 0-5 # # Exception| # not ok 5 toeplitz.test.rss_tcp_ipv4 # # Exception| Traceback (most recent call last): # # Exception| File "/srv/vmksft/testing/wt-24/tools/testing/selftests/net/lib/py/ksft.py", line 420, in ksft_run # # Exception| func(*args) # # Exception| ~~~~^^^^^^^ # # Exception| File "/srv/vmksft/testing/wt-24/tools/testing/selftests/drivers/net/hw/./toeplitz.py", line 182, in test # # Exception| irq_cpus = ",".join([str(x) for x in _get_irq_cpus(cfg)]) # # Exception| ~~~~~~~~~~~~~^^^^^ # # Exception| File "/srv/vmksft/testing/wt-24/tools/testing/selftests/drivers/net/hw/./toeplitz.py", line 67, in _get_irq_cpus # # Exception| cpus.append(_get_cpu_for_irq(napis[queues[name]["napi-id"]]["irq"])) # # Exception| ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ # # Exception| File "/srv/vmksft/testing/wt-24/tools/testing/selftests/drivers/net/hw/./toeplitz.py", line 47, in _get_cpu_for_irq # # Exception| raise KsftFailEx(f"IRQ{irq} is not mapped to a single core: {data}") # # Exception| net.lib.py.ksft.KsftFailEx: IRQ36 is not mapped to a single core: 0-5 # # Exception| # not ok 6 toeplitz.test.rss_tcp_ipv6 # # Exception| Traceback (most recent call last): # # Exception| File "/srv/vmksft/testing/wt-24/tools/testing/selftests/net/lib/py/ksft.py", line 420, in ksft_run # # Exception| func(*args) # # Exception| ~~~~^^^^^^^ # # Exception| File "/srv/vmksft/testing/wt-24/tools/testing/selftests/drivers/net/hw/./toeplitz.py", line 182, in test # # Exception| irq_cpus = ",".join([str(x) for x in _get_irq_cpus(cfg)]) # # Exception| ~~~~~~~~~~~~~^^^^^ # # Exception| File "/srv/vmksft/testing/wt-24/tools/testing/selftests/drivers/net/hw/./toeplitz.py", line 67, in _get_irq_cpus # # Exception| cpus.append(_get_cpu_for_irq(napis[queues[name]["napi-id"]]["irq"])) # # Exception| ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ # # Exception| File "/srv/vmksft/testing/wt-24/tools/testing/selftests/drivers/net/hw/./toeplitz.py", line 47, in _get_cpu_for_irq # # Exception| raise KsftFailEx(f"IRQ{irq} is not mapped to a single core: {data}") # # Exception| net.lib.py.ksft.KsftFailEx: IRQ36 is not mapped to a single core: 0-5 # # Exception| # not ok 7 toeplitz.test.rss_udp_ipv4 # # Exception| Traceback (most recent call last): # # Exception| File "/srv/vmksft/testing/wt-24/tools/testing/selftests/net/lib/py/ksft.py", line 420, in ksft_run # # Exception| func(*args) # # Exception| ~~~~^^^^^^^ # # Exception| File "/srv/vmksft/testing/wt-24/tools/testing/selftests/drivers/net/hw/./toeplitz.py", line 182, in test # # Exception| irq_cpus = ",".join([str(x) for x in _get_irq_cpus(cfg)]) # # Exception| ~~~~~~~~~~~~~^^^^^ # # Exception| File "/srv/vmksft/testing/wt-24/tools/testing/selftests/drivers/net/hw/./toeplitz.py", line 67, in _get_irq_cpus # # Exception| cpus.append(_get_cpu_for_irq(napis[queues[name]["napi-id"]]["irq"])) # # Exception| ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ # # Exception| File "/srv/vmksft/testing/wt-24/tools/testing/selftests/drivers/net/hw/./toeplitz.py", line 47, in _get_cpu_for_irq # # Exception| raise KsftFailEx(f"IRQ{irq} is not mapped to a single core: {data}") # # Exception| net.lib.py.ksft.KsftFailEx: IRQ36 is not mapped to a single core: 0-5 # # Exception| # not ok 8 toeplitz.test.rss_udp_ipv6 # # Exception| Traceback (most recent call last): # # Exception| File "/srv/vmksft/testing/wt-24/tools/testing/selftests/net/lib/py/ksft.py", line 420, in ksft_run # # Exception| func(*args) # # Exception| ~~~~^^^^^^^ # # Exception| File "/srv/vmksft/testing/wt-24/tools/testing/selftests/drivers/net/hw/./toeplitz.py", line 187, in test # # Exception| rps_cpus = _get_unused_rps_cpus(cfg, count=2) # # Exception| File "/srv/vmksft/testing/wt-24/tools/testing/selftests/drivers/net/hw/./toeplitz.py", line 80, in _get_unused_rps_cpus # # Exception| rx_cpus = set(_get_irq_cpus(cfg)) # # Exception| ~~~~~~~~~~~~~^^^^^ # # Exception| File "/srv/vmksft/testing/wt-24/tools/testing/selftests/drivers/net/hw/./toeplitz.py", line 67, in _get_irq_cpus # # Exception| cpus.append(_get_cpu_for_irq(napis[queues[name]["napi-id"]]["irq"])) # # Exception| ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ # # Exception| File "/srv/vmksft/testing/wt-24/tools/testing/selftests/drivers/net/hw/./toeplitz.py", line 47, in _get_cpu_for_irq # # Exception| raise KsftFailEx(f"IRQ{irq} is not mapped to a single core: {data}") # # Exception| net.lib.py.ksft.KsftFailEx: IRQ36 is not mapped to a single core: 0-5 # # Exception| # not ok 9 toeplitz.test.rps_tcp_ipv4 # # Exception| Traceback (most recent call last): # # Exception| File "/srv/vmksft/testing/wt-24/tools/testing/selftests/net/lib/py/ksft.py", line 420, in ksft_run # # Exception| func(*args) # # Exception| ~~~~^^^^^^^ # # Exception| File "/srv/vmksft/testing/wt-24/tools/testing/selftests/drivers/net/hw/./toeplitz.py", line 187, in test # # Exception| rps_cpus = _get_unused_rps_cpus(cfg, count=2) # # Exception| File "/srv/vmksft/testing/wt-24/tools/testing/selftests/drivers/net/hw/./toeplitz.py", line 80, in _get_unused_rps_cpus # # Exception| rx_cpus = set(_get_irq_cpus(cfg)) # # Exception| ~~~~~~~~~~~~~^^^^^ # # Exception| File "/srv/vmksft/testing/wt-24/tools/testing/selftests/drivers/net/hw/./toeplitz.py", line 67, in _get_irq_cpus # # Exception| cpus.append(_get_cpu_for_irq(napis[queues[name]["napi-id"]]["irq"])) # # Exception| ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ # # Exception| File "/srv/vmksft/testing/wt-24/tools/testing/selftests/drivers/net/hw/./toeplitz.py", line 47, in _get_cpu_for_irq # # Exception| raise KsftFailEx(f"IRQ{irq} is not mapped to a single core: {data}") # # Exception| net.lib.py.ksft.KsftFailEx: IRQ36 is not mapped to a single core: 0-5 # # Exception| # not ok 10 toeplitz.test.rps_tcp_ipv6 # # Exception| Traceback (most recent call last): # # Exception| File "/srv/vmksft/testing/wt-24/tools/testing/selftests/net/lib/py/ksft.py", line 420, in ksft_run # # Exception| func(*args) # # Exception| ~~~~^^^^^^^ # # Exception| File "/srv/vmksft/testing/wt-24/tools/testing/selftests/drivers/net/hw/./toeplitz.py", line 187, in test # # Exception| rps_cpus = _get_unused_rps_cpus(cfg, count=2) # # Exception| File "/srv/vmksft/testing/wt-24/tools/testing/selftests/drivers/net/hw/./toeplitz.py", line 80, in _get_unused_rps_cpus # # Exception| rx_cpus = set(_get_irq_cpus(cfg)) # # Exception| ~~~~~~~~~~~~~^^^^^ # # Exception| File "/srv/vmksft/testing/wt-24/tools/testing/selftests/drivers/net/hw/./toeplitz.py", line 67, in _get_irq_cpus # # Exception| cpus.append(_get_cpu_for_irq(napis[queues[name]["napi-id"]]["irq"])) # # Exception| ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ # # Exception| File "/srv/vmksft/testing/wt-24/tools/testing/selftests/drivers/net/hw/./toeplitz.py", line 47, in _get_cpu_for_irq # # Exception| raise KsftFailEx(f"IRQ{irq} is not mapped to a single core: {data}") # # Exception| net.lib.py.ksft.KsftFailEx: IRQ36 is not mapped to a single core: 0-5 # # Exception| # not ok 11 toeplitz.test.rps_udp_ipv4 # # Exception| Traceback (most recent call last): # # Exception| File "/srv/vmksft/testing/wt-24/tools/testing/selftests/net/lib/py/ksft.py", line 420, in ksft_run # # Exception| func(*args) # # Exception| ~~~~^^^^^^^ # # Exception| File "/srv/vmksft/testing/wt-24/tools/testing/selftests/drivers/net/hw/./toeplitz.py", line 187, in test # # Exception| rps_cpus = _get_unused_rps_cpus(cfg, count=2) # # Exception| File "/srv/vmksft/testing/wt-24/tools/testing/selftests/drivers/net/hw/./toeplitz.py", line 80, in _get_unused_rps_cpus # # Exception| rx_cpus = set(_get_irq_cpus(cfg)) # # Exception| ~~~~~~~~~~~~~^^^^^ # # Exception| File "/srv/vmksft/testing/wt-24/tools/testing/selftests/drivers/net/hw/./toeplitz.py", line 67, in _get_irq_cpus # # Exception| cpus.append(_get_cpu_for_irq(napis[queues[name]["napi-id"]]["irq"])) # # Exception| ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ # # Exception| File "/srv/vmksft/testing/wt-24/tools/testing/selftests/drivers/net/hw/./toeplitz.py", line 47, in _get_cpu_for_irq # # Exception| raise KsftFailEx(f"IRQ{irq} is not mapped to a single core: {data}") # # Exception| net.lib.py.ksft.KsftFailEx: IRQ36 is not mapped to a single core: 0-5 # # Exception| # not ok 12 toeplitz.test.rps_udp_ipv6 # # Totals: pass:1 fail:11 xfail:0 xpass:0 skip:0 error:0 not ok 1 1 selftests: drivers/net/hw: toeplitz.py # exit=1 make[1]: Leaving directory '/srv/vmksft/testing/wt-24/tools/testing/selftests/drivers/net/hw' make: Leaving directory '/srv/vmksft/testing/wt-24/tools/testing/selftests' xx__-> echo $? 0 xx__-> echo scan > /sys/kernel/debug/kmemleak xx__-> /opt/nipa/contest/scripts/env_check.py Comparing to existing state file: no differences detected. Current system state saved to /tmp/nipa-env-state.json xx__-> echo $? 0 xx__->