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]] -=-=-=-=-=-=-=-=-=-=-=-
