At Keysight we are developing a network testing solution (layer 2 and layer 3) for the EDA (electronic design automation) market. Basically, we allow chip manufacturers to test their design before printing it into silicon; this testing paradigm is called "shift-left" testing and reduces production costs significantly. Our solution is a market leader in this field.  IxVerify is a traffic generator packed inside a Virtual Machine which is delivered along with a physical emulator developed by one of our partners (Synopsys, Siemens or Cadence). A customer would load its design into the emulator and use IxVerify to generate network traffic that will stress that design. Since we don't have an emulator in house, we had to develop a software switch based on DPDK  for packet forwarding between Virtual Machines. Besides forwarding traffic, we need to also act as much as possible as an emulator. The main struggle is to work with two time domains: wall clock time on our VM and emulation time (~1000 times slower) on the emulator. This poses several challenges when computing rate statistics, different protocol functionalities, etc.
The goal of this project is to make the software switch implementation more flexible, allowing for improved test coverage and user interaction.
What you will gain: You will: • Add runtime configuration support for the software switch • Develop support for new test cases for various standards and protocols
You will learn: • C/C++ • DPDK • KVM virtualization • GNU/Linux
Skills required: Networking, C/C++, GNU/Linux