TRex EMU for client protocols (beta) v2.76

442 views
Skip to first unread message

Hanoch Haim

unread,
Mar 19, 2020, 6:00:16 AM3/19/20
to TRex Traffic Generator
Hi All, 

TRex v2.76 has a support in the beta version of trex-emu server. 

The objective of trex-emu server is to implement client side L3 protocols, i.e. ARP, IPv6, ND, MLD, IGMP in order to simulate a scale of clients and servers. 
This project is not limited to, client protocols, but it is a good start. The project provides a framework to implement and use client protocols.

The framework is fast enough for control plane protocols and will work with TRex server. Very fast L7 applications (on top of TCP/UDP) will run on TRex server. One single thread of TRex-EMU can achieve a high rate of client creation/teardown. Each of the aforementioned protocols is implemented as a plugin. These plugins are self contained and can signal events one to the other, or to the framework, using an event-bus. (e.g. DHCP signals that it has a new IPv6 address). The framework has an event driven architecture, this way it can scale. The framework also provides for a protocol plugin infrastructure, for example RPC, timers, packet parsers, simulation and more.

The main properties:

* Fast, client creation/teardown. ~3K/sec for one thread.
* Number of active client/namespace is limited only by the memory on the server.
* Packet per second (PPS) in the range of 3-5 MPPS.
* Python 2.7/3.0 Client API exposed through JSON-RPC.
* Interactive support - Integrated with the TRex console.
* Modular design. Each plugin is self contained and can be tested on its own.
* TRex-EMU supports the following protocols 
** ARP,RFC 826
** ICMP,RFC 777
** DHCPv4,RFC 2131 client side
** IGMP,IGMP v3/v2/v1 RFC3376
** IPv6,IPv6 ND, RFC 4443, RFC 4861, RFC 4862 and MLD and MLDv2 RFC 3810
** DHCPv6,RFC 8415 client side

see here for more information 


emu_arch.png


Release notes and doc can be found here:


Let's us know for issues and bugs 





Hanoch Haim

unread,
Apr 7, 2020, 8:22:32 AM4/7/20
to TRex Traffic Generator
Hi all,
I would like to thank to the early adopters, especially Andreas Bourges for the good suggestions. 
v2. 78 was released with enhancements and fixes.
dot1x is supported now 

Thanks
Hanoh

sre...@benunets.com

unread,
Apr 27, 2020, 3:25:07 AM4/27/20
to TRex Traffic Generator
Hi Hanoh,

Using TRex EMU Iis there a way that we can simulate clients (DHCPv6. DHCPv6) under tunnels (say GRE, L2TPv3) .

Thanks,
Surya

hanoh haim

unread,
Apr 27, 2020, 3:45:09 AM4/27/20
to sre...@benunets.com, TRex Traffic Generator
Hi Surya, 

Not yet, EMU is actively developed. Are you interested in ASTF or STL. For tunnel we need to add support for ASTF too 

Thanks
Hanoh

sre...@benunets.com

unread,
Apr 28, 2020, 2:13:16 AM4/28/20
to TRex Traffic Generator
Hi Hanoh,

Using STL Services I am able to simulate clients under GRE tunnels, but here I see that attach rate is the limitation and also building streams for all the simulated subscriber is bit difficult.

And also just a doubt,  state machine for EMU is developed in GO language right ?

Yes I am interested in ASTF.

Thanks,
Surya

hanoh haim

unread,
Apr 28, 2020, 2:17:19 AM4/28/20
to sre...@benunets.com, TRex Traffic Generator

You should try using Field Engine instead of stream per each tunnel. EMU is written in golang 

--
You received this message because you are subscribed to the Google Groups "TRex Traffic Generator" group.
To unsubscribe from this group and stop receiving emails from it, send an email to trex-tgn+u...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/trex-tgn/e0000853-5bd3-4923-8424-04a1faaa91f3%40googlegroups.com.
--
Hanoh
Sent from my iPhone

hanoh haim

unread,
Apr 28, 2020, 3:00:52 AM4/28/20
to sre...@benunets.com, TRex Traffic Generator
Hi Sreddy, 
Could you share a typical GRE tunnel configuration, how many clients do you want to share the same tunnel. how many tunnels, clients etc

Thanks
Hanoh

sre...@benunets.com

unread,
Apr 28, 2020, 3:13:06 AM4/28/20
to TRex Traffic Generator
Hi Hanoh,

I am simulating 10K GRE tunnels, under each tunnel bringing up 10 dhcp clients.

Earlier post you mentioned to use Field Engines for streams, Yes I am using field engines for multiple tunnels.

And another query, is it possible to have a Encap/Decap class, so that all the traffic going out automatically get encapsulated and decapsulated. This way we don't need to change the client simulation for different encap types (Say GRE, IP-In-IP6, L2TPv3. QinQ). 


Thanks,
Surya
Reply all
Reply to author
Forward
0 new messages