| NAME = "Pktgen test" |
| AUTHOR = "Martin Bligh <mbligh@google.com>" |
| TIME = "MEDIUM" |
| TEST_CATEGORY = "FUNCTIONAL" |
| TEST_CLASS = "HARDWARE" |
| TEST_TYPE = "CLIENT" |
| DOC = """ |
| pktgen is a high-performance testing tool included in the Linux kernel. Being |
| part of the kernel is currently best way to test the TX process of device driver |
| and NIC. pktgen can also be used to generate ordinary packets to test other |
| network devices. Especially of interest is the use of pktgen to test routers or |
| bridges which use the Linux network stack. Because pktgen is "in-kernel", it can |
| generate very high packet rates and with few systems saturate network devices as |
| routers or bridges. |
| """ |
| |
| interface='eth0' |
| count=50000 |
| |
| # Parse comma-separated args. |
| for arg in args: |
| for item in arg.split(','): |
| key, val = item.split('=') |
| if key == 'interface': |
| interface = val |
| if key == 'count': |
| count = int(val) |
| if key == 'num_iterations': |
| num_iterations = int(val) |
| |
| job.run_test('pktgen', eth=interface, count=count, clone_skb=0, |
| tag='clone_skb_off', num_iterations=num_iterations) |
| job.run_test('pktgen', eth=interface, count=count, clone_skb=1, |
| tag='clone_skb_on', num_iterations=num_iterations) |
| |