Hi Dave, all,

Following up with the concrete actions discussed:

- 46747 provides the standalone out-of-tree plugin checker and its 
documentation:
  https://gerrit.fd.io/r/c/vpp/+/46747
- 46808 adds the release-note announcement, migration instructions, checker 
usage, __clib_export guidance, and the build-time compatibility option:
  https://gerrit.fd.io/r/c/vpp/+/46808
- 46571 and 46572 are ready for review and merge. As proposed, 46573 can be 
merged after the VPP 26.10 branch is pulled:
  https://gerrit.fd.io/r/c/vpp/+/46571
  https://gerrit.fd.io/r/c/vpp/+/46572
  https://gerrit.fd.io/r/c/vpp/+/46573

For context while defining a general ABI-notification process, I also refreshed 
the libvnet comparison between VPP 26.06 and current master (697f1eee8).

Among functions both exported by libvnet and declared in installed headers:

- 9 existing functions had material prototype changes
- 18 interfaces were removed
- 86 interfaces were added

Material prototype changes (9):

ipsec_crypto_algo_encode
  vl_api_ipsec_crypto_alg_t (ipsec_crypto_alg_t)
  -> int (ipsec_crypto_alg_t, vl_api_ipsec_crypto_alg_t *)

ipsec_integ_algo_encode
  vl_api_ipsec_integ_alg_t (ipsec_integ_alg_t)
  -> int (ipsec_integ_alg_t, vl_api_ipsec_integ_alg_t *)

ipsec_proto_encode
  vl_api_ipsec_proto_t (ipsec_protocol_t)
  -> int (ipsec_protocol_t, vl_api_ipsec_proto_t *)

newreno_rcv_cong_ack
  void (tcp_connection_t *, tcp_cc_ack_t, tcp_rate_sample_t *)
  -> void (tcp_connection_t *, tcp_cc_ack_t, tcp_ack_ctx_t *)

tcp_bt_check_app_limited
  void (tcp_connection_t *)
  -> void (tcp_connection_t *, u32)

tcp_session_push_header
  u32 (transport_connection_t *, vlib_buffer_t **, u32)
  -> u32 (transport_connection_t *, vlib_buffer_t **, u32, u32)

vnet_dev_dma_mem_alloc
  vnet_dev_rv_t (vlib_main_t *, vnet_dev_t *, u32, u32, void **)
  -> vnet_dev_rv_t (vlib_main_t *, vnet_dev_t *, u32, u32,
                    void **, char *, ...)

vnet_dev_flow_ops_fn
  int (vnet_main_t *, vnet_flow_dev_op_t, u32, u32, uword *)
  -> int (vnet_main_t *, vnet_flow_dev_op_t, u32, u32)

vnet_flow_disable
  int (vnet_main_t *, u32, u32)
  -> int (vnet_main_t *, u32)

Removed interfaces (18):

ipip_add_tunnel
ipip_del_tunnel
ipip_mk_key
ipip_mk_key_i
ipip_tunnel_db_add
ipip_tunnel_db_find
ipip_tunnel_db_find_by_sw_if_index
ipip_tunnel_db_remove
scoreboard_clear_reneging
scoreboard_init_rxt
scoreboard_rxt_mark_lost
sfdp_init_timeouts
sixrd_add_tunnel
sixrd_del_tunnel
tcp_bt_sample_delivery_rate
tcp_rcv_sacks
tcp_scoreboard_is_sane_post_recovery
vnet_dev_api_port_set_rss_key

Added interfaces (86):

app_crypto_async_reply
session_migrate_accept
sfdp_timeout_add_registration
sfdp_timeout_register
tcp_ack_handle_full_feedback
tcp_bt_apply_ack
tcp_bt_dsack_mark_duplicate
tcp_bt_dsack_recovery_clear
tcp_bt_dsack_recovery_init
tcp_bt_enable
tcp_bt_handle_sack_reneging
tcp_bt_init_opaque
tcp_bt_init_rxt
tcp_bt_is_sane_post_recovery
tcp_bt_last_rxt_range
tcp_bt_loss_on_ack
tcp_bt_next_rack_rxt_range
tcp_bt_next_rxt_range
tcp_bt_recompute_sack_loss
tcp_bt_rxt_mark_lost
tcp_bt_rxt_rewind
tcp_bt_split_at
tcp_bt_tx_order_build
tcp_bt_tx_order_remove
tcp_dsack_cleanup
tcp_dsack_recovery_clear
tcp_dsack_recovery_init
tcp_dsack_track_retransmit
tcp_loss_dsack_undo
tcp_loss_enter_recovery
tcp_loss_exit_recovery
tcp_loss_old_ack_needs_full_feedback
tcp_loss_on_ack
tcp_loss_on_rto
tcp_loss_recovery_state_is_sane
tcp_loss_recovery_state_sync
tcp_loss_retransmit_timer_expired
tcp_loss_rto_retransmit_failed
tcp_loss_tlp_recovery
tcp_rack_arm_reorder_timer
tcp_rack_detect_loss
tcp_rack_init
tcp_rack_loss_on_ack
tcp_rack_mark_losses_on_rto
tcp_rack_mark_sample_lost
tcp_rack_prepare_rto
tcp_rack_recovery_account_is_sane
tcp_rack_recovery_exit
tcp_rack_recovery_init
tcp_rack_recovery_sync
tcp_rack_reo_wnd
tcp_rack_reorder_timeout
tcp_rack_restore_rto
tcp_rack_retransmit_timer_expired
tcp_rack_rxt_sample_acked
tcp_rack_timer_reset
tcp_rack_timer_rto_set
tcp_rack_timer_rto_update
tcp_rack_timer_update_on_new_data
tcp_rack_update_reo_wnd
tcp_rcv_dsack
tcp_sack_handle_reneging
tcp_sack_init_rxt
tcp_sack_is_sane_post_recovery
tcp_sack_recompute_loss
tcp_sack_rxt_mark_lost
tcp_tlp_dsack_matches
tcp_tlp_new_data_fits_cwnd
tcp_tlp_process_ack
tcp_tlp_pto_ticks
tcp_tlp_recovery_init
tcp_tlp_retransmit_disarm_rtt
tcp_tlp_retransmit_timer_expired
tcp_tlp_send_probe
transport_connection_tx_pacer_clear_credit
transport_connection_tx_pacer_set_burst_limits
vnet_dev_api_port_set_rss_config
vnet_dev_platform_map_uio_region
vnet_dev_platform_unmap_regions
vnet_dev_port_set_link_speed
vnet_flow_async_range_disable
vnet_flow_async_range_enable
vnet_flow_template_add
vnet_flow_template_del
vnet_flow_template_disable
vnet_flow_template_enable

These figures do not remove the need to communicate the hidden-visibility 
transition. They do show why the notification and ABI-tracking process should 
cover all libvnet changes consistently.

The immediate next step would be to review and merge 46747, 46571 and 46572, 
and review 46808 before the branch pull.

Thanks,
Jerome
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#27189): https://lists.fd.io/g/vpp-dev/message/27189
Mute This Topic: https://lists.fd.io/mt/121292132/21656
Group Owner: [email protected]
Unsubscribe: https://lists.fd.io/g/vpp-dev/leave/14379924/21656/631435203/xyzzy 
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to