# Copyright (c) 2022 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.

# Prefer x86_64, Ubuntu, latest LTS.
# Note that during flag day process, the link would point
# to (logged artifacts of) verify job, not merge job.

# 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.

# https://packagecloud.io/app/fdio/release
# /search?q=21.06&filter=debs&filter=all&dist=debian
21.06-release:
    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
    add_node_next: '0x2457116d'  # dev
    add_node_next_reply: '0x2ed75f32'  # dev
    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
    af_xdp_create: '0x21226c99'  # dev
    af_xdp_create_reply: '0x5383d31f'  # dev
    avf_create: '0xdaab8ae2'  # dev
    avf_create_reply: '0x5383d31f'  # dev
    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
    bridge_domain_add_del: '0x600b7170'  # dev
    bridge_domain_add_del_reply: '0xe8d4e804'  # dev
    # bridge_domain_dump / details # honeycomb
    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
    cli_inband: '0xf8377302'  # dev setup
    cli_inband_reply: '0x05879051'  # dev setup
    create_loopback_instance: '0xd36a3ee2'  # dev
    create_loopback_instance_reply: '0x5383d31f'  # dev
    create_subif: '0x790ca755'  # perf
    create_subif_reply: '0x5383d31f'  # perf
    # ^^ 64B-1c-dot1ad-l2xcbase-ndrpdr
    # ^ ndrpdrAND1cAND64bANDdot1ad-l2xcbase
    create_vhost_user_if_v2: '0xdba1cc1d'  # dev
    create_vhost_user_if_v2_reply: '0x5383d31f'  # dev
    create_vlan_subif: '0xaf34ac8b'  # dev
    create_vlan_subif_reply: '0x5383d31f'  # dev
    crypto_sw_scheduler_set_worker: '0xb4274502'  # perf
    crypto_sw_scheduler_set_worker_reply: '0xe8d4e804'  # perf
    # ^^ 64B-1c-ethip4ipsec8tnlswasync-scheduler-ip4base-int-aes128gcm-udir-ndrpdr
    # ^ ndrpdrAND1cAND64BANDethip4ipsec8tnlswasync-scheduler-ip4base-int-\
    #   aes128gcm-udir
    det44_add_del_map: '0x1150a190'  # dev
    det44_add_del_map_reply: '0xe8d4e804'  # dev
    det44_interface_add_del_feature: '0xdc17a836'  # dev
    det44_interface_add_del_feature_reply: '0xe8d4e804'  # dev
    det44_interface_details: '0xe60cc5be'  # dev teardown
    det44_interface_dump: '0x51077d14'  # dev teardown
    det44_map_details: '0xad91dc83'  # dev teardown
    det44_map_dump: '0x51077d14'  # dev teardown
    det44_plugin_enable_disable: '0x617b6bf8'  # dev
    det44_plugin_enable_disable_reply: '0xe8d4e804'  # dev
    det44_session_dump: '0xe45a3af7'  # dev
    # TODO: Which test to run to verify det44_* messages?
    # dhcp_proxy_dump / details # honeycomb
    flow_add: '0xf946ed84'  # dev
    flow_add_reply: '0x8587dc85'  # dev
    flow_enable: '0x2024be69' # dev
    flow_enable_reply: '0xe8d4e804' # dev
    flow_disable: '0x2024be69' #dev
    flow_disable_reply: '0xe8d4e804' #dev
    flow_del: '0xb6b9b02c' #dev
    flow_del_reply: '0xe8d4e804' #dev
    geneve_add_del_tunnel2: '0x8c2a9999'  # dev
    geneve_add_del_tunnel2_reply: '0x5383d31f'  # dev
    geneve_tunnel_details: '0x6b16eb24'  # dev
    geneve_tunnel_dump: '0xf9e6675e'  # dev
    gpe_enable_disable: '0xc264d7bf'  # dev
    gpe_enable_disable_reply: '0xe8d4e804'  # dev
    # gre_tunnel_add_del / reply # unused L1 keyword: create_gre_tunnel_interface
    gtpu_add_del_tunnel: '0xca983a2b'  # perf
    gtpu_add_del_tunnel_reply: '0x5383d31f'  # perf
    # ^^ 64B-1c-ethip4gtpusw-ip4base-ndrpdr
    # ^ ndrpdrAND1cAND64BANDethip4gtpusw-ip4base
    hw_interface_set_mtu: '0xe6746899'  # dev
    hw_interface_set_mtu_reply: '0xe8d4e804'  # dev
    input_acl_set_interface: '0xde7ad708'  # dev
    input_acl_set_interface_reply: '0xe8d4e804'  # dev
    ip_address_details: '0xee29b797'  # dev
    ip_address_dump: '0x2d033de4'  # dev
    ip_neighbor_add_del: '0x0607c257'  # dev
    ip_neighbor_add_del_reply: '0x1992deab'  # dev
    # ip_probe_neighbor / reply # unused L1 keyword vpp_ip_probe
    ip_route_add_del: '0xb8ecfe0d'  # dev
    ip_route_add_del_reply: '0x1992deab'  # dev
    # ip_source_check_interface_add_del / reply # unused L1 keyword vpp_ip_source_check_setup
    ip_table_add_del: '0x0ffdaec0'  # dev
    ip_table_add_del_reply: '0xe8d4e804'  # dev
    ipip_add_tunnel: '0x2ac399f5'  # dev
    ipip_add_tunnel_reply: '0x5383d31f'  # dev
    ipsec_interface_add_del_spd: '0x80f80cbb'  # dev
    ipsec_interface_add_del_spd_reply: '0xe8d4e804'  # dev
    ipsec_sa_v3_details: '0x2fc991ee'  # dev
    ipsec_sa_v3_dump: '0x2076c2f4'  # dev
    ipsec_sad_entry_add_del_v3: '0xc77ebd92'  # dev
    ipsec_sad_entry_add_del_v3_reply: '0x9ffac24b'  # dev
    ipsec_select_backend: '0x5bcfd3b7'  # perf
    ipsec_select_backend_reply: '0xe8d4e804'  # perf
    # ^^ 64B-1c-ethip4ipsec1tnlhw-ip4base-int-aes256gcm-ndrpdr
    # ^ ndrpdrAND1cAND64BANDethip4ipsec1tnlhw-ip4base-int-aes256gcm
    ipsec_set_async_mode: '0xa6465f7c'  # perf
    ipsec_set_async_mode_reply: '0xe8d4e804'  # perf
    ipsec_spd_add_del: '0x20e89a95'  # dev
    ipsec_spd_add_del_reply: '0xe8d4e804'  # dev
    ipsec_spd_entry_add_del: '0x338b7411'  # dev
    ipsec_spd_entry_add_del_reply: '0x9ffac24b'  # dev
    ipsec_tunnel_protect_update: '0x30d5f133'  # dev
    ipsec_tunnel_protect_update_reply: '0xe8d4e804'  # dev
    # ^^ 64B-1c-ethip4ipsec1tnlhw-ip4base-int-aes256gcm-ndrpdr
    # ^ See ipsec_select_backend.
    # l2_fib_table_dump / details # honeycomb
    l2_interface_vlan_tag_rewrite: '0x62cc0bbc'  # perf
    l2_interface_vlan_tag_rewrite_reply: '0xe8d4e804'  # perf
    # ^^ 64B-1c-dot1ad-l2xcbase-ndrpdr
    # ^ ndrpdrAND1cAND64BANDdot1ad-l2xcbase
    l2_patch_add_del: '0xa1f6a6f3'  # dev
    l2_patch_add_del_reply: '0xe8d4e804'  # dev
    # l2fib_add_del / reply # unused L1 keyword: vpp_add_l2fib_entry
    lb_add_del_as: '0x35d72500'  # perf
    lb_add_del_as_reply: '0xe8d4e804'  # perf
    lb_add_del_intf_nat4: '0x47d6e753'  # perf
    lb_add_del_intf_nat4_reply: '0xe8d4e804'  # perf
    lb_add_del_vip: '0x6fa569c7'  # perf
    lb_add_del_vip_reply: '0xe8d4e804'  # perf
    lb_conf: '0x56cd3261'  # perf
    lb_conf_reply: '0xe8d4e804'  # perf
    # 8x^ 64B-1c-ethip4-loadbalancer-nat4-ndrpdr
    # ^ 2n: ndrpdrAND1cAND64BANDethip4-loadbalancer-nat4
    lisp_add_del_adjacency: '0x2ce0e6f6'  # dev
    lisp_add_del_adjacency_reply: '0xe8d4e804'  # dev
    lisp_add_del_local_eid: '0x4e5a83a2'  # dev
    lisp_add_del_local_eid_reply: '0xe8d4e804'  # dev
    lisp_add_del_locator: '0xaf4d8f13'  # dev
    lisp_add_del_locator_reply: '0xe8d4e804'  # dev
    lisp_add_del_locator_set: '0x6fcd6471'  # dev
    lisp_add_del_locator_set_reply: '0xb6666db4'  # dev
    # lisp_add_del_map_resolver / reply # unused L2 keyword: Configure LISP map resolver address
    lisp_add_del_remote_mapping: '0x6d5c789e'  # dev
    lisp_add_del_remote_mapping_reply: '0xe8d4e804'  # dev
    lisp_eid_table_add_del_map: '0x9481416b'  # dev
    lisp_eid_table_add_del_map_reply: '0xe8d4e804'  # dev
    lisp_enable_disable: '0xc264d7bf'  # dev
    lisp_enable_disable_reply: '0xe8d4e804'  # dev
    macip_acl_add: '0xce6fbad0'  # dev
    macip_acl_add_reply: '0xac407b0c'  # dev
    macip_acl_details: '0x27135b59'  # dev teardown
    macip_acl_dump: '0xef34fea4'  # dev teardown
    macip_acl_interface_add_del: '0x4b8690b1'  # dev
    macip_acl_interface_add_del_reply: '0xe8d4e804'  # dev
    macip_acl_interface_get: '0x51077d14'  # dev teardown
    macip_acl_interface_get_reply: '0xaccf9b05'  # dev teardown
    memif_create: '0xb1b25061'  # dev
    memif_create_reply: '0x5383d31f'  # dev
    memif_details: '0xda34feb9'  # dev
    memif_dump: '0x51077d14'  # dev
    memif_socket_filename_add_del: '0xa2ce1a10'  # dev
    memif_socket_filename_add_del_reply: '0xe8d4e804'  # dev
    nat44_add_del_address_range: '0x6f2b8055'  # dev
    nat44_add_del_address_range_reply: '0xe8d4e804'  # dev
    nat44_address_details: '0x0d1beac1'  # dev teardown
    nat44_address_dump: '0x51077d14'  # dev teardown
    nat44_ed_plugin_enable_disable: '0xbe17f8dd'  # dev
    nat44_ed_plugin_enable_disable_reply: '0xe8d4e804'  # dev
    nat44_interface_add_del_feature: '0xf3699b83'  # dev
    nat44_interface_add_del_feature_reply: '0xe8d4e804'  # dev
    nat44_interface_addr_details: '0xe4aca9ca'  # dev teardown
    nat44_interface_addr_dump: '0x51077d14'  # dev teardown
    nat44_interface_details: '0x5d286289'  # dev teardown
    nat44_interface_dump: '0x51077d14'  # dev teardown
    nat44_show_running_config: '0x51077d14'  # dev teardown
    nat44_show_running_config_reply: '0x93d8e267'  # dev teardown
    nat44_static_mapping_details: '0x06cb40b2'  # dev teardown
    nat44_static_mapping_dump: '0x51077d14'  # dev teardown
    nat44_user_details: '0x355896c2'  # not used
    nat44_user_dump: '0x51077d14'  # not used
    nat44_user_session_details: '0x2cf6e16d'  # not used
    nat44_user_session_dump: '0xe1899c98'  # not used
    # nat44_user_dump and nat44_user_session_dump can be called
    # by show_nat_user_data function
    nat_worker_details: '0x84bf06fc'  # dev teardown
    nat_worker_dump: '0x51077d14'  # dev teardown
    nsim_configure2: '0x64de8ed3'  # perf
    nsim_configure2_reply: '0xe8d4e804'  # perf
    nsim_output_feature_enable_disable: '0x3865946c'  # perf
    nsim_output_feature_enable_disable_reply: '0xe8d4e804'  # perf
    # 4x^ 1280B-1c-eth-ip4udpquicscale10cl1s-vppecho-bps
    # ^ 1280BAND1cANDeth-ip4udpquicscale10cl1s-vppecho
    policer_add_del: '0x2b31dd38'  # dev
    policer_add_del_reply: '0xa177cef2'  # dev
    policer_classify_set_interface: '0xde7ad708'  # dev
    policer_classify_set_interface_reply: '0xe8d4e804'  # dev
    rdma_create_v3: '0xc6287ea8'  # perf
    rdma_create_v3_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).
    show_threads: '0x51077d14'  # dev
    show_threads_reply: '0xefd78e83'  # dev
    show_version: '0x51077d14'  # dev setup
    show_version_reply: '0xc919bde1'  # dev setup
    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_details: '0xdb6ff2a1'  # dev teardown
    sr_policies_dump: '0x51077d14'  # dev teardown
    sr_policy_add: '0x44ac92e8'  # dev
    sr_policy_add_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
    sw_bond_interface_details: '0x9428a69c'  # perf
    sw_bond_interface_dump: '0xf9e6675e'  # perf
    # ^^ see bond_*
    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
    sw_interface_ip6nd_ra_config: '0x3eb00b1c'  # dev
    sw_interface_ip6nd_ra_config_reply: '0xe8d4e804'  # dev
    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: '0x65247409'  # not used
    sw_interface_set_geneve_bypass_reply: '0xe8d4e804'  # not used
    # sw_interface_set_geneve_bypass can be called
    # by enable_interface_geneve_bypass function
    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
    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
    sw_interface_set_vxlan_bypass: '0x65247409'  # dev
    sw_interface_set_vxlan_bypass_reply: '0xe8d4e804'  # dev
    sw_interface_tap_v2_details: '0x1e2b2a47'  # dev
    sw_interface_tap_v2_dump: '0xf9e6675e'  # dev
    sw_interface_vhost_user_details: '0x0cee1e53'  # dev teardown
    sw_interface_vhost_user_dump: '0xf9e6675e'  # dev deardown
    sw_member_interface_details: '0x3c4a0e23'  # perf
    sw_member_interface_dump: '0xf9e6675e'  # perf
    # ^^ see bond_*
    tap_create_v2: '0x2d0d6570'  # dev
    tap_create_v2_reply: '0x5383d31f'  # dev
    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
# 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

# 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.