gre: Add support for GRE keys in the GRE plugin 40/42440/25
authorMasih Nilforoush <[email protected]>
Thu, 27 Feb 2025 13:44:44 +0000 (14:44 +0100)
committerNeale Ranns <[email protected]>
Tue, 24 Jun 2025 23:41:20 +0000 (23:41 +0000)
commit74cf96576768f6e9200848c613428990049b3563
treed64111bc03008cd6f004202f9fa6de16e1bf185d
parent6b8975e2a158cc84425f269abb4958d37beebfa5
gre: Add support for GRE keys in the GRE plugin

The added feature enables the GRE plugin to create tunnels between the same endpoints,
distinguishing them by the "key" value. It uses the standard 'key'
parameter in the GRE header.
Changes have been made to add support for CLI and API to create tunnels with a "key" value.

The CLI syntax is as follows:
   create gre tunnel src src_IP_Address dst dst_IP_Address key key_value

All existing GRE functionalities, such as tunnel type and mode, remain unchanged.
GRE key support has been implemented for all non-ERSPAN tunnel types, including both IPv4 and IPv6.
Additionally, modifications were made to the GRE packet header, data structure, and inbound/outbound
packet processing to accommodate key configuration through CLI and API.

Type: feature
Change-Id: I222d585007fa264e7cc12c79d6ba9c63c044f133
Signed-off-by: Masih Nilforoush <[email protected]>
src/plugins/gre/FEATURE.yaml
src/plugins/gre/gre.api
src/plugins/gre/gre.c
src/plugins/gre/gre.h
src/plugins/gre/gre_api.c
src/plugins/gre/interface.c
src/plugins/gre/node.c
src/vnet/gre/packet.h
test/test_gre.py
test/vpp_gre_interface.py