# Copyright (c) 2024 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. --- # Recommended collection name is a version string. # Comment https link towards the build used to get or verify the CRC values. # Link cannot easily be name as it is too long. # Note that you cannot easily avoid quotes for CRC values. # With leading 0x, yaml interprets the values as numbers. # Even with 0x removed, hexa CRC value may appear as decimal number. # Trailing comments are optional, for tracking how to test the message. # Please keep alphabetic order. # Use bash command "env LC_COLLATE=C sort -u" if not clear. # TODO: Update comments, as we removed device tests. # https://packagecloud.io/app/fdio/release # /search?q=24.10&filter=debs&filter=all&dist=debian 24.10-release: # plugins/acl/acl.api acl_add_replace: '0xee5c2f18' # dev acl_add_replace_reply: '0xac407b0c' # dev acl_details: '0x95babae0' # dev teardown acl_dump: '0xef34fea4' # dev teardown acl_interface_list_details: '0xe695d256' # dev teardown acl_interface_list_dump: '0xf9e6675e' # dev teardown acl_interface_set_acl_list: '0x473982bd' # dev acl_interface_set_acl_list_reply: '0xe8d4e804' # dev # vlibmemory/vlib.api add_node_next: '0x2457116d' # dev add_node_next_reply: '0x2ed75f32' # dev # plugins/adl/adl.api adl_allowlist_enable_disable: '0xea88828d' # dev adl_allowlist_enable_disable_reply: '0xe8d4e804' # dev adl_interface_enable_disable: '0x5501adee' # dev adl_interface_enable_disable_reply: '0xe8d4e804' # dev # plugins/af_xdp/af_xdp.api af_xdp_create_v3: '0xcf4b1827' # perf af_xdp_create_v3_reply: '0x5383d31f' # perf # plugins/avf/avf.api avf_create: '0xdaab8ae2' # dev avf_create_reply: '0x5383d31f' # dev # vnet/bonding/bond.api bond_add_member: '0xe7d14948' # perf bond_add_member_reply: '0xe8d4e804' # perf bond_create2: '0x912fda76' # perf bond_create2_reply: '0x5383d31f' # perf # 4x^ 64B-1c-1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm-ndrpdr # ^ ndrpdrAND1cAND64bAND1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm # vnet/l2/l2.api bridge_domain_add_del_v2: '0x600b7170' # dev bridge_domain_add_del_v2_reply: '0xfcb1e980' # dev # bridge_domain_dump / details # honeycomb # vnet/classify/classify.api classify_add_del_session: '0xf20879f0' # dev classify_add_del_session_reply: '0xe8d4e804' # dev classify_add_del_table: '0x6849e39e' # dev classify_add_del_table_reply: '0x05486349' # dev # classify_session_dump / details # honeycomb # classify_table_by_interface / reply # honeycomb # classify_table_info / reply # honeycomb # vlibmemory/vlib.api cli_inband: '0xf8377302' # dev setup cli_inband_reply: '0x05879051' # dev setup # vnet/interface.api create_loopback_instance: '0xd36a3ee2' # dev create_loopback_instance_reply: '0x5383d31f' # dev # vnet/interface.api create_subif: '0x790ca755' # perf create_subif_reply: '0x5383d31f' # perf # ^^ 64B-1c-dot1ad-l2xcbase-ndrpdr # ^ ndrpdrAND1cAND64bANDdot1ad-l2xcbase # plugins/vhost/vhost_user.api create_vhost_user_if_v2: '0xdba1cc1d' # dev create_vhost_user_if_v2_reply: '0x5383d31f' # dev # vnet/interface.api create_vlan_subif: '0xaf34ac8b' # dev create_vlan_subif_reply: '0x5383d31f' # dev # plugins/crypto_sw_scheduler/crypto_sw_scheduler.api crypto_set_async_dispatch_v2: '0x667d2d54' # perf crypto_set_async_dispatch_v2_reply: '0xe8d4e804' # perf crypto_sw_scheduler_set_worker: '0xb4274502' # perf crypto_sw_scheduler_set_worker
#ifndef __OPER_INTERFACE_H_
#define __OPER_INTERFACE_H_

#include <vom/dump_cmd.hpp>
#include <vapi/interface.api.vapi.hpp>

class interface_dump : public VOM::dump_cmd<vapi::Sw_interface_dump>
{
public:
  /**
   * Default Constructor - dump everything
   */
  interface_dump();

  /*
   * Constructor to dump one interface only
   */
  interface_dump(std::string interface_name);

  /**
   * Issue the command to VPP/HW
   */
  VOM::rc_t issue(VOM::connection& con);
  /**
   * convert to string format for debug purposes
   */
  std::string to_string() const;

private:
  std::string m_name; //interface name
};

#endif //__OPER_INTERFACE_H_
4udpquicscale10cl1s-vppecho-bps # ^ 1280BAND1cANDeth-ip4udpquicscale10cl1s-vppecho # vnet/policer/policer.api policer_add: '0x4d949e35' # dev policer_add_reply: '0xa177cef2' # dev # vnet/classify/classify.api policer_classify_set_interface: '0xde7ad708' # dev policer_classify_set_interface_reply: '0xe8d4e804' # dev # plugins/rdma/rdma.api rdma_create_v4: '0xc6287ea8' # perf rdma_create_v4_reply: '0x5383d31f' # perf # 2x^ Any test with drv_rdma. Currently only available on 2n-clx. # - Not testable by devicetest (until we have environment with right NICs). # vlibmemory/vlib.api show_threads: '0x51077d14' # dev show_threads_reply: '0xefd78e83' # dev # vpp/api/vpe.api show_version: '0x51077d14' # dev setup show_version_reply: '0xc919bde1' # dev setup # vnet/srv6/sr.api sr_localsid_add_del: '0x5a36c324' # dev sr_localsid_add_del_reply: '0xe8d4e804' # dev sr_localsids_details: '0x2e9221b9' # dev teardown sr_localsids_dump: '0x51077d14' # dev teardown sr_policies_v2_details: '0x96dcb699' # dev teardown sr_policies_v2_dump: '0x51077d14' # dev teardown sr_policy_add_v2: '0xf6297f36' # dev sr_policy_add_v2_reply: '0xe8d4e804' # dev sr_set_encap_source: '0xd3bad5e1' # dev sr_set_encap_source_reply: '0xe8d4e804' # dev sr_steering_add_del: '0xe46b0a0f' # dev sr_steering_add_del_reply: '0xe8d4e804' # dev sr_steering_pol_details: '0xd41258c9' # dev teardown sr_steering_pol_dump: '0x51077d14' # dev teardown # vnet/bonding/bond.api sw_bond_interface_details: '0x9428a69c' # perf sw_bond_interface_dump: '0xf9e6675e' # perf # ^^ see bond_* # vnet/interface.api sw_interface_add_del_address: '0x5463d73b' # dev sw_interface_add_del_address_reply: '0xe8d4e804' # dev sw_interface_details: '0x6c221fc7' # dev sw_interface_dump: '0xaa610c27' # dev # sw_interface_get_table / reply # honeycomb # vnet/ip6-nd/ip6_nd.api sw_interface_ip6nd_ra_config: '0x3eb00b1c' # dev sw_interface_ip6nd_ra_config_reply: '0xe8d4e804' # dev # vnet/interface.api sw_interface_rx_placement_details: '0x9e44a7ce' # dev sw_interface_rx_placement_dump: '0xf9e6675e' # dev sw_interface_set_flags: '0xf5aec1b8' # dev sw_interface_set_flags_reply: '0xe8d4e804' # dev # sw_interface_set_geneve_bypass can be called # by enable_interface_geneve_bypass function # vnet/l2/l2.api sw_interface_set_l2_bridge: '0xd0678b13' # dev sw_interface_set_l2_bridge_reply: '0xe8d4e804' # dev sw_interface_set_l2_xconnect: '0x4fa28a85' # dev sw_interface_set_l2_xconnect_reply: '0xe8d4e804' # dev # vnet/interface.api sw_interface_set_mac_address: '0xc536e7eb' # dev sw_interface_set_mac_address_reply: '0xe8d4e804' # dev sw_interface_set_rx_placement: '0xdb65f3c9' # dev sw_interface_set_rx_placement_reply: '0xe8d4e804' # dev sw_interface_set_table: '0xdf42a577' # dev sw_interface_set_table_reply: '0xe8d4e804' # dev sw_interface_set_unnumbered: '0x154a6439' # dev sw_interface_set_unnumbered_reply: '0xe8d4e804' # dev # plugins/vxlan/vxlan.api sw_interface_set_vxlan_bypass: '0x65247409' # dev sw_interface_set_vxlan_bypass_reply: '0xe8d4e804' # dev # vnet/devices/tap/tapv2.api sw_interface_tap_v2_details: '0x1e2b2a47' # dev sw_interface_tap_v2_dump: '0xf9e6675e' # dev # plugins/vhost/vhost_user.api sw_interface_vhost_user_details: '0x0cee1e53' # dev teardown sw_interface_vhost_user_dump: '0xf9e6675e' # dev deardown # vnet/bonding/bond.api sw_member_interface_details: '0x3c4a0e23' # perf sw_member_interface_dump: '0xf9e6675e' # perf # ^^ see bond_* # vnet/devices/tap/tapv2.api tap_create_v3: '0x3f3fd1df' # dev tap_create_v3_reply: '0x5383d31f' # dev # plugins/vxlan/vxlan.api vxlan_add_del_tunnel_v3: '0x0072b037' # dev vxlan_add_del_tunnel_v3_reply: '0x5383d31f' # dev # vxlan_gpe_tunnel_dump / details # honeycomb # vxlan_tunnel_dump /details # unused L2 keyword: Get VXLAN dump # plugins/wireguard/wireguard.api wireguard_interface_create: '0xa530137e' wireguard_interface_create_reply: '0x5383d31f' wireguard_peer_add: '0x9b8aad61' wireguard_peer_add_reply: '0x084a0cd3' wg_set_async_mode: '0xa6465f7c' wg_set_async_mode_reply: '0xe8d4e804' # Please keep alphabetic order. # Use bash command "env LC_COLLATE=C sort -u" if not clear. # Hint to see the currently used command messages: # $ egrep -r 'cmd[0-9]* = ["'"'"'][a-z0-9]*_[a-z0-9_]*["'"'"']' | cut -d '=' -f 2- | cut -c 3- | cut -d "'" -f 1 | cut -d '"' -f 1 | env LC_COLLATE=C sort -u | less # Independent hint: # $ fgrep -rn dump_and_log # (The rest has not been updated since 2021-09-28.) # TODO: Create an on-demand perf verify job with a tag expression # covering API calls used only in perf tests, # and maintain the expression as device test gets more coverage. # Currently 2 triggers are needed: 2n (with RDMA) vs 3n (for encaps): # csit-3n-hsw-perftest # mrrANDnic_intel-x710ANDdrv_vfio_pciAND1cAND64bAND1lbvpplacp-dot1q-l2xcbase-eth-2vhostvr1024-1vm # mrrANDnic_intel-x710ANDdrv_vfio_pciAND1cAND64bANDdot1ad-l2xcbase # mrrANDnic_intel-x710ANDdrv_vfio_pciAND4cAND64bANDethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm # mrrANDnic_intel-x710ANDdrv_vfio_pciAND1cAND64bANDethip4gtpusw-ip4base # bpsANDnic_intel-x710ANDdrv_vfio_pciAND1cAND78bANDeth-ip4udpquicscale10cl1s-vppecho # csit-2n-clx-perftest # mrrANDdrv_rdma_coreAND1cAND64bANDloadbalancer_nat4 # mrrANDnic_intel-x710ANDdrv_avfAND1cAND64bANDloadbalancer_nat4 # TODO: Once device job has complete API coverage, # add a check to make sure each message was encountered; # failure means we need to add more tests to device test job. # Alternatively, add an option to compile messages actually # used or encountered, so CSIT knows what to remove from mapping.