summaryrefslogtreecommitdiffstats
path: root/src/plugins/tracedump/tracedump.api
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/tracedump/tracedump.api')
-rw-r--r--src/plugins/tracedump/tracedump.api82
1 files changed, 82 insertions, 0 deletions
diff --git a/src/plugins/tracedump/tracedump.api b/src/plugins/tracedump/tracedump.api
new file mode 100644
index 00000000000..81e6725abc8
--- /dev/null
+++ b/src/plugins/tracedump/tracedump.api
@@ -0,0 +1,82 @@
+/*
+ * tracedump.api - streaming packet trace dump API
+ *
+ * Copyright (c) 2020 Cisco and/or its affiliates
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at:
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * @file tracedump.api
+ * @brief VPP control-plane API messages.
+ *
+ * This file defines VPP control-plane binary API messages which are generally
+ * called through a shared memory interface.
+ */
+
+/* Version and type recitations */
+
+option version = "0.1.0";
+
+service {
+ rpc trace_dump returns trace_dump_reply
+ stream trace_details;
+};
+
+define trace_dump {
+ /* Client identifier, set from api_main.my_client_index */
+ u32 client_index;
+
+ /* Arbitrary context, so client can match reply to request */
+ u32 context;
+
+ /* Dispose of any cached data before we begin */
+ u8 clear_cache;
+
+ /* iterator positions, both ~0 to just clear the cache */
+ u32 thread_id;
+ u32 position;
+
+ /* Max number of replies per burst */
+ u32 max_records;
+};
+
+define trace_dump_reply {
+ u32 context;
+ i32 retval;
+ u32 last_thread_id;
+ u32 last_position;
+ u8 more_this_thread;
+ u8 more_threads;
+ u8 flush_only;
+ u8 done;
+};
+
+define trace_details {
+ /* Client identifier, set from api_main.my_client_index */
+ u32 client_index;
+
+ /* Arbitrary context, so client can match reply to request */
+ u32 context;
+
+ /* Position in the cache of this record */
+ u32 thread_id;
+ u32 position;
+
+ /* More or not */
+ u8 more_this_thread;
+ u8 more_threads;
+ /* Needed when set ends in the middle of a batch */
+ u8 done;
+
+ string trace_data[];
+};