diff options
author | Arthur de Kerhor <arthurdekerhor@gmail.com> | 2021-05-20 11:48:00 +0200 |
---|---|---|
committer | Florin Coras <florin.coras@gmail.com> | 2021-05-29 18:13:01 +0000 |
commit | 8a6f5d394c69eba3bfaddfe36a93d1013cba3ce3 (patch) | |
tree | 4adb54d52b2f246fc7d2820fb959e63bbcae7de3 /src/vnet/udp/udp.api | |
parent | b740fdc8ff7f58637524e999d5fe01b8b010810d (diff) |
udp: add udp decapsulation
Possibility to register a port via CLI or API to decap incoming UDP
packets:
- For CLI, a user needs to specify the inner protocol (only MPLS
supported for now)
- For API, the protocol is specified by index
Added unittests
Type: feature
Change-Id: Ifedd86d8db2e355b7618472554fd67d77a13a4aa
Signed-off-by: Arthur de Kerhor <arthurdekerhor@gmail.com>
Diffstat (limited to 'src/vnet/udp/udp.api')
-rw-r--r-- | src/vnet/udp/udp.api | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/src/vnet/udp/udp.api b/src/vnet/udp/udp.api index 2cd2bd50272..02176be7c2b 100644 --- a/src/vnet/udp/udp.api +++ b/src/vnet/udp/udp.api @@ -45,6 +45,26 @@ typedef udp_encap u32 id; }; +enum udp_decap_next_proto +{ + UDP_API_DECAP_PROTO_IP4, + UDP_API_DECAP_PROTO_IP6, + UDP_API_DECAP_PROTO_MPLS, +}; + +/** + * @brief UDP Decap object + * @param is_ip4 - IPv4 if non-zero, else IPv6 + * @param port - port to listen on for the decap + * @param next_proto - the protocol of the inner header + */ +typedef udp_decap +{ + u8 is_ip4; + u16 port; + vl_api_udp_decap_next_proto_t next_proto; +}; + /** * @brief Add UDP encap * @param client_index - opaque cookie to identify the sender @@ -103,6 +123,21 @@ define udp_encap_details vl_api_udp_encap_t udp_encap; }; +/** + * @brief Add/Del UDP decap + * @param client_index - opaque cookie to identify the sender + * @param context - sender context, to match reply w/ request + * @param is_add - add decap if non-zero, else delete + * @param udp_decap - UDP decap description + */ +autoreply define udp_decap_add_del +{ + u32 client_index; + u32 context; + bool is_add; + vl_api_udp_decap_t udp_decap; +}; + /* * Local Variables: * eval: (c-set-style "gnu") |