An LNet router is the node with only LNet running and without Lustre FS mounted on it. With the Multi-Rail feature added and other changes on the LNet, it is significant to test the LNet routers and ensure they work as expected.

Test Cases

1. Router Configuration Tests

1.1 Add/Delete routes using lnetctl

UT ID: rtr_test_cfg_01

Description:

		- Configure interfaces on the router
        - Add routes on client/server node with router's interfaces as gateway
        - Ensure that routes are added
        - Delete routes on client/server node with router's interfaces as gateway
        - Ensure that routes are deleted


def lcmd_test_add_route():
        rc, out = commands.getstatusoutput(LNETCTL + 'route add --net'+ argv[1] '--gateway' + argv[2])
        if (rc != 0): 
                print out 
                return False
        print "\nConfigured route successfully."

        rc, out = commands.getstatusoutput(LNETCTL+'route show')
        print out 
        if (rc != 0): 
                return False

def lcmd_test_del_route():
        rc, out = commands.getstatusoutput(LNETCTL + 'route del --net'+ argv[1] '--gateway' + argv[2])
        if (rc != 0): 
                print out 
                return False
        print "\nRoute deleted."

        rc, out = commands.getstatusoutput(LNETCTL+'route show')
        print out 
        if (rc != 0): 
                return False


1.2 Priority configuration test

UT ID: rtr_test_cfg_02

Description:

		- Configure priority on the router.
		- check if the correct priority is set on the router


1.3 Hop count configuration

UT ID: rtr_test_cfg_03

Description:

		- Configure hop on the router
		- check if the hop is set on the router


2. Route health check


UT ID: rtr_test_cfg_04
Description:

		- Configure interfaces on the router
		- Add a route on Client/Server with router's interface as gateway
		- Run traffic through the router
		- Check the transmit statistics


3. Multiple Routes Configuration Tests

3.1 Test for routes being used per Round-Robin

UT ID: rtr_test_cfg_05
Description:

		- Add 2 or more similar routes for the router
		- Pass traffic through the configured routes
		- Ensure that all the routes are used in round-robin fashion


3.2 Test for routes being used per priority

UT ID: rtr_test_cfg_06

Description:

		- Add 2 or more routes for the router
		- Set different priorities on the routes
		- Pass traffic through the configured routes
		- Test to ensure the highest priority route is used.


3.3 Test for routes be preferred per least hop count

UT ID: rtr_test_cfg_07

Description:

		- Add 2 or more routes on the router
		- Set different hop counts on the routes
		- Pass traffic through the router
		- Test to ensure the route with least hop count is used.



4. Add/Remove Routes dynamically

4.1 Remove a route dynamically

UT ID: rtr_test_cfg_08

Description:

		- Add 2 or more routes for the router
		- Run traffic through the configured routes
		- Bring down one route.
		- Check the other routes take over
		- Make sure there are no dropped packets


4.2 Add a new route dynamically

UT ID: rtr_test_cfg_09

Description:

		- Add a route for the router
		- Run traffic through the configured routes
		- Add a new route with same priority and hop count as the older route.
		- Check that traffic runs through new route as well
		- Check for the send statistics for the new route.


5. Router Buffer Pools Configuration Test

5.1 Configure Router Buffers

UT ID: rtr_test_cfg_10

Description:

		- Add a route for the router
		- Configure tiny, small and large buffer with different values on the router
		- Run varying size traffic through the router
		- Ensure the buffers are used


5.2 Reset Router Buffers

UT ID: rtr_test_cfg_11

Description:

		- Add a route on the router
		- Configure tiny, small and large buffer with value 0
		- Check the buffers value are set to system defaults


5.3 Test Buffers pool configuration with edge values

UT ID: rtr_test_cfg_12

Description:

		- Add a route on the router
		- Configure tiny, small and large buffer with less than minimum values
		- Check the 


6. Enabling/Disabling Routing Test

6.1 Enable/Disbale routing dynamically 

UT ID: rtr_test_cfg_13

Description:

		- Add a route on the router
		- Enable routing using lnetctl
		- Run traffic through the router
		- Ensure messages are sent and check the statistics
		- Disbale routing dynamically
		- Run traffic
		- Check the messages are not sent
		- Check dropped packets count



7. Multi-Rail Routing Test

7.1 Routing with multiple interface configuration on same network

UT ID: rtr_test_cfg_14

Description:

		- Configure more than one interface on the router for the same network
		- Add route with multiple configured interfaces
		- Add router as peer on both server and client
		- Run traffic through the router
		- Ensure all the configured interfaces are used to send messages


7.2 Routing with multiple interface configuration on different network

UT ID: rtr_test_cfg_15

Description:

		- Configure more than one interface on the router for different networks
		- Add route with multiple configured interfaces
		- Add router as peer on both server and client
		- Run traffic through the router for the different networks
		- Ensure all the configured interfaces are used to send messages