1Running 2------- 3 4* Create three native zones and start them. 5 6* Edit config/ip_forwarding.config, entering the names of the zones 7 you created. 8 9* Run /opt/net-tests/bin/nettest. 10 11Overview 12-------- 13 14The tests in this directory test the IP forwarding path under several 15different variations. All tests require three zones. The tests use 16these three zones, along with the simnet driver, to emulate a real IP 17forwarding scenario involving multiple hosts. All tests verify that 18TCP, UDP, ICMP, IPv4/IPv6, and fragmented IPv4/IPv6 traffic can cross 19the IP forwarding datapath. Each test differs in its emulation of 20various hardware offload features (which would typically be presented 21by real NICs). The diagrams below gives a visual representation of the 22situations we are testing and shows how the test components relate to 23each other. 24 25no mac-loopback 26--------------- 27 28In this configuration we make sure that the packet travels from server 29to router via "the wire". 30 31 +----------------------------+ 32+----------------------------+ |router zone | 33|client zone | | +-------------------------+| 34|(ipft_client_nic0) | | |ipft_router_nic0 || 35| +----------------------+ | | |+----------------------+ || 36| |ipft_client0 | | | ||ipft_client_r0 | || 37| |192.168.77.2 |<-+-- Wire --+->|192.168.77.1 | || 38| |fd00:0:1:4d::2 | | | ||fd00:0:1:4d::1 | || 39| +----------------------+ | | |+----------------------+ || 40+----------------------------+ | +-------------------------+| 41 | ^ | 42 | | | 43 | | | 44 | | | 45 | | | 46 | IP | | 47 | forwarding | | 48 | | | 49 | | | 50 | | | 51+----------------------------+ | v | 52|server zone | |+-------------------------+ | 53|(ipft_server_nic0) | ||ipft_router_nic1 | | 54| +----------------------+ | || +----------------------+| | 55| |ipft_server0 | | || |ipft_server_r0 || | 56| |VLAN 5 | | Wire || |VLAN 5 || | 57| |192.168.88.2 |<-+----------++>|192.168.88.1 || | 58| |fd00:0:1:58::2 | | || |fd00:0:1:58::1 || | 59| +----------------------+ | || +----------------------+| | 60+----------------------------+ |+-------------------------+ | 61 +----------------------------+ 62 63mac-loopback 64------------ 65 66In this configuration we make sure that the packet travels from server 67to router via mac-loopback. 68 69 +----------------------------+ 70+----------------------------+ |router zone | 71|client zone | | +-------------------------+| 72|(ipft_nic0) | | |ipft_nic1 || 73| +----------------------+ | | |+----------------------+ || 74| |ipft_client0 | | | ||ipft_client_r0 | || 75| |192.168.77.2 |<-+-- Wire --+->|192.168.77.1 | || 76| |fd00:0:1:4d::2 | | | ||fd00:0:1:4d::1 | || 77| +----------------------+ | | |+----------------------+ || 78+----------------------------+ | +-------------------------+| 79 | ^ | 80 | | | 81 | | | 82 | | | 83 | | | 84 | IP | | 85 | forwarding | | 86 | | | 87 | | | 88 | | | 89+----------------------------+ | v | 90|server zone | |+-------------------------+ | 91|(ipft_nic1) | ||ipft_nic1 | | 92| +----------------------+ | || +----------------------+| | 93| |ipft_server0 | | MAC || |ipft_server_r0 || | 94| |VLAN 5 | | loopback || |VLAN 5 || | 95| |192.168.88.2 |<-+----------++>|192.168.88.1 || | 96| |fd00:0:1:58::2 | | || |fd00:0:1:58::1 || | 97| +----------------------+ | || +----------------------+| | 98+----------------------------+ |+-------------------------+ | 99 +----------------------------+ 100 101Requirements 102------------ 103 104* The client and server zones must provide `/usr/bin/socat`. It would 105 be nice to use netcat but our native version is missing features 106 like connection timeout. 107 108* The user must both create and start the three required zones. 109 110* All three zones should be native zones. 111 112* You must edit the ip_forwarding.config file; providing it with the 113 names of the zones you have created. 114 115Files 116----- 117 118ip_fowarding 119 120 The main test script; it provides the logic for all the tests 121 below. The different test variations are controlled by options 122 and it takes the three zones as arguments. This script may be 123 run by hand but it's easier to use ip_fwd_suite for that 124 purpose. 125 126ip_fwd_suite 127 128 This script runs the various configurations of the IP 129 forwarding test suite. You can run the entire suite or just a 130 single test via the '-n' option. The "Test Matrix" section 131 below gives an overview of all the tests in the suite. 132 133ip_fwd_XXX 134 135 These scripts are mostly here to work around the fact that the 136 test-runner cannot pass arguments to individual tests. In 137 order to avoid running everything as the "ip_fwd_suite" test, 138 we create a file for each configuration. This gives individual 139 reporting of each test and steers us clear of tripping the 140 timeout. You can also run these scripts by hand like so: 141 142 NET_TESTS=/opt/net-tests /opt/net-tests/tests/forwarding/ip_fwd_001 143 144config/ip_forwarding.config 145 146 This file must be modified to contain the names of the zones 147 the user crated for running these tests. 148 149Test Matrix 150----------- 151 152This is a breakdown of all the tests in the IP forwarding test suite. 153If a given offload is enabled or disable, it is done so for all 154interfaces involved in the test. 155 156NAME Tx IP Tx ULP LSO Rx IP mac-loopback 157001 off none off off no 158002 on partial off off no 159003 on partial on off no 160004 on fullv4 off off no 161005 on fullv4 on off no 162006 off none off on no 163007 on partial off on no 164008 on partial on on no 165009 on fullv4 off on no 166010 on fullv4 on on no 167 168011 off none off off yes 169012 on partial off off yes 170013 on partial on off yes 171014 on fullv4 off off yes 172015 on fullv4 on off yes 173016 off none off on yes 174017 on partial off on yes 175018 on partial on on yes 176019 on fullv4 off on yes 177020 on fullv4 on on yes 178