make -C tools/testing/selftests TARGETS="net" TEST_PROGS=fib_tests.sh TESTT_GEN_PROGS="" run_tests make: Entering directory '/home/virtme/testing-1/tools/testing/selftests' make[1]: Entering directory '/home/virtme/testing-1/tools/testing/selftests/net' make[1]: Nothing to be done for 'all'. make[1]: Leaving directory '/home/virtme/testing-1/tools/testing/selftests/net' make[1]: Entering directory '/home/virtme/testing-1/tools/testing/selftests/net/lib' make[1]: Nothing to be done for 'all'. make[1]: Leaving directory '/home/virtme/testing-1/tools/testing/selftests/net/lib' make[1]: Entering directory '/home/virtme/testing-1/tools/testing/selftests/net' TAP version 13 1..1 # timeout set to 3600 # selftests: net: fib_tests.sh # 0.05 [+0.05] # 0.05 [+0.00] Single path route test # 0.20 [+0.15] Start point # 0.21 [+0.01] TEST: IPv4 fibmatch [ OK ] # 0.23 [+0.01] TEST: IPv6 fibmatch [ OK ] # 0.25 [+0.03] Nexthop device deleted # 0.26 [+0.01] TEST: IPv4 fibmatch - no route [ OK ] # 0.28 [+0.01] TEST: IPv6 fibmatch - no route [ OK ] # 0.34 [+0.07] # 0.34 [+0.00] Multipath route test # 0.58 [+0.24] Start point # 0.59 [+0.01] TEST: IPv4 fibmatch [ OK ] # 0.60 [+0.01] TEST: IPv6 fibmatch [ OK ] # 0.64 [+0.03] One nexthop device deleted # 0.65 [+0.01] TEST: IPv4 - multipath route removed on delete [ OK ] # 0.66 [+0.01] TEST: IPv6 - multipath down to single path [ OK ] # 0.69 [+0.03] Second nexthop device deleted # 0.70 [+0.01] TEST: IPv6 - no route [ OK ] # 0.76 [+0.07] # 0.76 [+0.00] Single path, admin down # 0.94 [+0.18] Start point # 0.95 [+0.01] TEST: IPv4 fibmatch [ OK ] # 0.97 [+0.01] TEST: IPv6 fibmatch [ OK ] # 0.98 [+0.01] Route deleted on down # 0.99 [+0.01] TEST: IPv4 fibmatch [ OK ] # 1.00 [+0.01] TEST: IPv6 fibmatch [ OK ] # 1.07 [+0.07] # 1.07 [+0.00] Admin down multipath # 1.32 [+0.25] Verify start point # 1.33 [+0.01] TEST: IPv4 fibmatch [ OK ] # 1.34 [+0.01] TEST: IPv6 fibmatch [ OK ] # 1.36 [+0.01] One device down, one up # 1.37 [+0.01] TEST: IPv4 fibmatch on down device [ OK ] # 1.39 [+0.02] TEST: IPv6 fibmatch on down device [ OK ] # 1.40 [+0.02] TEST: IPv4 fibmatch on up device [ OK ] # 1.42 [+0.02] TEST: IPv6 fibmatch on up device [ OK ] # 1.44 [+0.02] TEST: IPv4 flags on down device [ OK ] # 1.45 [+0.02] TEST: IPv6 flags on down device [ OK ] # 1.47 [+0.01] TEST: IPv4 flags on up device [ OK ] # 1.48 [+0.02] TEST: IPv6 flags on up device [ OK ] # 1.51 [+0.03] Other device down and up # 1.53 [+0.02] TEST: IPv4 fibmatch on down device [ OK ] # 1.54 [+0.02] TEST: IPv6 fibmatch on down device [ OK ] # 1.56 [+0.02] TEST: IPv4 fibmatch on up device [ OK ] # 1.57 [+0.02] TEST: IPv6 fibmatch on up device [ OK ] # 1.59 [+0.01] TEST: IPv4 flags on down device [ OK ] # 1.60 [+0.02] TEST: IPv6 flags on down device [ OK ] # 1.62 [+0.01] TEST: IPv4 flags on up device [ OK ] # 1.63 [+0.01] TEST: IPv6 flags on up device [ OK ] # 1.65 [+0.01] Both devices down # 1.66 [+0.01] TEST: IPv4 fibmatch [ OK ] # 1.67 [+0.01] TEST: IPv6 fibmatch [ OK ] # 1.77 [+0.10] # 1.78 [+0.00] Local carrier tests - single path # 2.00 [+0.22] Start point # 2.01 [+0.01] TEST: IPv4 fibmatch [ OK ] # 2.03 [+0.02] TEST: IPv6 fibmatch [ OK ] # 2.04 [+0.01] TEST: IPv4 - no linkdown flag [ OK ] # 2.06 [+0.02] TEST: IPv6 - no linkdown flag [ OK ] # 3.08 [+1.02] Carrier off on nexthop # 3.10 [+0.02] TEST: IPv4 fibmatch [ OK ] # 3.12 [+0.02] TEST: IPv6 fibmatch [ OK ] # 3.14 [+0.02] TEST: IPv4 - linkdown flag set [ OK ] # 3.16 [+0.02] TEST: IPv6 - linkdown flag set [ OK ] # 3.19 [+0.03] Route to local address with carrier down # 3.21 [+0.02] TEST: IPv4 fibmatch [ OK ] # 3.22 [+0.02] TEST: IPv6 fibmatch [ OK ] # 3.24 [+0.01] TEST: IPv4 linkdown flag set [ OK ] # 3.25 [+0.01] TEST: IPv6 linkdown flag set [ OK ] # 3.34 [+0.09] # 3.34 [+0.00] Single path route carrier test # 3.59 [+0.25] Start point # 3.61 [+0.02] TEST: IPv4 fibmatch [ OK ] # 3.62 [+0.02] TEST: IPv6 fibmatch [ OK ] # 3.64 [+0.02] TEST: IPv4 no linkdown flag [ OK ] # 3.66 [+0.02] TEST: IPv6 no linkdown flag [ OK ] # 4.68 [+1.03] Carrier down # 4.70 [+0.02] TEST: IPv4 fibmatch [ OK ] # 4.71 [+0.02] TEST: IPv6 fibmatch [ OK ] # 4.73 [+0.01] TEST: IPv4 linkdown flag set [ OK ] # 4.74 [+0.01] TEST: IPv6 linkdown flag set [ OK ] # 4.76 [+0.02] Second address added with carrier down # 4.78 [+0.01] TEST: IPv4 fibmatch [ OK ] # 4.79 [+0.01] TEST: IPv6 fibmatch [ OK ] # 4.81 [+0.02] TEST: IPv4 linkdown flag set [ OK ] # 4.82 [+0.01] TEST: IPv6 linkdown flag set [ OK ] # 6.32 [+1.50] # 6.32 [+0.00] IPv4 nexthop tests # 6.32 [+0.00] <<< write me >>> # 6.35 [+0.03] # 6.35 [+0.00] IPv6 nexthop tests # 6.37 [+0.01] TEST: Directly connected nexthop, unicast address [ OK ] # 6.38 [+0.01] TEST: Directly connected nexthop, unicast address with device [ OK ] # 6.40 [+0.02] TEST: Gateway is linklocal address [ OK ] # 6.41 [+0.01] TEST: Gateway is linklocal address, no device [ OK ] # 6.43 [+0.01] TEST: Gateway can not be local unicast address [ OK ] # 6.44 [+0.01] TEST: Gateway can not be local unicast address, with device [ OK ] # 6.45 [+0.01] TEST: Gateway can not be a local linklocal address [ OK ] # 6.47 [+0.01] TEST: Gateway can be local address in a VRF [ OK ] # 6.48 [+0.01] TEST: Gateway can be local address in a VRF, with device [ OK ] # 6.49 [+0.01] TEST: Gateway can be local linklocal address in a VRF [ OK ] # 6.51 [+0.01] TEST: Redirect to VRF lookup [ OK ] # 6.52 [+0.01] TEST: VRF route, gateway can be local address in default VRF [ OK ] # 6.53 [+0.01] TEST: VRF route, gateway can not be a local address [ OK ] # 6.55 [+0.01] TEST: VRF route, gateway can not be a local addr with device [ OK ] # 6.74 [+0.20] # 6.75 [+0.00] FIB rule with suppress_prefixlength # 7.03 [+0.28] TEST: FIB rule suppress test [ OK ] # 7.27 [+0.24] # 7.27 [+0.00] Fib6 info length calculation in route notify test # 9.52 [+2.25] TEST: ipv6 route add notify [ OK ] # 9.80 [+0.27] # 9.80 [+0.00] Fib4 info length calculation in route notify test # 12.07 [+2.27] TEST: ipv4 route add notify [ OK ] # 12.96 [+0.89] # 12.96 [+0.00] IPv6 route add / append tests # 13.01 [+0.05] TEST: Attempt to add duplicate route - gw [ OK ] # 13.06 [+0.05] TEST: Attempt to add duplicate route - dev only [ OK ] # 13.11 [+0.05] TEST: Attempt to add duplicate route - reject route [ OK ] # 13.17 [+0.06] TEST: Append nexthop to existing route - gw [ OK ] # 13.22 [+0.05] TEST: Add multipath route [ OK ] # 13.28 [+0.06] TEST: Attempt to add duplicate multipath route [ OK ] # 13.35 [+0.07] TEST: Route add with different metrics [ OK ] # 13.38 [+0.03] TEST: Route delete with metric [ OK ] # 13.38 [+0.00] # 13.38 [+0.00] IPv6 route replace tests # 13.45 [+0.06] TEST: Single path with single path [ OK ] # 13.51 [+0.06] TEST: Single path with multipath [ OK ] # 13.58 [+0.06] TEST: Single path with single path via multipath attribute [ OK ] # 13.64 [+0.07] TEST: Invalid nexthop [ OK ] # 13.69 [+0.05] TEST: Single path - replace of non-existent route [ OK ] # 13.75 [+0.06] TEST: Multipath with multipath [ OK ] # 13.81 [+0.06] TEST: Multipath with single path [ OK ] # 13.87 [+0.06] TEST: Multipath with single path via multipath attribute [ OK ] # 13.92 [+0.06] TEST: Multipath with dev-only [ OK ] # 13.98 [+0.06] TEST: Multipath - invalid first nexthop [ OK ] # 14.04 [+0.06] TEST: Multipath - invalid second nexthop [ OK ] # 14.09 [+0.05] TEST: Multipath - replace of non-existent route [ OK ] # 14.09 [+0.00] # 14.09 [+0.00] IPv6 route with dsfield tests # 14.11 [+0.03] TEST: Reject route with dsfield [ OK ] # 15.06 [+0.94] # 15.06 [+0.00] IPv4 route add / append tests # 15.10 [+0.05] TEST: Attempt to add duplicate route - gw [ OK ] # 15.15 [+0.05] TEST: Attempt to add duplicate route - dev only [ OK ] # 15.20 [+0.05] TEST: Attempt to add duplicate route - reject route [ OK ] # 15.26 [+0.06] TEST: Add new nexthop for existing prefix [ OK ] # 15.32 [+0.06] TEST: Append nexthop to existing route - gw [ OK ] # 15.38 [+0.06] TEST: Append nexthop to existing route - dev only [ OK ] # 15.44 [+0.06] TEST: Append nexthop to existing route - reject route [ OK ] # 15.49 [+0.05] TEST: Append nexthop to existing reject route - gw [ OK ] # 15.53 [+0.04] TEST: Append nexthop to existing reject route - dev only [ OK ] # 15.58 [+0.05] TEST: add multipath route [ OK ] # 15.63 [+0.05] TEST: Attempt to add duplicate multipath route [ OK ] # 15.69 [+0.06] TEST: Route add with different metrics [ OK ] # 15.72 [+0.03] TEST: Route delete with metric [ OK ] # 15.72 [+0.00] # 15.72 [+0.00] IPv4 route replace tests # 15.78 [+0.06] TEST: Single path with single path [ OK ] # 15.85 [+0.06] TEST: Single path with multipath [ OK ] # 15.91 [+0.06] TEST: Single path with reject route [ OK ] # 15.97 [+0.06] TEST: Single path with single path via multipath attribute [ OK ] # 16.04 [+0.06] TEST: Invalid nexthop [ OK ] # 16.09 [+0.05] TEST: Single path - replace of non-existent route [ OK ] # 16.15 [+0.06] TEST: Multipath with multipath [ OK ] # 16.21 [+0.06] TEST: Multipath with single path [ OK ] # 16.27 [+0.06] TEST: Multipath with single path via multipath attribute [ OK ] # 16.33 [+0.06] TEST: Multipath with reject route [ OK ] # 16.39 [+0.06] TEST: Multipath - invalid first nexthop [ OK ] # 16.45 [+0.06] TEST: Multipath - invalid second nexthop [ OK ] # 16.50 [+0.05] TEST: Multipath - replace of non-existent route [ OK ] # 16.68 [+0.18] TEST: Cached route removed from VRF port device [ OK ] # 16.68 [+0.00] # 16.68 [+0.00] IPv4 route with dsfield tests # 16.71 [+0.02] TEST: Reject route with dsfield 0x01 [ OK ] # 16.72 [+0.01] TEST: Reject route with dsfield 0x02 [ OK ] # 16.73 [+0.01] TEST: Reject route with dsfield 0x03 [ OK ] # 16.76 [+0.03] TEST: IPv4 route with DSCP and ECN:Not-ECT [ OK ] # 16.77 [+0.01] TEST: IPv4 route with DSCP and ECN:ECT(1) [ OK ] # 16.78 [+0.01] TEST: IPv4 route with DSCP and ECN:ECT(0) [ OK ] # 16.79 [+0.01] TEST: IPv4 route with DSCP and ECN:CE [ OK ] # 16.80 [+0.01] TEST: IPv4 route with unknown DSCP and ECN:Not-ECT [ OK ] # 16.81 [+0.01] TEST: IPv4 route with unknown DSCP and ECN:ECT(1) [ OK ] # 16.82 [+0.01] TEST: IPv4 route with unknown DSCP and ECN:ECT(0) [ OK ] # 16.84 [+0.01] TEST: IPv4 route with unknown DSCP and ECN:CE [ OK ] # 16.85 [+0.01] TEST: IPv4 route with no DSCP and ECN:Not-ECT [ OK ] # 16.86 [+0.01] TEST: IPv4 route with no DSCP and ECN:ECT(1) [ OK ] # 16.87 [+0.01] TEST: IPv4 route with no DSCP and ECN:ECT(0) [ OK ] # 16.88 [+0.01] TEST: IPv4 route with no DSCP and ECN:CE [ OK ] # 17.12 [+0.24] # 17.12 [+0.00] IPv6 prefix route tests # 17.37 [+0.25] TEST: Default metric [ OK ] # 17.40 [+0.03] TEST: User specified metric on first device [ OK ] # 17.44 [+0.04] TEST: User specified metric on second device [ OK ] # 17.46 [+0.02] TEST: Delete of address on first device [ OK ] # 17.48 [+0.02] TEST: Modify metric of address [ OK ] # 17.52 [+0.04] TEST: Prefix route removed on link down [ OK ] # 17.55 [+0.02] TEST: Prefix route with metric on link up [ OK ] # 17.58 [+0.03] TEST: Set metric with peer route on local side [ OK ] # 17.59 [+0.01] TEST: Set metric with peer route on peer side [ OK ] # 17.62 [+0.02] TEST: Modify metric and peer address on local side [ OK ] # 17.63 [+0.01] TEST: Modify metric and peer address on peer side [ OK ] # 17.77 [+0.15] # 17.78 [+0.00] IPv4 prefix route tests # 18.03 [+0.25] TEST: Default metric [ OK ] # 18.06 [+0.04] TEST: User specified metric on first device [ OK ] # 18.10 [+0.04] TEST: User specified metric on second device [ OK ] # 18.13 [+0.03] TEST: Delete of address on first device [ OK ] # 18.15 [+0.02] TEST: Modify metric of address [ OK ] # 18.18 [+0.03] TEST: Prefix route removed on link down [ OK ] # 18.20 [+0.02] TEST: Prefix route with metric on link up [ OK ] # 18.25 [+0.05] TEST: Modify metric of .0/24 address [ OK ] # 18.28 [+0.03] TEST: Set metric of address with peer route [ OK ] # 18.31 [+0.02] TEST: Modify metric and peer address for peer route [ OK ] # 18.48 [+0.17] # 18.48 [+0.00] IPv6 routes with metrics # 19.16 [+0.68] TEST: Single path route with mtu metric [ OK ] # 19.20 [+0.04] TEST: Multipath route via 2 single routes with mtu metric on first [ OK ] # 19.24 [+0.04] TEST: Multipath route via 2 single routes with mtu metric on 2nd [ OK ] # 19.27 [+0.02] TEST: MTU of second leg [ OK ] # 19.30 [+0.03] TEST: Multipath route with mtu metric [ OK ] # 19.33 [+0.04] TEST: Using route with mtu metric [ OK ] # 19.36 [+0.03] TEST: Invalid metric (fails metric_convert) [ OK ] # 19.62 [+0.26] # 19.62 [+0.00] IPv4 route add / append tests # 20.39 [+0.77] TEST: Single path route with mtu metric [ OK ] # 20.42 [+0.03] TEST: Multipath route with mtu metric [ OK ] # 20.45 [+0.03] TEST: Using route with mtu metric [ OK ] # 20.48 [+0.03] TEST: Invalid metric (fails metric_convert) [ OK ] # 20.72 [+0.24] # 20.72 [+0.00] IPv4 route with IPv6 gateway tests # 23.37 [+2.64] TEST: Single path route with IPv6 gateway [ OK ] # 23.40 [+0.03] TEST: Single path route with IPv6 gateway - ping [ OK ] # 23.42 [+0.01] TEST: Single path route delete [ OK ] # 23.44 [+0.02] TEST: Multipath route add - v6 nexthop then v4 [ OK ] # 23.46 [+0.02] TEST: Multipath route delete - nexthops in wrong order [ OK ] # 23.47 [+0.01] TEST: Multipath route delete exact match [ OK ] # 23.49 [+0.01] TEST: Multipath route add - v4 nexthop then v6 [ OK ] # 23.51 [+0.02] TEST: Multipath route delete - nexthops in wrong order [ OK ] # 23.53 [+0.01] TEST: Multipath route delete exact match [ OK ] # 23.77 [+0.24] # 23.77 [+0.00] IPv4 rp_filter tests # 24.57 [+0.80] TEST: rp_filter passes local packets [ OK ] # 24.59 [+0.02] TEST: rp_filter passes loopback packets [ OK ] # 24.70 [+0.11] # 24.70 [+0.00] IPv4 delete address route tests # 25.07 [+0.37] Regular FIB info # 25.09 [+0.02] TEST: Route removed from VRF when source address deleted [ OK ] # 25.10 [+0.01] TEST: Route in default VRF not removed [ OK ] # 25.14 [+0.04] TEST: Route removed in default VRF when source address deleted [ OK ] # 25.16 [+0.01] TEST: Route in VRF is not removed by address delete [ OK ] # 25.16 [+0.00] Identical FIB info with different table ID # 25.18 [+0.02] TEST: Route removed from VRF when source address deleted [ OK ] # 25.19 [+0.01] TEST: Route in default VRF not removed [ OK ] # 25.23 [+0.04] TEST: Route removed in default VRF when source address deleted [ OK ] # 25.24 [+0.01] TEST: Route in VRF is not removed by address delete [ OK ] # 25.25 [+0.00] Table ID 0 # 25.26 [+0.02] TEST: Route removed in default VRF when source address deleted [ OK ] # 25.42 [+0.16] # 25.42 [+0.00] IPv6 delete address route tests # 26.03 [+0.61] Single device using src address # 26.05 [+0.02] TEST: Prefsrc removed when src address removed on other device [ OK ] # 26.05 [+0.00] Two devices with the same source address # 26.07 [+0.02] TEST: Prefsrc not removed when src address exist on other device [ OK ] # 26.10 [+0.02] TEST: Prefsrc removed when src address removed on all devices [ OK ] # 26.10 [+0.00] VRF with single device using src address # 26.12 [+0.02] TEST: Prefsrc removed when src address removed on other device [ OK ] # 26.12 [+0.00] VRF with two devices using src address # 26.15 [+0.03] TEST: Prefsrc not removed when src address exist on other device [ OK ] # 26.18 [+0.03] TEST: Prefsrc removed when src address removed on all devices [ OK ] # 26.18 [+0.00] src address and nexthop dev in same VRF # 26.21 [+0.03] TEST: Prefsrc removed from VRF when source address deleted [ OK ] # 26.22 [+0.01] TEST: Prefsrc in default VRF not removed [ OK ] # 26.26 [+0.05] TEST: Prefsrc not removed from VRF when source address exist [ OK ] # 26.28 [+0.01] TEST: Prefsrc in default VRF removed [ OK ] # 26.28 [+0.00] src address and nexthop device in different VRF # 26.30 [+0.02] TEST: Prefsrc not removed from VRF when nexthop dev in diff VRF [ OK ] # 26.31 [+0.01] TEST: Prefsrc not removed in default VRF [ OK ] # 26.34 [+0.03] TEST: Prefsrc removed from VRF when nexthop dev in diff VRF [ OK ] # 26.35 [+0.01] TEST: Prefsrc removed in default VRF [ OK ] # 26.36 [+0.00] Table ID 0 # 26.38 [+0.02] TEST: Prefsrc removed from default VRF when source address deleted [ OK ] # 26.38 [+0.00] Link local source route # 26.40 [+0.02] TEST: Prefsrc not removed when delete ll addr from other dev [ OK ] # 26.43 [+0.02] TEST: Prefsrc removed when delete ll addr [ OK ] # 26.44 [+0.01] TEST: Prefsrc not removed when delete ll addr from other dev [ OK ] # 26.48 [+0.04] TEST: Prefsrc removed even ll addr still exist on other dev [ OK ] # 26.90 [+0.43] # 26.90 [+0.00] IPv4 mangling tests # 30.21 [+3.31] TEST: Connection with correct parameters [ OK ] # 30.24 [+0.02] TEST: Connection with incorrect parameters [ OK ] # 30.81 [+0.58] TEST: Connection with correct parameters - mangling [ OK ] # 31.37 [+0.56] TEST: Connection with correct parameters - no mangling [ OK ] # 31.38 [+0.01] TEST: Connection check - server side [ OK ] # 31.71 [+0.32] # 31.71 [+0.00] IPv6 mangling tests # 35.71 [+4.00] TEST: Connection with correct parameters [ OK ] # 35.80 [+0.10] TEST: Connection with incorrect parameters [ OK ] # 36.48 [+0.67] TEST: Connection with correct parameters - mangling [ OK ] # 37.10 [+0.62] TEST: Connection with correct parameters - no mangling [ OK ] # 37.14 [+0.04] TEST: Connection check - server side [ OK ] # 37.74 [+0.60] # 37.75 [+0.00] IPv4 broadcast neighbour tests # 38.30 [+0.55] TEST: Resolved neighbour for broadcast address [ OK ] # 38.31 [+0.02] TEST: Resolved neighbour for network broadcast address [ OK ] # 38.33 [+0.02] TEST: Unresolved neighbour for broadcast address [ OK ] # 38.35 [+0.02] TEST: Unresolved neighbour for network broadcast address [ OK ] # 38.73 [+0.38] # 38.73 [+0.00] Fib6 garbage collection test # 50.93 [+12.20] TEST: ipv6 route garbage collection [ OK ] # 63.16 [+12.23] TEST: ipv6 route garbage collection (with permanent routes) [ OK ] # 75.40 [+12.23] TEST: ipv6 route garbage collection (replace with expires) [ OK ] # 87.62 [+12.22] TEST: ipv6 route garbage collection (replace with permanent) [ OK ] # 100.86 [+13.24] TEST: ipv6 route garbage collection (RA message) [ OK ] # 100.96 [+0.11] # 100.96 [+0.00] IPv4 multipath list receive tests # 102.23 [+1.27] TEST: Multipath route hit ratio (1.00) [ OK ] # 102.49 [+0.26] # 102.49 [+0.00] IPv6 multipath list receive tests # 103.75 [+1.26] TEST: Multipath route hit ratio (1.00) [ OK ] # 104.04 [+0.29] # 104.04 [+0.00] IPv4 multipath load balance test # 106.18 [+2.14] TEST: IPv4 multipath loadbalance [ OK ] # 106.47 [+0.29] # 106.47 [+0.00] IPv6 multipath load balance test # 110.78 [+4.31] TEST: IPv6 multipath loadbalance [ OK ] # 111.11 [+0.33] # 111.11 [+0.00] Tests passed: 231 # 111.11 [+0.00] Tests failed: 0 ok 1 selftests: net: fib_tests.sh make[1]: Leaving directory '/home/virtme/testing-1/tools/testing/selftests/net' make: Leaving directory '/home/virtme/testing-1/tools/testing/selftests' xx__-> echo $? 0 xx__->