| /* |
| * Copyright (c) 2021 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. |
| */ |
| |
| option version = "1.0.0"; |
| |
| /** \brief Process a vpe parser cli string request |
| @param client_index - opaque cookie to identify the sender |
| @param context - sender context, to match reply w/ request |
| @param cmd_in_shmem - pointer to cli command string |
| */ |
| define cli |
| { |
| u32 client_index; |
| u32 context; |
| u64 cmd_in_shmem; |
| }; |
| define cli_inband |
| { |
| u32 client_index; |
| u32 context; |
| string cmd[]; |
| }; |
| |
| /** \brief vpe parser cli string response |
| @param context - sender context, to match reply w/ request |
| @param retval - return code for request |
| @param reply_in_shmem - Reply string from cli processing if any |
| */ |
| define cli_reply |
| { |
| u32 context; |
| i32 retval; |
| u64 reply_in_shmem; |
| }; |
| define cli_inband_reply |
| { |
| u32 context; |
| i32 retval; |
| string reply[]; |
| }; |
| |
| /** \brief Get node index using name request |
| @param client_index - opaque cookie to identify the sender |
| @param context - sender context, to match reply w/ request |
| @param node_name[] - name of the node |
| */ |
| define get_node_index |
| { |
| u32 client_index; |
| u32 context; |
| string node_name[64]; |
| }; |
| |
| /** \brief Get node index using name request |
| @param context - sender context, to match reply w/ request |
| @param retval - return code for the request |
| @param node_index - index of the desired node if found, else ~0 |
| */ |
| define get_node_index_reply |
| { |
| u32 context; |
| i32 retval; |
| u32 node_index; |
| }; |
| |
| /** \brief Set the next node for a given node request |
| @param client_index - opaque cookie to identify the sender |
| @param context - sender context, to match reply w/ request |
| @param node_name[] - node to add the next node to |
| @param next_name[] - node to add as the next node |
| */ |
| define add_node_next |
| { |
| u32 client_index; |
| u32 context; |
| string node_name[64]; |
| string next_name[64]; |
| }; |
| |
| /** \brief IP Set the next node for a given node response |
| @param context - sender context, to match reply w/ request |
| @param retval - return code for the add next node request |
| @param next_index - the index of the next node if success, else ~0 |
| */ |
| define add_node_next_reply |
| { |
| u32 context; |
| i32 retval; |
| u32 next_index; |
| }; |
| |
| /** \brief show_threads display the information about vpp |
| threads running on system along with their process id, |
| cpu id, physical core and cpu socket. |
| */ |
| define show_threads |
| { |
| u32 client_index; |
| u32 context; |
| }; |
| |
| /** \brief thread data |
| @param id - thread index |
| @param name - thread name i.e. vpp_main or vpp_wk_0 |
| @param type - thread type i.e. workers or stats |
| @param pid - thread Process Id |
| @param cpu_id - thread pinned to cpu. |
| "CPUs or Logical cores are the number of physical cores times |
| the number of threads that can run on each core through |
| the use of hyperthreading." (from unix.stackexchange.com) |
| @param core - thread pinned to actual physical core. |
| @param cpu_socket - thread is running on which cpu socket. |
| */ |
| typedef thread_data |
| { |
| u32 id; |
| string name[64]; |
| string type[64]; |
| u32 pid; |
| u32 cpu_id; |
| u32 core; |
| u32 cpu_socket; |
| }; |
| |
| /** \brief show_threads_reply |
| @param context - returned sender context, to match reply w/ request |
| @param retval - return code |
| @param count - number of threads in thread_data array |
| @param thread_data - array of thread data |
| */ |
| define show_threads_reply |
| { |
| u32 context; |
| i32 retval; |
| u32 count; |
| vl_api_thread_data_t thread_data[count]; |
| }; |
| |
| define get_node_graph |
| { |
| u32 client_index; |
| u32 context; |
| }; |
| |
| /** \brief get_node_graph_reply |
| @param context - returned sender context, to match reply w/ request |
| @param retval - return code |
| @param reply_in_shmem - result from vlib_node_serialize, in shared |
| memory. Process with vlib_node_unserialize, remember to switch |
| heaps and free the result. |
| */ |
| |
| define get_node_graph_reply |
| { |
| u32 context; |
| i32 retval; |
| u64 reply_in_shmem; |
| }; |
| |
| /** \brief Query relative index via node names |
| @param client_index - opaque cookie to identify the sender |
| @param context - sender context, to match reply w/ request |
| @param node_name - name of node to find relative index from |
| @param next_name - next node from node_name to find relative index of |
| */ |
| define get_next_index |
| { |
| u32 client_index; |
| u32 context; |
| string node_name[64]; |
| string next_name[64]; |
| }; |
| |
| /** \brief Reply for get next node index |
| @param context - sender context which was passed in the request |
| @param retval - return value |
| @param next_index - index of the next_node |
| */ |
| define get_next_index_reply |
| { |
| u32 context; |
| i32 retval; |
| u32 next_index; |
| }; |
| |
| /** \brief f64 types are not standardized across the wire. Sense wire format in each direction by sending the f64 value 1.0. |
| @param client_index - opaque cookie to identify the sender |
| @param context - sender context, to match reply w/ request |
| @param f64_one - The constant of 1.0. If you send a different value, expect an rv=VNET_API_ERROR_API_ENDIAN_FAILED. |
| */ |
| define get_f64_endian_value |
| { |
| u32 client_index; |
| u32 context; |
| f64 f64_one [default=1.0]; |
| }; |
| |
| /** \brief get_f64_endian_value reply message |
| @param context - sender context which was passed in the request |
| @param retval - return value - VNET_API_ERROR_API_ENDIAN_FAILED if f64_one != 1.0 |
| @param f64_one_result - The value of 'f64 1.0' |
| */ |
| define get_f64_endian_value_reply |
| { |
| u32 context; |
| u32 retval; |
| f64 f64_one_result; |
| }; |
| |
| /** \brief Verify f64 wire format by sending a value and receiving the value + 1.0 |
| @param client_index - opaque cookie to identify the sender. |
| @param context - sender context, to match reply w/ request. |
| @param f64_value - The value you want to test. Default: 1.0. |
| */ |
| define get_f64_increment_by_one |
| { |
| u32 client_index; |
| u32 context; |
| f64 f64_value [default=1.0]; |
| }; |
| |
| /** \brief get_f64_increment_by_one reply |
| @param client_index - opaque cookie to identify the sender. |
| @param context - sender context, to match reply w/ request. |
| @param f64_value - The input f64_value incremented by 1.0. |
| */ |
| define get_f64_increment_by_one_reply |
| { |
| u32 context; |
| u32 retval; |
| f64 f64_value; |
| }; |
| |
| /** \brief Control ping from client to api server request |
| @param client_index - opaque cookie to identify the sender |
| @param context - sender context, to match reply w/ request |
| */ |
| define control_ping |
| { |
| u32 client_index; |
| u32 context; |
| }; |
| |
| /** \brief Control ping from the client to the server response |
| @param client_index - opaque cookie to identify the sender |
| @param context - sender context, to match reply w/ request |
| @param retval - return code for the request |
| @param vpe_pid - the pid of the vpe, returned by the server |
| */ |
| define control_ping_reply |
| { |
| u32 context; |
| i32 retval; |
| u32 client_index; |
| u32 vpe_pid; |
| }; |
| |
| /* |
| * Local Variables: |
| * eval: (c-set-style "gnu") |
| * End: |
| */ |