secdev / secdev/scapy

Support P4.org In-band Network Telemetry (INT)

Open
#4,229 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
12.6k
Forks
2.2k
Avg merge
1d 4h
Merged PRs (30d)
56

Description

Brief description

I would like to contribute P4.org In-band Network Telemetry (INT) protocol to scapy.
Partly of the INT layer has been implemented.
I hope everyone who are interested in this can join us to enhance it.

References:
https://staging.p4.org/p4-spec/docs/INT_v2_1.pdf
https://staging.p4.org/p4-spec/docs/telemetry_report_v2_0.pdf
https://github.com/p4lang/p4-applications

Example Packet Formate:
INT-MX mode:
INToGre = Ether/IP/GRE/INTShimGre/INTMetaMx/Raw
INToTCP = Ether/IP/TCP/INTShimTcpUdp/INTMetaMx/Raw
INToUDP = Ether/IP/UDP/INTShimTcpUdp/INTMetaMx/Raw
INToVXLAN = Ether/IP/UDP/VXLAN/INTShimVxlan/INTMetaMx/Raw
INToGENEVE = Ether/IP/UDP/GENEVE/GeneveOptINT/INTMetaMx/Raw
INT-MD mode:
INToGre = Ether/IP/GRE/INTShimGre/INTMetaMd/INTMetaHop/Raw
INToTCP = Ether/IP/TCP/INTShimTcpUdp/INTMetaMd/INTMetaHop/Raw
INToUDP = Ether/IP/UDP/INTShimTcpUdp/INTMetaMd/INTMetaHop/Raw
INToVXLAN = Ether/IP/UDP/VXLAN/INTShimVxlan/INTMetaMd/INTMetaHop/Raw
INToGENEVE = Ether/IP/UDP/GENEVE/GeneveOptINT/INTMetaMd/INTMetaHop/Raw

Scapy version

2.5.0

Python version

3.7

Operating system

Linux 5.10.27-051027-generic

Additional environment information

No response

How to reproduce

ignore

Actual result

No response

Expected result

No response

Related resources

No response

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Begin with INT_v2_1.pdf and telemetry_report_v2_0.pdf, then inspect the existing Scapy definitions for INTShimGre, INTMetaMx, and related layers named in the packet examples. Confirm support for the listed INT-MX and INT-MD encapsulations and validate packet parsing and building against the referenced formats.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
networking
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.