On Wed, 1 Jul 2026 at 20:17, Timothy Redaelli <[email protected]> wrote: > > Split libopenvswitch into two libraries: > > - libopenvswitchutils: containers, utilities, I/O, threading, > logging, and OVSDB client modules. > - libopenvswitch: datapath, OpenFlow, netdev, dpif, flow, > conntrack, and related modules. Links libopenvswitchutils. > > Programs that do not need datapath functionality now link only > libopenvswitchutils, reducing their dependency footprint: > ovsdb-server, ovsdb-client, ovsdb-tool, ovs-appctl, vtep-ctl, > test-lib. > > When OVS is built with static DPDK (--with-dpdk=static), these > programs no longer pull in DPDK code at all. Stripped binary > sizes (x86_64): > > Binary Before After Saved > ovs-appctl 3,939 KB 346 KB -91% > ovsdb-server 4,255 KB 766 KB -82% > ovsdb-client 4,234 KB 750 KB -82% > ovsdb-tool 4,218 KB 729 KB -83% > vtep-ctl 4,273 KB 847 KB -80% > test-lib 3,935 KB 342 KB -91% > > Binaries that still need libopenvswitch (ovs-vsctl, ovs-dpctl, > ovs-ofctl, ovs-vswitchd) are unaffected by this change. Further > reducing their DPDK dependency requires decoupling dp-packet from > netdev-dpdk, which is separate follow-up work. > > To break a circular dependency between the two libraries, > ip_parse(), ipv6_parse(), and ipv6_string_mapped() are made > static inline in packets.h. These are trivial wrappers around > inet_pton()/inet_ntop() with no side effects or state.
One alternative would be to remove those trivial wrappers entirely (I don't see much value in them). But otherwise this patch lgtm. Looking fwd to the separate follow-up work :-). > > Signed-off-by: Timothy Redaelli <[email protected]> Reviewed-by: David Marchand <[email protected]> -- David Marchand _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
