summaryrefslogtreecommitdiffstats
path: root/src/plugins/urpf/urpf.api
diff options
context:
space:
mode:
authorPim van Pelt <pim@ipng.nl>2023-12-10 21:07:38 +0100
committerPim van Pelt <pim@ipng.nl>2024-01-10 00:28:06 +0000
commit2fa69effc844d7a27d46c0f163c0840df961eb2d (patch)
tree3bcff2a831eacbb7479cb5eaf0e82147b91063be /src/plugins/urpf/urpf.api
parent97fef28a0bd700d6ac6d8325e8a4335614d95bec (diff)
urpf: add interface dump to API
Add an urpf_interface_dump() API call, with optional sw_if_index. If either a mode or a table is specified in any given interface address family and direction, return it in a list, otherwise omit it. TESTED: create loopback interface instance 0 create loopback interface instance 1 create loopback interface instance 2 create loopback interface instance 3 ip6 table add 8298 set urpf ip4 rx loose loop1 set urpf ip6 tx off loop2 table 8298 API call urpf_interface_dump(sw_if_index=~1) returns: [ urpf_interface_details(_0=658, context=2, sw_if_index=2, is_rx=True, mode=<vl_api_urpf_mode_t.URPF_API_MODE_LOOSE: 1>, af=<vl_api_address_family_t.ADDRESS_IP4: 0>, table_id=0), urpf_interface_details(_0=658, context=2, sw_if_index=3, is_rx=False, mode=<vl_api_urpf_mode_t.URPF_API_MODE_OFF: 0>, af=<vl_api_address_family_t.ADDRESS_IP6: 1>, table_id=8298) ] Type: improvement Change-Id: I1ded5c445dc07dab73ea41b817b5827b72ca79d4 Signed-off-by: pim@ipng.nl
Diffstat (limited to 'src/plugins/urpf/urpf.api')
-rw-r--r--src/plugins/urpf/urpf.api24
1 files changed, 24 insertions, 0 deletions
diff --git a/src/plugins/urpf/urpf.api b/src/plugins/urpf/urpf.api
index 4665743a57a..a4e897afd17 100644
--- a/src/plugins/urpf/urpf.api
+++ b/src/plugins/urpf/urpf.api
@@ -71,6 +71,30 @@ autoreply define urpf_update_v2
u32 table_id [default=0xffffffff];
};
+/** @brief Dump uRPF enabled interface(s) in zero or more urpf_interface_details replies
+ @param client_index - opaque cookie to identify the sender
+ @param sw_if_index - sw_if_index of a specific interface, or -1 (default)
+ to return all uRPF enabled interfaces
+*/
+define urpf_interface_dump
+{
+ u32 client_index;
+ u32 context;
+ vl_api_interface_index_t sw_if_index [default=0xffffffff];
+};
+
+/** @brief uRPF enabled interface details
+*/
+define urpf_interface_details
+{
+ u32 context;
+ vl_api_interface_index_t sw_if_index;
+ bool is_input;
+ vl_api_urpf_mode_t mode;
+ vl_api_address_family_t af;
+ u32 table_id;
+};
+
/*
* fd.io coding-style-patch-verification: ON
*