Page MenuHomeFreeBSD

verbs/mlx5: Add GRE and MPLS flow specification filter
Needs ReviewPublic

Authored by vag.singh_oneconvergence.com on Sep 28 2021, 2:23 PM.
Tags
None
Referenced Files
F102171989: D32205.id95864.diff
Fri, Nov 8, 11:58 AM
Unknown Object (File)
Sat, Oct 12, 7:05 PM
Unknown Object (File)
Oct 4 2024, 11:28 PM
Unknown Object (File)
Oct 4 2024, 8:49 PM
Unknown Object (File)
Oct 4 2024, 12:40 AM
Unknown Object (File)
Oct 3 2024, 6:06 AM
Unknown Object (File)
Sep 29 2024, 11:18 PM
Unknown Object (File)
Sep 21 2024, 6:52 PM

Details

Reviewers
kib
hselasky
Summary

[PATCH 30/31] FreeBSD OFED support for DPDK MLX5 PMD

a) Allow verbs applications packet steering of GRE tunneled traffic.
Adding GRE flow specification based on RFC 2890.
GRE consists of flags, protocol and key fields.
IPv4 protocol 47 (IPPROTO_GRE) can be used when GRE packets are
encapsulated in IPv4.

b) verbs: Add MPLS flow specification filter
Add MPLS flow specification based on RFC 3032.
MPLS spec defined with label field which includes the
label value and additional parameters such as: BoS, TC and TTL.
MPLS allows stacking multiple labels in sequence.
In addition, the MPLS header can be encapsulated on top of different
layers, e.g.: ETH, IP (rfc4023), UDP (rfc7510), GRE (rfc4023).

Therefore, when using the flow creation verb, the application should
organize the spec filters list in the command in an ordered manner, such
that reflects the actual protocol stack of the packet, to determine the
exact position of the MPLS headers in the protocol stack.

c) mlx5: Report MPLS tunnel offload capabilities through mlx5 direct verbs
This patch exposes the mlx5 device's capability to offload MPLS based
tunnel protocols via DV API.
The possible protocols are:

  • Control word + MPLS over GRE.
  • Control word + MPLS over UDP.
Test Plan

Tested on KVM, ESXi, and HyperV/Azure Hypervisors with FreeBSD 14.0-CURRENT and FreeBSD12.1-STABLE.

iperf
DPDK MLX5 PMD/testpmd

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Skipped
Unit
Tests Skipped

Event Timeline