Skip to content

tatry/INT-BMv2

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 

Repository files navigation

INT-BMv2

In-Band Network Telemetry for BMv2 P4 switch

Getting started

  1. Install dependences:

    • Mininet
    • BMv2
    • p4c
    • Other packages not installed by default: ethtool, xterm
  2. Compile code:

    p4c --target bmv2-v1model --std p4-16 switch.p4

    This will produce switch.json file needed for BMv2.

  3. Setting up test network:

    sudo python run/demo_net.py --json switch.json

    In other terminal set up rules forwarding rules:

    run/run_forwarding.sh

    And set up rules for In-Band Network Telemetry:

    run/run_int.sh

    Now you can use the standard mininet CLI in the first terminal.

Remarks

  • INT metadata is placed behind IP header. So, metrics are collected also for ICMP packets.
  • IP packets with metadata are not valid, because field totalLen in IP header is not updated when adding metadata.
  • Probably there is a bug in BMv2. Use of field with type varbit in metadata when cloning packet cause that only one packet is forwarded. Others are dropped. As a workaround that, valid metrics are only from last switch and the rest are junk data derived from upper layers headers and data.

About

In-Band Network Telemetry for BMv2 P4 switch

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors