Fabricio E Rodriguez Cesen
P Gyanesh Kumar Patra
Christian Esteve Rothenberg
BB-Gen: A Packet Crafter for Data Plane Evaluation
Simpósio Brasileiro de Redes de Computadores e Sistemas Distribuídos (SBRC)
Campos do Jordão – São Paulo – Brasil
Mayo, 2016
Universidade Estadual de Campinas
Faculdade de Engenharia Elétrica e de Computação
Agenda
➔Introduction
➔BB-Gen
➔Examples
➔Limitations and Future Work
➔Conclusions
2
Introduction
3
Introduction
4
Introduction
• Flexible fast path packet processing research in SDN infrastructures
• New protocol-independence datapaths
• Necessity to evaluate and test network capabilities
• Complex network testing tools
• Workload generation to simulate the network traffic
Introduction
5
Packet Generators
• Poor support of traffic flow characteristics (e.g., packet size and address
distribution)
• Limited generation of table traces
• Limited protocol support
BB-Gen
6
BB-Gen
7
Main Characteristics
• Written in Python over Scapy library
• Open source code
• Simple and intuitive CLI interface
• Crafts packets for standard and custom protocols.
• Simple integration with Traffic Generators (e.g., pktgen-dpdk, NFPA,
TCPDUMP, etc.)
BB-Gen
8
Other Characteristics
• Best-case and worst-case testing
• Easy to build, use and extend
• Generates table trace files along with every set of PCAPs
• Generates more then 1 million of packets
• For performance tests (64, 128, 256, 512, 1024, 1280, 1518 Bytes)
• Custom packet sizes
BB-Gen
9
Other Characteristics
• Supports a list of common standard protocols:
➢ Ethernet
➢ IPv4, IPv6
➢ TCP, UDP
➢ GRE, VXLAN
• User defined payload information
• Cross-platform tool
10
BB-Gen Architecture
Examples
11
Examples
Generation of 100 vxlan traces with packet size of 64B:
python main.py -p vxlan -n 100
Generation of random 1k IPv4 traces for performance test:
python main.py -p ipv4 -n 1000 -rnip -rnmac -rnport –performance
12
Examples
MACSAD use case:
python main.py -u macsad
13
Examples
MACSAD use case:
python main.py -u macsad
14
Examples
MACSAD use case:
python main.py -u macsad
15
Examples
MACSAD use case:
python main.py -u macsad
16
Examples
MACSAD use case:
python main.py -u macsad
17
Examples
18
Using a P414 code to autogenerate 1000 traces:
python main.py -p4 examples/p4_src/l3_fwd_ipv6.p4 -n 1000 --performance
Examples
19
Using a P414 code to autogenerate 1000 traces:
python main.py -p4 examples/p4_src/l3_fwd_ipv6.p4 -n 1000 --performance
Examples
20
Using a P414 code to autogenerate 1000 traces:
python main.py -p4 examples/p4_src/l3_fwd_ipv6.p4 -n 1000 --performance
Examples
Using a P414 code to autogenerate 1000 traces:
python main.py -p4 examples/p4_src/l3_fwd_ipv6.p4 -n 1000 --performance
21
22
Integration with performance tools
23
Integration with performance tools
24
Integration with performance tools
25
Integration with performance tools
Integration with NFPA
Integration with NFPA
Integration with NFPA
Limitations and Future Work
29
Limitations and Future Work
30
Near future
• Addition of more protocols (e.g., ICMP, ICMPv6, ARP, VLAN, etc.)
• Packets with a custom sequence of protocols headers
• Support for more use-cases (personalized table traces or set of protocols)
• Capability to generate a hexdump of the created packet
• Integration with P4 runtime ??? Should be here?
Conclusions
31
Conclusions
32
Conclusions
• Simple to use and extend
• Candidate for generating trace files for performance and evaluation tests
• Simple integration with benchmarking tools
• Use-case (MACSAD) demonstrate the facility to create traces covering
different complexities and requirements of the project
Thanks
Universidade Estadual de Campinas
Faculdade de Engenharia Elétrica e de Computação
https://github.com/intrig-unicamp/BB-Gen
Simpósio Brasileiro de Redes de Computadores e Sistemas Distribuídos (SBRC)
Campos do Jordão – São Paulo – Brasil
Mayo, 2016

BB-Gen: A Packet Crafter for Data Plane Evaluation